Created
June 1, 2012 06:55
-
-
Save shirro/2849698 to your computer and use it in GitHub Desktop.
Raspbian Clang 3.0 diff
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff -pruN orig/debian/changelog clang-3.0/debian/changelog | |
--- orig/debian/changelog 2012-02-25 13:05:54.000000000 +0000 | |
+++ clang-3.0/debian/changelog 2012-06-01 01:21:32.687758804 +0000 | |
@@ -1,3 +1,10 @@ | |
+clang (3.0-6+rpi1) unstable; urgency=low | |
+ | |
+ * Added modified patch from Ubuntu to target 1176jzfs-s cpu | |
+ * Added patch from Ubuntu to fix armhf ld path | |
+ | |
+ -- Paul Shirren <[email protected]> Fri, 01 Jun 2012 10:51:00 +0930 | |
+ | |
clang (3.0-6) unstable; urgency=low | |
* Improve the soname patch | |
diff -pruN orig/debian/patches/26-armhf-linker-name.diff clang-3.0/debian/patches/26-armhf-linker-name.diff | |
--- orig/debian/patches/26-armhf-linker-name.diff 1970-01-01 00:00:00.000000000 +0000 | |
+++ clang-3.0/debian/patches/26-armhf-linker-name.diff 2012-06-01 00:55:15.157747024 +0000 | |
@@ -0,0 +1,90 @@ | |
+Index: clang-3.0/tools/clang/lib/Driver/Tools.cpp | |
+=================================================================== | |
+--- clang-3.0.orig/tools/clang/lib/Driver/Tools.cpp 2012-03-02 01:59:31.000000000 -0500 | |
++++ clang-3.0/tools/clang/lib/Driver/Tools.cpp 2012-03-02 02:00:09.746488895 -0500 | |
+@@ -526,6 +526,7 @@ | |
+ // Select the default based on the platform. | |
+ switch(Triple.getEnvironment()) { | |
+ case llvm::Triple::GNUEABI: | |
++ case llvm::Triple::GNUEABIHF: | |
+ ABIName = "aapcs-linux"; | |
+ break; | |
+ case llvm::Triple::EABI: | |
+@@ -586,11 +587,18 @@ | |
+ FloatABI = "softfp"; | |
+ break; | |
+ } | |
++ else if (getToolChain().getTriple().getEnvironment() == llvm::Triple::GNUEABIHF) { | |
++ FloatABI = "hard"; | |
++ break; | |
++ } | |
+ } | |
+ // fall through | |
+ | |
+ default: | |
+ switch(Triple.getEnvironment()) { | |
++ case llvm::Triple::GNUEABIHF: | |
++ FloatABI = "hard"; | |
++ break; | |
+ case llvm::Triple::GNUEABI: | |
+ FloatABI = "softfp"; | |
+ break; | |
+@@ -4310,8 +4318,14 @@ | |
+ if (ToolChain.getArch() == llvm::Triple::x86) | |
+ CmdArgs.push_back("/lib/ld-linux.so.2"); | |
+ else if (ToolChain.getArch() == llvm::Triple::arm || | |
+- ToolChain.getArch() == llvm::Triple::thumb) | |
++ ToolChain.getArch() == llvm::Triple::thumb) { | |
++ // FIXME: default triplet and command line args | |
++#if defined(__ARM_PCS_VFP) | |
++ CmdArgs.push_back("/lib/ld-linux-armhf.so.3"); | |
++#else | |
+ CmdArgs.push_back("/lib/ld-linux.so.3"); | |
++#endif | |
++ } | |
+ else if (ToolChain.getArch() == llvm::Triple::ppc) | |
+ CmdArgs.push_back("/lib/ld.so.1"); | |
+ else if (ToolChain.getArch() == llvm::Triple::ppc64) | |
+Index: clang-3.0/tools/clang/lib/CodeGen/TargetInfo.cpp | |
+=================================================================== | |
+--- clang-3.0.orig/tools/clang/lib/CodeGen/TargetInfo.cpp 2012-03-02 01:59:31.000000000 -0500 | |
++++ clang-3.0/tools/clang/lib/CodeGen/TargetInfo.cpp 2012-03-02 02:00:09.746488895 -0500 | |
+@@ -2328,7 +2328,7 @@ | |
+ | |
+ bool isEABI() const { | |
+ StringRef Env = getContext().getTargetInfo().getTriple().getEnvironmentName(); | |
+- return (Env == "gnueabi" || Env == "eabi"); | |
++ return (Env == "gnueabihf" || Env == "gnueabi" || Env == "eabi"); | |
+ } | |
+ | |
+ private: | |
+Index: clang-3.0/tools/clang/lib/Driver/ToolChains.cpp | |
+=================================================================== | |
+--- clang-3.0.orig/tools/clang/lib/Driver/ToolChains.cpp 2012-03-02 01:59:41.000000000 -0500 | |
++++ clang-3.0/tools/clang/lib/Driver/ToolChains.cpp 2012-03-02 02:04:04.992139693 -0500 | |
+@@ -1654,7 +1654,12 @@ | |
+ SmallVectorImpl<StringRef> &Triples) { | |
+ if (HostArch == llvm::Triple::arm || HostArch == llvm::Triple::thumb) { | |
+ static const char *const ARMLibDirs[] = { "/lib" }; | |
++ // FIXME: default triplet and command line args | |
++#if defined(__ARM_PCS_VFP) | |
++ static const char *const ARMTriples[] = { "arm-linux-gnueabihf" }; | |
++#else | |
+ static const char *const ARMTriples[] = { "arm-linux-gnueabi" }; | |
++#endif | |
+ LibDirs.append(ARMLibDirs, ARMLibDirs + llvm::array_lengthof(ARMLibDirs)); | |
+ Triples.append(ARMTriples, ARMTriples + llvm::array_lengthof(ARMTriples)); | |
+ } else if (HostArch == llvm::Triple::x86_64) { | |
+@@ -1801,8 +1806,11 @@ | |
+ return "powerpc-linux-gnu"; | |
+ return TargetTriple.str(); | |
+ case llvm::Triple::arm: | |
+- if (llvm::sys::fs::exists(SysRoot + "/lib/arm-linux-gnueabi")) | |
++ case llvm::Triple::thumb: | |
++ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABI) | |
+ return "arm-linux-gnueabi"; | |
++ if (TargetTriple.getEnvironment() == llvm::Triple::GNUEABIHF) | |
++ return "arm-linux-gnueabihf"; | |
+ return TargetTriple.str(); | |
+ | |
+ } | |
diff -pruN orig/debian/patches/27-armhf-is-armv6.patch clang-3.0/debian/patches/27-armhf-is-armv6.patch | |
--- orig/debian/patches/27-armhf-is-armv6.patch 1970-01-01 00:00:00.000000000 +0000 | |
+++ clang-3.0/debian/patches/27-armhf-is-armv6.patch 2012-06-01 00:50:55.607746184 +0000 | |
@@ -0,0 +1,19 @@ | |
+Description: Always build armhf for cortex-a8 CPUs, never lower | |
+Author: Adam Conrad <[email protected]> | |
+Forwarded: no | |
+Reviewed-By: Colin Watson <[email protected]> | |
+Last-Update: 2012-04-24 | |
+ | |
+--- clang-3.0.orig/tools/clang/lib/Driver/Tools.cpp | |
++++ clang-3.0/tools/clang/lib/Driver/Tools.cpp | |
+@@ -434,6 +434,10 @@ static const char *getARMTargetCPU(const | |
+ const llvm::Triple &Triple) { | |
+ // FIXME: Warn on inconsistent use of -mcpu and -march. | |
+ | |
++ // always return armv7-a for GNUEABIHF | |
++ if (Triple.getEnvironment() == llvm::Triple::GNUEABIHF) | |
++ return "arm1176jzf-s"; | |
++ | |
+ // If we have -mcpu=, use that. | |
+ if (Arg *A = Args.getLastArg(options::OPT_mcpu_EQ)) | |
+ return A->getValue(Args); | |
diff -pruN orig/debian/patches/series clang-3.0/debian/patches/series | |
--- orig/debian/patches/series 2012-02-25 13:05:54.000000000 +0000 | |
+++ clang-3.0/debian/patches/series 2012-06-01 00:57:22.977746141 +0000 | |
@@ -6,3 +6,5 @@ | |
23-strlcpy_strlcat_warning_removed.diff | |
24-path-multiarch.diff | |
25-amdfam10.diff | |
+26-armhf-linker-name.diff | |
+27-armhf-is-armv6.patch |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment