diff options
author | Timo Teräs <timo.teras@iki.fi> | 2014-11-13 13:40:34 +0000 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2014-11-13 13:52:05 +0000 |
commit | f95a56c2ad66395f66fb9b3de3c0ce93745c7389 (patch) | |
tree | a83fbf41765a23493793301f64f079ab69d24a56 /main/llvm/llvm-alpine-linux.patch | |
parent | 6459fcd753a1485e5bde53b26d80a0faefed61fb (diff) | |
download | aports-f95a56c2ad66395f66fb9b3de3c0ce93745c7389.tar.bz2 aports-f95a56c2ad66395f66fb9b3de3c0ce93745c7389.tar.xz |
main/llvm: upgrade to 3.5.0
Diffstat (limited to 'main/llvm/llvm-alpine-linux.patch')
-rw-r--r-- | main/llvm/llvm-alpine-linux.patch | 180 |
1 files changed, 113 insertions, 67 deletions
diff --git a/main/llvm/llvm-alpine-linux.patch b/main/llvm/llvm-alpine-linux.patch index 8bef4b1777..d096916731 100644 --- a/main/llvm/llvm-alpine-linux.patch +++ b/main/llvm/llvm-alpine-linux.patch @@ -1,69 +1,102 @@ ---- a/include/llvm/ADT/Triple.h -+++ b/include/llvm/ADT/Triple.h -@@ -117,7 +117,10 @@ - EABI, - MachO, +diff -ru llvm-3.5.0.src.orig/include/llvm/ADT/Triple.h llvm-3.5.0.src/include/llvm/ADT/Triple.h +--- llvm-3.5.0.src.orig/include/llvm/ADT/Triple.h 2014-07-18 17:28:19.000000000 -0300 ++++ llvm-3.5.0.src/include/llvm/ADT/Triple.h 2014-11-12 14:44:41.738448045 -0200 +@@ -149,6 +149,10 @@ + EABIHF, Android, -- ELF -+ ELF, + + Musl, + MuslEABI, -+ MuslEABIHF - }; - - private: ---- a/lib/Support/Triple.cpp.orig -+++ b/lib/Support/Triple.cpp -@@ -153,6 +153,9 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) { - case MachO: return "macho"; - case Android: return "android"; - case ELF: return "elf"; ++ MuslEABIHF, ++ + MSVC, + Itanium, + Cygnus, +Only in llvm-3.5.0.src/include/llvm/ADT: Triple.h.orig +diff -ru llvm-3.5.0.src.orig/lib/Support/Triple.cpp llvm-3.5.0.src/lib/Support/Triple.cpp +--- llvm-3.5.0.src.orig/lib/Support/Triple.cpp 2014-07-18 17:28:19.000000000 -0300 ++++ llvm-3.5.0.src/lib/Support/Triple.cpp 2014-11-12 14:47:06.565122146 -0200 +@@ -168,6 +168,9 @@ + case CODE16: return "code16"; + case EABI: return "eabi"; + case EABIHF: return "eabihf"; + case Musl: return "musl"; -+ case MuslEABI: return "muslgnueabi"; -+ case MuslEABIHF: return "muslgnueabihf"; - } - - llvm_unreachable("Invalid EnvironmentType!"); -@@ -305,6 +308,9 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { - .StartsWith("macho", Triple::MachO) - .StartsWith("android", Triple::Android) - .StartsWith("elf", Triple::ELF) -+ .StartsWith("muslgnueabihf", Triple::MuslEABIHF) -+ .StartsWith("muslgnueabi", Triple::MuslEABI) ++ case MuslEABI: return "musleabi"; ++ case MuslEABIHF: return "musleabihf"; + case Android: return "android"; + case MSVC: return "msvc"; + case Itanium: return "itanium"; +@@ -344,6 +347,9 @@ + .StartsWith("gnux32", Triple::GNUX32) + .StartsWith("code16", Triple::CODE16) + .StartsWith("gnu", Triple::GNU) + .StartsWith("musl", Triple::Musl) - .Default(Triple::UnknownEnvironment); - } - ---- a/tools/clang/lib/Driver/ToolChains.cpp -+++ b/tools/clang/lib/Driver/ToolChains.cpp -@@ -1118,20 +1118,23 @@ void Generic_GCC::GCCInstallationDetector::print(raw_ostream &OS) const { ++ .StartsWith("musleabi", Triple::MuslEABI) ++ .StartsWith("musleabihf", Triple::MuslEABIHF) + .StartsWith("android", Triple::Android) + .StartsWith("msvc", Triple::MSVC) + .StartsWith("itanium", Triple::Itanium) +Only in llvm-3.5.0.src/lib/Support: Triple.cpp.orig +diff -ru llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.cpp llvm-3.5.0.src/lib/Target/ARM/ARMSubtarget.cpp +--- llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.cpp 2014-07-16 23:13:31.000000000 -0300 ++++ llvm-3.5.0.src/lib/Target/ARM/ARMSubtarget.cpp 2014-11-12 14:50:40.025133104 -0200 +@@ -273,6 +273,8 @@ + case Triple::EABIHF: + case Triple::GNUEABI: + case Triple::GNUEABIHF: ++ case Triple::MuslEABI: ++ case Triple::MuslEABIHF: + TargetABI = ARM_ABI_AAPCS; + break; + default: +diff -ru llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.h llvm-3.5.0.src/lib/Target/ARM/ARMSubtarget.h +--- llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.h 2014-07-16 23:13:31.000000000 -0300 ++++ llvm-3.5.0.src/lib/Target/ARM/ARMSubtarget.h 2014-11-12 14:53:36.571808822 -0200 +@@ -372,8 +372,10 @@ + bool isTargetEHABICompatible() const { + return (TargetTriple.getEnvironment() == Triple::EABI || + TargetTriple.getEnvironment() == Triple::GNUEABI || ++ TargetTriple.getEnvironment() == Triple::MuslEABI || + TargetTriple.getEnvironment() == Triple::EABIHF || + TargetTriple.getEnvironment() == Triple::GNUEABIHF || ++ TargetTriple.getEnvironment() == Triple::MuslEABIHF || + TargetTriple.getEnvironment() == Triple::Android) && + !isTargetDarwin() && !isTargetWindows(); + } +diff -ru llvm-3.5.0.src.orig/tools/clang/lib/Driver/ToolChains.cpp llvm-3.5.0.src/tools/clang/lib/Driver/ToolChains.cpp +--- llvm-3.5.0.src.orig/tools/clang/lib/Driver/ToolChains.cpp 2014-08-27 23:07:31.000000000 -0300 ++++ llvm-3.5.0.src/tools/clang/lib/Driver/ToolChains.cpp 2014-11-12 15:09:14.805190323 -0200 +@@ -1324,7 +1324,9 @@ static const char *const ARMTriples[] = { "arm-linux-gnueabi", "arm-linux-androideabi" }; static const char *const ARMHFTriples[] = { "arm-linux-gnueabihf", - "armv7hl-redhat-linux-gnueabi" }; + "armv7hl-redhat-linux-gnueabi", -+ "armv6-alpine-linux-muslgnueabihf", -+ "armv7-alpine-linux-muslgnueabihf" }; - - static const char *const X86_64LibDirs[] = { "/lib64", "/lib" }; - static const char *const X86_64Triples[] = { ++ "armv6-alpine-linux-muslgnueabihf", ++ "armv7-alpine-linux-muslgnueabihf" }; + static const char *const ARMebLibDirs[] = { "/lib" }; + static const char *const ARMebTriples[] = { "armeb-linux-gnueabi", + "armeb-linux-androideabi" }; +@@ -1336,7 +1338,7 @@ "x86_64-linux-gnu", "x86_64-unknown-linux-gnu", "x86_64-pc-linux-gnu", "x86_64-redhat-linux6E", "x86_64-redhat-linux", "x86_64-suse-linux", -- "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux" -+ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux", -+ "x86_64-alpine-linux-musl" + "x86_64-manbo-linux-gnu", "x86_64-linux-gnu", "x86_64-slackware-linux", +- "x86_64-linux-android", "x86_64-unknown-linux" ++ "x86_64-linux-android", "x86_64-alpine-linux-musl", "x86_64-unknown-linux" }; + static const char *const X32LibDirs[] = { "/libx32" }; static const char *const X86LibDirs[] = { "/lib32", "/lib" }; - static const char *const X86Triples[] = { +@@ -1344,7 +1346,8 @@ "i686-linux-gnu", "i686-pc-linux-gnu", "i486-linux-gnu", "i386-linux-gnu", "i386-redhat-linux6E", "i686-redhat-linux", "i586-redhat-linux", "i386-redhat-linux", "i586-suse-linux", "i486-slackware-linux", -- "i686-montavista-linux" -+ "i686-montavista-linux", "i486-alpine-linux-musl" +- "i686-montavista-linux", "i686-linux-android", "i586-linux-gnu" ++ "i686-montavista-linux", "i686-linux-android", "i586-linux-gnu", ++ "i486-alpine-linux-musl" }; static const char *const MIPSLibDirs[] = { "/lib" }; -@@ -2166,6 +2169,7 @@ Tool *Solaris::buildLinker() const { +@@ -2777,6 +2780,7 @@ /// Distribution (very bare-bones at the moment). enum Distro { @@ -71,7 +104,7 @@ ArchLinux, DebianLenny, DebianSqueeze, -@@ -2276,6 +2280,9 @@ static Distro DetectDistro(llvm::Triple::ArchType Arch) { +@@ -2888,6 +2892,9 @@ if (llvm::sys::fs::exists("/etc/arch-release")) return ArchLinux; @@ -81,24 +114,37 @@ return UnknownDistro; } ---- a/tools/clang/lib/Driver/Tools.cpp -+++ b/tools/clang/lib/Driver/Tools.cpp -@@ -6355,16 +6355,28 @@ static StringRef getLinuxDynamicLinker(const ArgList &Args, - const toolchains::Linux &ToolChain) { - if (ToolChain.getTriple().getEnvironment() == llvm::Triple::Android) - return "/system/bin/linker"; -- else if (ToolChain.getArch() == llvm::Triple::x86) -- return "/lib/ld-linux.so.2"; -- else if (ToolChain.getArch() == llvm::Triple::aarch64) -+ else if (ToolChain.getArch() == llvm::Triple::x86) { +@@ -3042,7 +3049,7 @@ + + Distro Distro = DetectDistro(Arch); + +- if (IsOpenSUSE(Distro) || IsUbuntu(Distro)) { ++ if (IsOpenSUSE(Distro) || IsUbuntu(Distro) || Distro == AlpineLinux) { + ExtraOpts.push_back("-z"); + ExtraOpts.push_back("relro"); + } +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 +--- llvm-3.5.0.src.orig/tools/clang/lib/Driver/Tools.cpp 2014-08-07 07:51:51.000000000 -0300 ++++ llvm-3.5.0.src/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::aarch64) - return "/lib/ld-linux-aarch64.so.1"; ++ } 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) @@ -114,13 +160,13 @@ + default: return "/lib/ld-linux.so.3"; + } - } else if (ToolChain.getArch() == llvm::Triple::mips || - ToolChain.getArch() == llvm::Triple::mipsel) - return "/lib/ld.so.1"; -@@ -6380,8 +6392,14 @@ static StringRef getLinuxDynamicLinker(const ArgList &Args, - ToolChain.getArch() == llvm::Triple::ppc64le || - ToolChain.getArch() == llvm::Triple::systemz) - return "/lib64/ld64.so.1"; + } 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 { @@ -133,4 +179,4 @@ + } } - void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, + static void AddRunTimeLibs(const ToolChain &TC, const Driver &D, |