diff options
| author | Joerg Sonnenberger <joerg@bec.de> | 2014-02-02 22:50:34 +0000 |
|---|---|---|
| committer | Joerg Sonnenberger <joerg@bec.de> | 2014-02-02 22:50:34 +0000 |
| commit | 6cd7deb9feefed94036860eece8668eec35ed2de (patch) | |
| tree | 91fd6b4cdbf3604f1f2d234bd8bfdb1f0c447894 /clang/lib | |
| parent | 25de31d472961c443c8ebc9cac757be0af61eed2 (diff) | |
| download | bcm5719-llvm-6cd7deb9feefed94036860eece8668eec35ed2de.tar.gz bcm5719-llvm-6cd7deb9feefed94036860eece8668eec35ed2de.zip | |
Use a switch for the emulation handling.
llvm-svn: 200666
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Driver/Tools.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index cc0f7795adb..4bfc272f743 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -6110,16 +6110,15 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA, } } - // When building 32-bit code on NetBSD/amd64, we have to explicitly - // instruct ld in the base system to link 32-bit code. - if (getToolChain().getArch() == llvm::Triple::x86) { + // Many NetBSD architectures support more than one ABI. + // Determine the correct emulation for ld. + switch (getToolChain().getArch()) { + case llvm::Triple::x86: CmdArgs.push_back("-m"); CmdArgs.push_back("elf_i386"); - } - - // On ARM, the linker can generate either EABI or the older APCS. - // Instruct it to use the correct emulation. - if (getToolChain().getArch() == llvm::Triple::arm) { + break; + case llvm::Triple::arm: + case llvm::Triple::thumb: CmdArgs.push_back("-m"); switch (getToolChain().getTriple().getEnvironment()) { case llvm::Triple::EABI: @@ -6132,6 +6131,9 @@ void netbsd::Link::ConstructJob(Compilation &C, const JobAction &JA, CmdArgs.push_back("armelf_nbsd"); break; } + break; + default: + break; } if (Output.isFilename()) { |

