diff options
Diffstat (limited to 'sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch')
-rw-r--r-- | sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch b/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch new file mode 100644 index 00000000..a492f12b --- /dev/null +++ b/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch @@ -0,0 +1,59 @@ +adapted from llvm-alpine-linux.patch from Alpine + +diff -ru llvm-3.5.0.src.orig/tools/clang/lib/Driver/Tools.cpp llvm-3.5.0.src/tools/clang/lib/Driver/Tools.cpp +--- tools/clang/lib/Driver/Tools.cpp 2014-08-07 07:51:51.000000000 -0300 ++++ tools/clang/lib/Driver/Tools.cpp 2014-11-12 15:11:31.901864030 -0200 +@@ -7182,8 +7182,14 @@ + return "/system/bin/linker64"; + else + return "/system/bin/linker"; +- } else if (ToolChain.getArch() == llvm::Triple::x86 || +- ToolChain.getArch() == llvm::Triple::sparc) ++ } else if (ToolChain.getArch() == llvm::Triple::x86) { ++ switch (ToolChain.getTriple().getEnvironment()) { ++ case llvm::Triple::Musl: ++ return "/lib/ld-musl-i386.so.1"; ++ default: ++ return "/lib/ld-linux.so.2"; ++ } ++ } else if (ToolChain.getArch() == llvm::Triple::sparc) + return "/lib/ld-linux.so.2"; + else if (ToolChain.getArch() == llvm::Triple::aarch64 || + ToolChain.getArch() == llvm::Triple::arm64) +@@ -7193,10 +7199,17 @@ + return "/lib/ld-linux-aarch64_be.so.1"; + else if (ToolChain.getArch() == llvm::Triple::arm || + ToolChain.getArch() == llvm::Triple::thumb) { +- if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) ++ switch (ToolChain.getTriple().getEnvironment()) { ++ case llvm::Triple::Musl: ++ case llvm::Triple::MuslEABI: ++ return "/lib/ld-musl-arm.so.3"; ++ case llvm::Triple::MuslEABIHF: ++ return "/lib/ld-musl-armhf.so.3"; ++ case llvm::Triple::GNUEABIHF: + return "/lib/ld-linux-armhf.so.3"; +- else ++ default: + return "/lib/ld-linux.so.3"; ++ } + } else if (ToolChain.getArch() == llvm::Triple::armeb || + ToolChain.getArch() == llvm::Triple::thumbeb) { + if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) +@@ -7227,8 +7240,14 @@ + else if (ToolChain.getArch() == llvm::Triple::x86_64 && + ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUX32) + return "/libx32/ld-linux-x32.so.2"; +- else +- return "/lib64/ld-linux-x86-64.so.2"; ++ else { ++ switch (ToolChain.getTriple().getEnvironment()) { ++ case llvm::Triple::Musl: ++ return "/lib/ld-musl-x86_64.so.1"; ++ default: ++ return "/lib64/ld-linux-x86-64.so.2"; ++ } ++ } + } + + static void AddRunTimeLibs(const ToolChain &TC, const Driver &D, |