From: Daniel Dunbar Date: Thu, 26 Aug 2010 00:55:52 +0000 (+0000) Subject: Driver/Darwin: Pass the right arch specific dir for ARM, when linking. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3a0e3926b8824076cf5c2f9c96883e72fd84c9cb;p=clang Driver/Darwin: Pass the right arch specific dir for ARM, when linking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112124 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp index 5be810da4f..f5ed56b3ef 100644 --- a/lib/Driver/ToolChains.cpp +++ b/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();