aboutsummaryrefslogtreecommitdiffstats
path: root/main/llvm/llvm-3.2-alpine-linux.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/llvm/llvm-3.2-alpine-linux.patch')
-rw-r--r--main/llvm/llvm-3.2-alpine-linux.patch101
1 files changed, 101 insertions, 0 deletions
diff --git a/main/llvm/llvm-3.2-alpine-linux.patch b/main/llvm/llvm-3.2-alpine-linux.patch
new file mode 100644
index 0000000000..4064a0d4a7
--- /dev/null
+++ b/main/llvm/llvm-3.2-alpine-linux.patch
@@ -0,0 +1,101 @@
+diff -urp llvm-3.2.src.orig/include/llvm/ADT/Triple.h llvm-3.2.src.new/include/llvm/ADT/Triple.h
+--- llvm-3.2.src.orig/include/llvm/ADT/Triple.h 2012-11-15 16:24:48.000000000 -0500
++++ llvm-3.2.src.new/include/llvm/ADT/Triple.h 2013-04-22 04:02:00.691571066 -0400
+@@ -115,7 +115,8 @@ public:
+ EABI,
+ MachO,
+ Android,
+- ELF
++ ELF,
++ UClibc
+ };
+
+ private:
+diff -urp llvm-3.2.src.orig/lib/Support/Triple.cpp llvm-3.2.src.new/lib/Support/Triple.cpp
+--- llvm-3.2.src.orig/lib/Support/Triple.cpp 2012-11-15 16:24:48.000000000 -0500
++++ llvm-3.2.src.new/lib/Support/Triple.cpp 2013-04-22 04:02:04.568319294 -0400
+@@ -147,6 +147,7 @@ const char *Triple::getEnvironmentTypeNa
+ case MachO: return "macho";
+ case Android: return "android";
+ case ELF: return "elf";
++ case UClibc: return "uclibc";
+ }
+
+ llvm_unreachable("Invalid EnvironmentType!");
+@@ -293,6 +294,7 @@ static Triple::EnvironmentType parseEnvi
+ .StartsWith("macho", Triple::MachO)
+ .StartsWith("android", Triple::Android)
+ .StartsWith("elf", Triple::ELF)
++ .StartsWith("uclibc", Triple::UClibc)
+ .Default(Triple::UnknownEnvironment);
+ }
+
+diff -urp llvm-3.2.src.orig/tools/clang/lib/Driver/ToolChains.cpp llvm-3.2.src.new/tools/clang/lib/Driver/ToolChains.cpp
+--- llvm-3.2.src.orig/tools/clang/lib/Driver/ToolChains.cpp 2012-12-16 10:59:27.000000000 -0500
++++ llvm-3.2.src.new/tools/clang/lib/Driver/ToolChains.cpp 2013-04-22 04:02:08.788408080 -0400
+@@ -1070,7 +1070,8 @@ Generic_GCC::GCCInstallationDetector::GC
+ "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[] = {
+@@ -1083,7 +1084,8 @@ Generic_GCC::GCCInstallationDetector::GC
+ "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" };
+@@ -1829,6 +1831,7 @@ Tool &Solaris::SelectTool(const Compilat
+ /// Linux toolchain (very bare-bones at the moment).
+
+ enum LinuxDistro {
++ AlpineLinux,
+ ArchLinux,
+ DebianLenny,
+ DebianSqueeze,
+@@ -1955,6 +1958,9 @@ static LinuxDistro DetectLinuxDistro(llv
+ 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 -urp llvm-3.2.src.orig/tools/clang/lib/Driver/Tools.cpp llvm-3.2.src.new/tools/clang/lib/Driver/Tools.cpp
+--- llvm-3.2.src.orig/tools/clang/lib/Driver/Tools.cpp 2012-11-21 02:56:23.000000000 -0500
++++ llvm-3.2.src.new/tools/clang/lib/Driver/Tools.cpp 2013-04-22 04:09:34.657814569 -0400
+@@ -5975,9 +5975,12 @@ void linuxtools::Link::ConstructJob(Comp
+ 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::arm ||
++ 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::arm ||
+ ToolChain.getArch() == llvm::Triple::thumb) {
+ if (ToolChain.getTriple().getEnvironment() == llvm::Triple::GNUEABIHF)
+ CmdArgs.push_back("/lib/ld-linux-armhf.so.3");
+@@ -5998,6 +6001,8 @@ void linuxtools::Link::ConstructJob(Comp
+ CmdArgs.push_back("/lib/ld.so.1");
+ else if (ToolChain.getArch() == llvm::Triple::ppc64)
+ CmdArgs.push_back("/lib64/ld64.so.1");
++ else if (ToolChain.getTriple().getEnvironment() == llvm::Triple::UClibc)
++ CmdArgs.push_back("/lib64/ld64-uClibc.so.0.9.32");
+ else
+ CmdArgs.push_back("/lib64/ld-linux-x86-64.so.2");
+ }