aboutsummaryrefslogtreecommitdiffstats
path: root/main/llvm/llvm-3.3-alpine-linux.patch
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2013-07-15 08:24:49 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2013-07-15 08:24:49 +0000
commit93ff9b35f2a6a1a2ea03ace207249f2e97e171a0 (patch)
treee8ab4c7171d6c749e5dd25ac92e68f4f0350330e /main/llvm/llvm-3.3-alpine-linux.patch
parent0cf44d93e4b17b33673264b90577a83fa97549e8 (diff)
downloadaports-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.patch105
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");
+ }