diff options
-rw-r--r-- | toplevel/expunge.ml | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/toplevel/expunge.ml b/toplevel/expunge.ml index cb36eedba..8f6a9d998 100644 --- a/toplevel/expunge.ml +++ b/toplevel/expunge.ml @@ -30,12 +30,6 @@ let expunge_map tbl = (fun id -> StringSet.mem (Ident.name id) !to_keep) tbl -let openflags = - match Sys.os_type with - | "MacOS" -> [Open_wronly; Open_trunc; Open_creat] - | _ -> [Open_wronly; Open_trunc; Open_creat; Open_binary] -;; - let main () = let input_name = Sys.argv.(1) in let output_name = Sys.argv.(2) in @@ -58,8 +52,14 @@ let main () = if header <> Config.exec_magic_number then begin prerr_endline "Wrong magic number"; exit 2 end; + if Sys.os_type = "MacOS" then begin + (* Create it as a text file for bytecode scripts *) + let c = open_out_gen [Open_wronly; Open_creat] 0o777 output_name in + close_out c + end; let oc = - open_out_gen openflags 0o777 output_name in + open_out_gen [Open_wronly; Open_creat; Open_trunc; Open_binary] 0o777 + output_name in (* Copy the file up to the symbol section as is *) seek_in ic 0; copy_file_chunk ic oc (pos_trailer - symbol_size - debug_size); |