summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/ToolChains.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2015-08-26 17:14:08 +0000
committerDerek Schuff <dschuff@google.com>2015-08-26 17:14:08 +0000
commit9afb05024d86bcdba8e1a59d81d8c2bf6edbddf6 (patch)
treec66a1bf6923ae01423ea9b5f8e41d259759d80c0 /clang/lib/Driver/ToolChains.cpp
parent8409e88fdef77a4970b067706d24cd70a347aadd (diff)
downloadbcm5719-llvm-9afb05024d86bcdba8e1a59d81d8c2bf6edbddf6.tar.gz
bcm5719-llvm-9afb05024d86bcdba8e1a59d81d8c2bf6edbddf6.zip
Change Native Client x86 usr include and link path to match SDK expectations
GNU multilib style uses x86_64-nacl/include and x86_64-nacl/usr/include but the SDK expects i686-nacl/usr/include for its files. Change the driver to use this. Fixes https://code.google.com/p/nativeclient/issues/detail?id=4108 Differential Revision: http://reviews.llvm.org/D11271 llvm-svn: 246040
Diffstat (limited to 'clang/lib/Driver/ToolChains.cpp')
-rw-r--r--clang/lib/Driver/ToolChains.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/clang/lib/Driver/ToolChains.cpp b/clang/lib/Driver/ToolChains.cpp
index cb4ec03a4ca..cae992e4a9d 100644
--- a/clang/lib/Driver/ToolChains.cpp
+++ b/clang/lib/Driver/ToolChains.cpp
@@ -2328,7 +2328,7 @@ NaClToolChain::NaClToolChain(const Driver &D, const llvm::Triple &Triple,
switch (Triple.getArch()) {
case llvm::Triple::x86: {
file_paths.push_back(FilePath + "x86_64-nacl/lib32");
- file_paths.push_back(FilePath + "x86_64-nacl/usr/lib32");
+ file_paths.push_back(FilePath + "i686-nacl/usr/lib");
prog_paths.push_back(ProgPath + "x86_64-nacl/bin");
file_paths.push_back(ToolPath + "i686-nacl");
break;
@@ -2380,12 +2380,21 @@ void NaClToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
SmallString<128> P(D.Dir + "/../");
switch (getTriple().getArch()) {
+ case llvm::Triple::x86:
+ // x86 is special because multilib style uses x86_64-nacl/include for libc
+ // headers but the SDK wants i686-nacl/usr/include. The other architectures
+ // have the same substring.
+ llvm::sys::path::append(P, "i686-nacl/usr/include");
+ addSystemInclude(DriverArgs, CC1Args, P.str());
+ llvm::sys::path::remove_filename(P);
+ llvm::sys::path::remove_filename(P);
+ llvm::sys::path::remove_filename(P);
+ llvm::sys::path::append(P, "x86_64-nacl/include");
+ addSystemInclude(DriverArgs, CC1Args, P.str());
+ return;
case llvm::Triple::arm:
llvm::sys::path::append(P, "arm-nacl/usr/include");
break;
- case llvm::Triple::x86:
- llvm::sys::path::append(P, "x86_64-nacl/usr/include");
- break;
case llvm::Triple::x86_64:
llvm::sys::path::append(P, "x86_64-nacl/usr/include");
break;
OpenPOWER on IntegriCloud