diff options
| author | Patrick Walton <[email protected]> | 2010-10-22 16:15:06 -0700 |
|---|---|---|
| committer | Patrick Walton <[email protected]> | 2010-10-22 16:16:02 -0700 |
| commit | 05a3c5c0f3967f676778f477c7f823af6bec6c2f (patch) | |
| tree | 36ec3e2035726d9dc3e27e4e2d71a995efa397d0 /src | |
| parent | Implement check-exprs, un-xfail 5 rustc tests. (diff) | |
| download | rust-05a3c5c0f3967f676778f477c7f823af6bec6c2f.tar.xz rust-05a3c5c0f3967f676778f477c7f823af6bec6c2f.zip | |
rustc: Add an "_" prefix to assembler-generated symbols on Mac
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/back/x86.rs | 5 | ||||
| -rw-r--r-- | src/lib/linux_os.rs | 3 | ||||
| -rw-r--r-- | src/lib/macos_os.rs | 4 | ||||
| -rw-r--r-- | src/lib/win32_os.rs | 4 |
4 files changed, 16 insertions, 0 deletions
diff --git a/src/comp/back/x86.rs b/src/comp/back/x86.rs index d4b76352..86631e93 100644 --- a/src/comp/back/x86.rs +++ b/src/comp/back/x86.rs @@ -2,6 +2,7 @@ import lib.llvm.llvm; import lib.llvm.llvm.ModuleRef; import std._str; import std._vec; +import std.os.target_os; import util.common.istr; const int wordsz = 4; @@ -128,7 +129,11 @@ fn decl_upcall_glue(int align, str prefix, uint n) -> str { fn get_module_asm() -> str { auto align = 4; + auto prefix = ""; + if (target_os() == "macos") { + prefix = "_"; + } auto glues = vec(decl_glue(align, prefix, diff --git a/src/lib/linux_os.rs b/src/lib/linux_os.rs index ce2c0f79..d5ef2a6b 100644 --- a/src/lib/linux_os.rs +++ b/src/lib/linux_os.rs @@ -47,6 +47,9 @@ fn exec_suffix() -> str { ret ""; } +fn target_os() -> str { + ret "linux"; +} // Local Variables: // mode: rust; diff --git a/src/lib/macos_os.rs b/src/lib/macos_os.rs index 1d96a233..53a66b56 100644 --- a/src/lib/macos_os.rs +++ b/src/lib/macos_os.rs @@ -47,6 +47,10 @@ fn exec_suffix() -> str { ret ""; } +fn target_os() -> str { + ret "macos"; +} + // Local Variables: // mode: rust; // fill-column: 78; diff --git a/src/lib/win32_os.rs b/src/lib/win32_os.rs index 6e1b9a9c..9f9ec2c2 100644 --- a/src/lib/win32_os.rs +++ b/src/lib/win32_os.rs @@ -38,6 +38,10 @@ fn exec_suffix() -> str { ret ".exe"; } +fn target_os() -> str { + ret "win32"; +} + // Local Variables: // mode: rust; // fill-column: 78; |