diff options
| author | Graydon Hoare <[email protected]> | 2010-11-05 18:45:06 -0700 |
|---|---|---|
| committer | Graydon Hoare <[email protected]> | 2010-11-05 18:45:06 -0700 |
| commit | 049072db824b7eeb4246fd75fa82b2837c00f9d3 (patch) | |
| tree | 5561d47944e2a8178c3be429c0fed20c74f01e35 | |
| parent | Translate ast.box unary expressions and support extraction of TypeRefs from A... (diff) | |
| download | rust-049072db824b7eeb4246fd75fa82b2837c00f9d3.tar.xz rust-049072db824b7eeb4246fd75fa82b2837c00f9d3.zip | |
Update lltrans to also emit WinMain@16 on windows.
| -rw-r--r-- | src/boot/llvm/llasm.ml | 2 | ||||
| -rw-r--r-- | src/boot/llvm/llfinal.ml | 9 | ||||
| -rw-r--r-- | src/boot/llvm/lltrans.ml | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/boot/llvm/llasm.ml b/src/boot/llvm/llasm.ml index 071e0bd6..67f02517 100644 --- a/src/boot/llvm/llasm.ml +++ b/src/boot/llvm/llasm.ml @@ -26,7 +26,7 @@ let x86_glue let (prefix,align) = match sess.Session.sess_targ with Linux_x86_elf - | Win32_x86_pe -> ("",4) + | Win32_x86_pe -> ("_",4) | MacOS_x86_macho -> ("_", 16) in let save_callee_saves = diff --git a/src/boot/llvm/llfinal.ml b/src/boot/llvm/llfinal.ml index 7241d1ab..a7e190cd 100644 --- a/src/boot/llvm/llfinal.ml +++ b/src/boot/llvm/llfinal.ml @@ -4,6 +4,7 @@ *) let finalize_module + (sess:Session.sess) (llctx:Llvm.llcontext) (llmod:Llvm.llmodule) (abi:Llabi.abi) @@ -68,7 +69,13 @@ let finalize_module (* Define the main function for crt0 to call. *) let main_fn = let main_ty = Llvm.function_type i32 [| i32; i32 |] in - Llvm.define_function "main" main_ty llmod + let main_name = + match sess.Session.sess_targ with + Common.Win32_x86_pe -> "WinMain@16" + | Common.Linux_x86_elf + | Common.MacOS_x86_macho -> "main" + in + Llvm.define_function main_name main_ty llmod in let argc = Llvm.param main_fn 0 in let argv = Llvm.param main_fn 1 in diff --git a/src/boot/llvm/lltrans.ml b/src/boot/llvm/lltrans.ml index c3b097af..22c1557e 100644 --- a/src/boot/llvm/lltrans.ml +++ b/src/boot/llvm/lltrans.ml @@ -1132,7 +1132,7 @@ let trans_crate Hashtbl.iter declare_mod_item items; Hashtbl.iter trans_mod_item items; Llfinal.finalize_module - llctx llmod abi asm_glue exit_task_glue crate_ptr; + sess llctx llmod abi asm_glue exit_task_glue crate_ptr; llmod with e -> Llvm.dispose_module llmod; raise e ;; |