| Attached Files | 0001-Make-objinfo-show-force_link-and-ccobjs-ccopts-when-.patch [^] (3,289 bytes) 2011-07-15 22:01 [Show Content] [Hide Content]From cafd65c97a51f346451ba0d560662450cce2bbc3 Mon Sep 17 00:00:00 2001
From: Mehdi Dogguy <mehdi@debian.org>
Date: Fri, 15 Jul 2011 21:45:29 +0200
Subject: [PATCH] Make objinfo show force_link and ccobjs/ccopts when needed
- Show force_link for cmx/cma
- Show ccobjs/ccopts for cmxa
---
tools/objinfo.ml | 25 +++++++++++++++++++++----
1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/tools/objinfo.ml b/tools/objinfo.ml
index 4f467f2..89855da 100644
--- a/tools/objinfo.ml
+++ b/tools/objinfo.ml
@@ -44,8 +44,12 @@ let print_name_crc (name, crc) =
let print_line name =
printf "\t%s\n" name
+let string_of_bool name =
+ if name then "YES" else "no"
+
let print_cmo_infos cu =
printf "Unit name: %s\n" cu.cu_name;
+ printf "Force link: %s\n" (string_of_bool cu.cu_force_link);
print_string "Interfaces imported:\n";
List.iter print_name_crc cu.cu_imports;
printf "Uses unsafe features: ";
@@ -85,7 +89,7 @@ let print_spaced_string s =
printf " %s" s
let print_cma_infos (lib : Cmo_format.library) =
- printf "Force custom: %s\n" (if lib.lib_custom then "YES" else "no");
+ printf "Force custom: %s\n" (string_of_bool lib.lib_custom);
printf "Extra C object files:";
(* PR#4949: print in linking order *)
List.iter print_spaced_string (List.rev lib.lib_ccobjs);
@@ -102,8 +106,11 @@ let print_cmi_infos name sign comps crcs =
printf "Interfaces imported:\n";
List.iter print_name_crc crcs
-let print_general_infos name crc defines cmi cmx =
+let print_general_infos name force_link crc defines cmi cmx =
printf "Name: %s\n" name;
+ match force_link with
+ Some flag -> printf "Force link: %s\n" (string_of_bool flag)
+ | None -> ();
printf "CRC of implementation: %s\n" (Digest.to_hex crc);
printf "Globals defined:\n";
List.iter print_line defines;
@@ -116,7 +123,7 @@ open Cmx_format
let print_cmx_infos (ui, crc) =
print_general_infos
- ui.ui_name crc ui.ui_defines ui.ui_imports_cmi ui.ui_imports_cmx;
+ ui.ui_name (Some ui.ui_force_link) crc ui.ui_defines ui.ui_imports_cmi ui.ui_imports_cmx;
printf "Approximation:\n";
Format.fprintf Format.std_formatter " %a@." print_approx_infos ui.ui_approx;
let pr_funs _ fns =
@@ -124,11 +131,21 @@ let print_cmx_infos (ui, crc) =
printf "Currying functions:%a\n" pr_funs ui.ui_curry_fun;
printf "Apply functions:%a\n" pr_funs ui.ui_apply_fun
+let print_cmxa_infos lib =
+ printf "Extra C object files:";
+ (* PR#4949: print in linking order *)
+ List.iter print_spaced_string (List.rev lib.lib_ccobjs);
+ printf "\nExtra C options:";
+ List.iter print_spaced_string lib.lib_ccopts;
+ printf "\n";
+ List.iter print_cmx_infos lib.lib_units
+
let print_cmxs_infos header =
List.iter
(fun ui ->
print_general_infos
ui.dynu_name
+ None
ui.dynu_crc
ui.dynu_defines
ui.dynu_imports_cmi
@@ -234,7 +251,7 @@ let dump_obj filename =
end else if magic_number = cmxa_magic_number then begin
let li = (input_value ic : library_infos) in
close_in ic;
- List.iter print_cmx_infos li.lib_units
+ print_cmxa_infos li
end else begin
let pos_trailer = in_channel_length ic - len_magic_number in
let _ = seek_in ic pos_trailer in
--
1.7.5.4
0014-Make-objinfo-show-force_link-and-ccobjs-ccopts-when-.patch [^] (3,291 bytes) 2011-07-16 00:20 [Show Content] [Hide Content]From cafd65c97a51f346451ba0d560662450cce2bbc3 Mon Sep 17 00:00:00 2001
From: Mehdi Dogguy <mehdi@debian.org>
Date: Fri, 15 Jul 2011 21:45:29 +0200
Subject: [PATCH] Make objinfo show force_link and ccobjs/ccopts when needed
- Show force_link for cmx/cma
- Show ccobjs/ccopts for cmxa
---
tools/objinfo.ml | 25 +++++++++++++++++++++----
1 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/tools/objinfo.ml b/tools/objinfo.ml
index 4f467f2..89855da 100644
--- a/tools/objinfo.ml
+++ b/tools/objinfo.ml
@@ -44,8 +44,12 @@ let print_name_crc (name, crc) =
let print_line name =
printf "\t%s\n" name
+let string_of_bool name =
+ if name then "YES" else "no"
+
let print_cmo_infos cu =
printf "Unit name: %s\n" cu.cu_name;
+ printf "Force link: %s\n" (string_of_bool cu.cu_force_link);
print_string "Interfaces imported:\n";
List.iter print_name_crc cu.cu_imports;
printf "Uses unsafe features: ";
@@ -85,7 +89,7 @@ let print_spaced_string s =
printf " %s" s
let print_cma_infos (lib : Cmo_format.library) =
- printf "Force custom: %s\n" (if lib.lib_custom then "YES" else "no");
+ printf "Force custom: %s\n" (string_of_bool lib.lib_custom);
printf "Extra C object files:";
(* PR#4949: print in linking order *)
List.iter print_spaced_string (List.rev lib.lib_ccobjs);
@@ -102,8 +106,11 @@ let print_cmi_infos name sign comps crcs =
printf "Interfaces imported:\n";
List.iter print_name_crc crcs
-let print_general_infos name crc defines cmi cmx =
+let print_general_infos name force_link crc defines cmi cmx =
printf "Name: %s\n" name;
+ (match force_link with
+ Some flag -> printf "Force link: %s\n" (string_of_bool flag)
+ | None -> ());
printf "CRC of implementation: %s\n" (Digest.to_hex crc);
printf "Globals defined:\n";
List.iter print_line defines;
@@ -116,7 +123,7 @@ open Cmx_format
let print_cmx_infos (ui, crc) =
print_general_infos
- ui.ui_name crc ui.ui_defines ui.ui_imports_cmi ui.ui_imports_cmx;
+ ui.ui_name (Some ui.ui_force_link) crc ui.ui_defines ui.ui_imports_cmi ui.ui_imports_cmx;
printf "Approximation:\n";
Format.fprintf Format.std_formatter " %a@." print_approx_infos ui.ui_approx;
let pr_funs _ fns =
@@ -124,11 +131,21 @@ let print_cmx_infos (ui, crc) =
printf "Currying functions:%a\n" pr_funs ui.ui_curry_fun;
printf "Apply functions:%a\n" pr_funs ui.ui_apply_fun
+let print_cmxa_infos lib =
+ printf "Extra C object files:";
+ (* PR#4949: print in linking order *)
+ List.iter print_spaced_string (List.rev lib.lib_ccobjs);
+ printf "\nExtra C options:";
+ List.iter print_spaced_string lib.lib_ccopts;
+ printf "\n";
+ List.iter print_cmx_infos lib.lib_units
+
let print_cmxs_infos header =
List.iter
(fun ui ->
print_general_infos
ui.dynu_name
+ None
ui.dynu_crc
ui.dynu_defines
ui.dynu_imports_cmi
@@ -234,7 +251,7 @@ let dump_obj filename =
end else if magic_number = cmxa_magic_number then begin
let li = (input_value ic : library_infos) in
close_in ic;
- List.iter print_cmx_infos li.lib_units
+ print_cmxa_infos li
end else begin
let pos_trailer = in_channel_length ic - len_magic_number in
let _ = seek_in ic pos_trailer in
--
1.7.5.4
|