aboutsummaryrefslogtreecommitdiff
path: root/src/boot/llvm/llfinal.ml
diff options
context:
space:
mode:
authorGraydon Hoare <[email protected]>2010-11-05 18:45:06 -0700
committerGraydon Hoare <[email protected]>2010-11-05 18:45:06 -0700
commit049072db824b7eeb4246fd75fa82b2837c00f9d3 (patch)
tree5561d47944e2a8178c3be429c0fed20c74f01e35 /src/boot/llvm/llfinal.ml
parentTranslate ast.box unary expressions and support extraction of TypeRefs from A... (diff)
downloadrust-049072db824b7eeb4246fd75fa82b2837c00f9d3.tar.xz
rust-049072db824b7eeb4246fd75fa82b2837c00f9d3.zip
Update lltrans to also emit WinMain@16 on windows.
Diffstat (limited to 'src/boot/llvm/llfinal.ml')
-rw-r--r--src/boot/llvm/llfinal.ml9
1 files changed, 8 insertions, 1 deletions
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