From: Steven Chamberlain Date: Sun, 10 May 2015 19:46:59 +0100 Subject: support Debian s390x multiarch paths --- llvm-toolchain-3.7-3.7~+rc2.orig/clang/lib/Driver/ToolChains.cpp +++ llvm-toolchain-3.7-3.7~+rc2/clang/lib/Driver/ToolChains.cpp @@ -3081,6 +3081,10 @@ static std::string getMultiarchTriple(co if (llvm::sys::fs::exists(SysRoot + "/lib/sparc64-linux-gnu")) return "sparc64-linux-gnu"; break; + case llvm::Triple::systemz: + if (llvm::sys::fs::exists(SysRoot + "/lib/s390x-linux-gnu")) + return "s390x-linux-gnu"; + break; } return TargetTriple.str(); } @@ -3424,6 +3428,8 @@ void Linux::AddClangSystemIncludeArgs(co "/usr/include/sparc-linux-gnu"}; const StringRef Sparc64MultiarchIncludeDirs[] = { "/usr/include/sparc64-linux-gnu"}; + const StringRef SYSTEMZMultiarchIncludeDirs[] = { + "/usr/include/s390x-linux-gnu"}; ArrayRef MultiarchIncludeDirs; switch (getTriple().getArch()) { case llvm::Triple::x86_64: @@ -3469,6 +3475,9 @@ void Linux::AddClangSystemIncludeArgs(co case llvm::Triple::sparcv9: MultiarchIncludeDirs = Sparc64MultiarchIncludeDirs; break; + case llvm::Triple::systemz: + MultiarchIncludeDirs = SYSTEMZMultiarchIncludeDirs; + break; default: break; } --- llvm-toolchain-3.7-3.7~+rc2.orig/clang/lib/Driver/Tools.cpp +++ llvm-toolchain-3.7-3.7~+rc2/clang/lib/Driver/Tools.cpp @@ -8008,7 +8008,7 @@ static std::string getLinuxDynamicLinker return "/lib64/ld64.so.1"; return "/lib64/ld64.so.2"; } else if (Arch == llvm::Triple::systemz) - return "/lib64/ld64.so.1"; + return "/lib/ld64.so.1"; else if (Arch == llvm::Triple::sparcv9) return "/lib64/ld-linux.so.2"; else if (Arch == llvm::Triple::x86_64 &&