aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--driver/Commandline.ml6
-rw-r--r--driver/Commandline.mli3
-rw-r--r--driver/Driver.ml11
3 files changed, 16 insertions, 4 deletions
diff --git a/driver/Commandline.ml b/driver/Commandline.ml
index b544c37b..035c33e0 100644
--- a/driver/Commandline.ml
+++ b/driver/Commandline.ml
@@ -108,10 +108,12 @@ let parse_array spec argv first last =
end
in parse first
+let argv : string array ref = ref [||]
+
let parse_cmdline spec =
try
- let argv = expandargv Sys.argv in
- parse_array spec argv 1 (Array.length argv - 1)
+ argv := expandargv Sys.argv;
+ parse_array spec !argv 1 (Array.length !argv - 1)
with Responsefile.Error s ->
eprintf "%s" s;
exit 2
diff --git a/driver/Commandline.mli b/driver/Commandline.mli
index 65253749..32f5daf3 100644
--- a/driver/Commandline.mli
+++ b/driver/Commandline.mli
@@ -45,3 +45,6 @@ val longopt_int: string -> (int -> unit) -> pattern * action
(** [longopt_int key fn] generates a pattern and an action for
options of the form [key=<n>] and calls [fn] with the integer argument
*)
+
+val argv: string array ref
+(** [argv] contains the complete command line after @-file expandsion *)
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 310e4209..97082720 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -29,8 +29,15 @@ let jdump_magic_number = "CompCertJDUMP" ^ Version.version
let dump_jasm asm sourcename destfile =
let oc = open_out_bin destfile in
- fprintf oc "{\n\"Version\":\"%s\",\n\"System\":\"%s\"\n,\"Compilation Unit\":\"%s\",\n\"Asm Ast\":%a}"
- jdump_magic_number Configuration.system sourcename AsmToJSON.p_program asm;
+ let print_args oc =
+ output_string oc Sys.executable_name;
+ for i = 1 to (Array.length !argv - 1) do
+ fprintf oc " %s" (Responsefile.gnu_quote !argv.(i))
+ done in
+ let dump_compile_info oc =
+ fprintf oc "{\n\"directory\":\"%s\",\n\"command\":\"%t\",\n\"file\":\"%s\"\n}" (Sys.getcwd ()) print_args sourcename in
+ fprintf oc "{\n\"Version\":\"%s\",\n\"System\":\"%s\"\n,\"Compile Info\" : %t,\n\"Compilation Unit\":\"%s\",\n\"Asm Ast\":%a}"
+ jdump_magic_number Configuration.system dump_compile_info sourcename AsmToJSON.p_program asm;
close_out oc