summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorJoerg Sonnenberger <joerg@bec.de>2014-02-02 22:50:34 +0000
committerJoerg Sonnenberger <joerg@bec.de>2014-02-02 22:50:34 +0000
commit6cd7deb9feefed94036860eece8668eec35ed2de (patch)
tree91fd6b4cdbf3604f1f2d234bd8bfdb1f0c447894 /clang/lib
parent25de31d472961c443c8ebc9cac757be0af61eed2 (diff)
downloadbcm5719-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.cpp18
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()) {
OpenPOWER on IntegriCloud