File tree 4 files changed +11
-4
lines changed
4 files changed +11
-4
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 216082d0405c36e63f602462bb119a3c3b4a488d
2
+ refs/heads/master: 049072db824b7eeb4246fd75fa82b2837c00f9d3
Original file line number Diff line number Diff line change @@ -26,7 +26,7 @@ let x86_glue
26
26
let (prefix,align) =
27
27
match sess.Session. sess_targ with
28
28
Linux_x86_elf
29
- | Win32_x86_pe -> (" " ,4 )
29
+ | Win32_x86_pe -> (" _ " ,4 )
30
30
| MacOS_x86_macho -> (" _" , 16 )
31
31
in
32
32
let save_callee_saves =
Original file line number Diff line number Diff line change 4
4
*)
5
5
6
6
let finalize_module
7
+ (sess :Session.sess )
7
8
(llctx :Llvm.llcontext )
8
9
(llmod :Llvm.llmodule )
9
10
(abi :Llabi.abi )
@@ -68,7 +69,13 @@ let finalize_module
68
69
(* Define the main function for crt0 to call. *)
69
70
let main_fn =
70
71
let main_ty = Llvm. function_type i32 [| i32; i32 |] in
71
- Llvm. define_function " main" main_ty llmod
72
+ let main_name =
73
+ match sess.Session. sess_targ with
74
+ Common. Win32_x86_pe -> " WinMain@16"
75
+ | Common. Linux_x86_elf
76
+ | Common. MacOS_x86_macho -> " main"
77
+ in
78
+ Llvm. define_function main_name main_ty llmod
72
79
in
73
80
let argc = Llvm. param main_fn 0 in
74
81
let argv = Llvm. param main_fn 1 in
Original file line number Diff line number Diff line change @@ -1132,7 +1132,7 @@ let trans_crate
1132
1132
Hashtbl. iter declare_mod_item items;
1133
1133
Hashtbl. iter trans_mod_item items;
1134
1134
Llfinal. finalize_module
1135
- llctx llmod abi asm_glue exit_task_glue crate_ptr;
1135
+ sess llctx llmod abi asm_glue exit_task_glue crate_ptr;
1136
1136
llmod
1137
1137
with e -> Llvm. dispose_module llmod; raise e
1138
1138
;;
You can’t perform that action at this time.
0 commit comments