diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-08-26 00:55:52 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-08-26 00:55:52 +0000 |
commit | e9f7151485e9592ea712cc4a61d0f3595d361a74 (patch) | |
tree | 5e3d8687accaf79ae838036a7ff40cdf46be564f /clang/lib/Driver/ToolChains.cpp | |
parent | b6ceacf623dc8bdf446fb3bcc22462d26c33186f (diff) | |
download | bcm5719-llvm-e9f7151485e9592ea712cc4a61d0f3595d361a74.tar.gz bcm5719-llvm-e9f7151485e9592ea712cc4a61d0f3595d361a74.zip |
Driver/Darwin: Pass the right arch specific dir for ARM, when linking.
llvm-svn: 112124
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r-- | clang/lib/Driver/ToolChains.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp index 5be810da4f2..f5ed56b3ef6 100644 --- a/clang/lib/Driver/ToolChains.cpp +++ b/clang/lib/Driver/ToolChains.cpp @@ -409,9 +409,17 @@ void DarwinClang::AddLinkSearchPathArgs(const ArgList &Args, default: break; case llvm::Triple::arm: - case llvm::Triple::thumb: - // FIXME: Get the right subdirectory for ARM. + case llvm::Triple::thumb: { + std::string Triple = ComputeLLVMTriple(Args); + llvm::StringRef TripleStr = Triple; + if (TripleStr.startswith("armv5") || TripleStr.startswith("thumbv5")) + ArchSpecificDir = "v5"; + else if (TripleStr.startswith("armv6") || TripleStr.startswith("thumbv6")) + ArchSpecificDir = "v6"; + else if (TripleStr.startswith("armv7") || TripleStr.startswith("thumbv7")) + ArchSpecificDir = "v7"; break; + } case llvm::Triple::ppc64: ArchSpecificDir = "ppc64"; break; @@ -422,7 +430,6 @@ void DarwinClang::AddLinkSearchPathArgs(const ArgList &Args, if (ArchSpecificDir) { P.appendComponent(ArchSpecificDir); - llvm::errs() << P.str() << "\n"; if (P.exists()) CmdArgs.push_back(Args.MakeArgString("-L" + P.str())); P.eraseComponent(); |