diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-15 08:24:49 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2013-07-15 08:24:49 +0000 |
commit | 93ff9b35f2a6a1a2ea03ace207249f2e97e171a0 (patch) | |
tree | e8ab4c7171d6c749e5dd25ac92e68f4f0350330e /main/llvm/llvm-3.3-alpine-linux.patch | |
parent | 0cf44d93e4b17b33673264b90577a83fa97549e8 (diff) | |
download | aports-93ff9b35f2a6a1a2ea03ace207249f2e97e171a0.tar.bz2 aports-93ff9b35f2a6a1a2ea03ace207249f2e97e171a0.tar.xz |
main/llvm: upgrade to 3.3
Diffstat (limited to 'main/llvm/llvm-3.3-alpine-linux.patch')
-rw-r--r-- | main/llvm/llvm-3.3-alpine-linux.patch | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/main/llvm/llvm-3.3-alpine-linux.patch b/main/llvm/llvm-3.3-alpine-linux.patch new file mode 100644 index 0000000000..4964973271 --- /dev/null +++ b/main/llvm/llvm-3.3-alpine-linux.patch @@ -0,0 +1,105 @@ +diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h +index 3a72e87..ac4c3ea 100644 +--- a/include/llvm/ADT/Triple.h ++++ b/include/llvm/ADT/Triple.h +@@ -117,7 +117,8 @@ public: + EABI, + MachO, + Android, +- ELF ++ ELF, ++ UClibc + }; + + private: +diff --git a/lib/Support/Triple.cpp b/lib/Support/Triple.cpp +index 412e34c..64dfce8 100644 +--- a/lib/Support/Triple.cpp ++++ b/lib/Support/Triple.cpp +@@ -151,6 +151,7 @@ const char *Triple::getEnvironmentTypeName(EnvironmentType Kind) { + case MachO: return "macho"; + case Android: return "android"; + case ELF: return "elf"; ++ case UClibc: return "uclibc"; + } + + llvm_unreachable("Invalid EnvironmentType!"); +@@ -300,6 +301,7 @@ static Triple::EnvironmentType parseEnvironment(StringRef EnvironmentName) { + .StartsWith("macho", Triple::MachO) + .StartsWith("android", Triple::Android) + .StartsWith("elf", Triple::ELF) ++ .StartsWith("uclibc", Triple::UClibc) + .Default(Triple::UnknownEnvironment); + } + +diff --git a/tools/clang/lib/Driver/ToolChains.cpp b/tools/clang/lib/Driver/ToolChains.cpp +index fffba0e..797d0c1 100644 +--- a/tools/clang/lib/Driver/ToolChains.cpp ++++ b/tools/clang/lib/Driver/ToolChains.cpp +@@ -1099,7 +1099,8 @@ Generic_GCC::GCCInstallationDetector::GCCInstallationDetector( + "x86_64-suse-linux", + "x86_64-manbo-linux-gnu", + "x86_64-linux-gnu", +- "x86_64-slackware-linux" ++ "x86_64-slackware-linux", ++ "x86_64-alpine-linux-uclibc" + }; + static const char *const X86LibDirs[] = { "/lib32", "/lib" }; + static const char *const X86Triples[] = { +@@ -1113,7 +1114,8 @@ Generic_GCC::GCCInstallationDetector::GCCInstallationDetector( + "i386-redhat-linux", + "i586-suse-linux", + "i486-slackware-linux", +- "i686-montavista-linux" ++ "i686-montavista-linux", ++ "i486-alpine-linux-uclibc" + }; + + static const char *const MIPSLibDirs[] = { "/lib" }; +@@ -1980,6 +1982,7 @@ Tool *Solaris::buildLinker() const { + /// Distribution (very bare-bones at the moment). + + enum Distro { ++ AlpineLinux, + ArchLinux, + DebianLenny, + DebianSqueeze, +@@ -2109,6 +2112,9 @@ static Distro DetectDistro(llvm::Triple::ArchType Arch) { + if (!llvm::sys::fs::exists("/etc/arch-release", Exists) && Exists) + return ArchLinux; + ++ if (!llvm::sys::fs::exists("/etc/alpine-release", Exists) && Exists) ++ return AlpineLinux; ++ + return UnknownDistro; + } + +diff --git a/tools/clang/lib/Driver/Tools.cpp b/tools/clang/lib/Driver/Tools.cpp +index aba1fe4..cc8e9c9 100644 +--- a/tools/clang/lib/Driver/Tools.cpp ++++ b/tools/clang/lib/Driver/Tools.cpp +@@ -5983,9 +5983,12 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, + CmdArgs.push_back("-dynamic-linker"); + if (isAndroid) + CmdArgs.push_back("/system/bin/linker"); +- else if (ToolChain.getArch() == llvm::Triple::x86) +- CmdArgs.push_back("/lib/ld-linux.so.2"); +- else if (ToolChain.getArch() == llvm::Triple::aarch64) ++ else if (ToolChain.getArch() == llvm::Triple::x86) { ++ if (ToolChain.getTriple().getEnvironment() == llvm::Triple::UClibc) ++ CmdArgs.push_back("/lib/ld-uClibc.so.0.9.32"); ++ else ++ CmdArgs.push_back("/lib/ld-linux.so.2"); ++ } else if (ToolChain.getArch() == llvm::Triple::aarch64) + CmdArgs.push_back("/lib/ld-linux-aarch64.so.1"); + else if (ToolChain.getArch() == llvm::Triple::arm || + ToolChain.getArch() == llvm::Triple::thumb) { +@@ -6009,6 +6012,8 @@ void gnutools::Link::ConstructJob(Compilation &C, const JobAction &JA, + else if (ToolChain.getArch() == llvm::Triple::ppc64 || + ToolChain.getArch() == llvm::Triple::systemz) + CmdArgs.push_back("/lib64/ld64.so.1"); ++ else if (ToolChain.getTriple().getEnvironment() == llvm::Triple::UClibc) ++ CmdArgs.push_back("/lib/ld64-uClibc.so.0.9.32"); + else + CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2"); + } |