forked from OSchip/llvm-project
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
This commit is contained in:
parent
8409e88fde
commit
9afb05024d
|
@ -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;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
// CHECK-I686: "-target-cpu" "pentium4"
|
||||
// CHECK-I686: "-resource-dir" "foo"
|
||||
// CHECK-I686: "-internal-isystem" "foo{{/|\\\\}}include"
|
||||
// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}include"
|
||||
// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}include"
|
||||
// CHECK-I686: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include"
|
||||
// CHECK-I686: as{{(.exe)?}}" "--32"
|
||||
// CHECK-I686: ld{{(.exe)?}}"
|
||||
|
@ -17,7 +17,7 @@
|
|||
// CHECK-I686: "-m" "elf_i386_nacl"
|
||||
// CHECK-I686: "-static"
|
||||
// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}lib32"
|
||||
// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}lib32"
|
||||
// CHECK-I686: "-L{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}lib"
|
||||
// CHECK-I686: "-Lfoo{{/|\\\\}}lib{{/|\\\\}}i686-nacl"
|
||||
// CHECK-I686-NOT: -lpthread
|
||||
//
|
||||
|
@ -118,7 +118,7 @@
|
|||
// CHECK-I686-CXX: "-resource-dir" "foo"
|
||||
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}v1"
|
||||
// CHECK-I686-CXX: "-internal-isystem" "foo{{/|\\\\}}include"
|
||||
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}usr{{/|\\\\}}include"
|
||||
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}i686-nacl{{/|\\\\}}usr{{/|\\\\}}include"
|
||||
// CHECK-I686-CXX: "-internal-isystem" "{{.*}}{{/|\\\\}}..{{/|\\\\}}x86_64-nacl{{/|\\\\}}include"
|
||||
// CHECK-I686-CXX: "-lpthread"
|
||||
|
||||
|
|
Loading…
Reference in New Issue