commit:     5b60e27c215afa30028733992d271e5a298ebe03
Author:     Cato Auestad <cato <AT> cato <DOT> ninja>
AuthorDate: Fri Mar 20 18:40:26 2015 +0000
Commit:     Anthony G. Basile <blueness <AT> gentoo <DOT> org>
CommitDate: Fri Mar 20 18:40:26 2015 +0000
URL:        https://gitweb.gentoo.org/proj/hardened-dev.git/commit/?id=5b60e27c

sys-devel/llvm: fix patches

 .../llvm/files/llvm-3.5-musl-clang-support.patch   | 59 +++++++++++++++++
 .../llvm/files/llvm-3.5-musl-compiler-rt.patch     | 22 +++----
 sys-devel/llvm/files/llvm-3.5-musl-support.patch   | 73 +++-------------------
 sys-devel/llvm/llvm-3.5.0-r99.ebuild               |  3 +-
 4 files changed, 80 insertions(+), 77 deletions(-)

diff --git a/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch 
b/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch
new file mode 100644
index 0000000..a492f12
--- /dev/null
+++ b/sys-devel/llvm/files/llvm-3.5-musl-clang-support.patch
@@ -0,0 +1,59 @@
+adapted from llvm-alpine-linux.patch from Alpine
+
+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
+--- tools/clang/lib/Driver/Tools.cpp   2014-08-07 07:51:51.000000000 -0300
++++ 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::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)
++    switch (ToolChain.getTriple().getEnvironment()) {
++    case llvm::Triple::Musl:
++    case llvm::Triple::MuslEABI:
++      return "/lib/ld-musl-arm.so.3";
++    case llvm::Triple::MuslEABIHF:
++      return "/lib/ld-musl-armhf.so.3";
++    case llvm::Triple::GNUEABIHF:
+       return "/lib/ld-linux-armhf.so.3";
+-    else
++    default:
+       return "/lib/ld-linux.so.3";
++    }
+   } 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 {
++    switch (ToolChain.getTriple().getEnvironment()) {
++    case llvm::Triple::Musl:
++      return "/lib/ld-musl-x86_64.so.1";
++    default:
++      return "/lib64/ld-linux-x86-64.so.2";
++    }
++  }
+ }
+
+ static void AddRunTimeLibs(const ToolChain &TC, const Driver &D,

diff --git a/sys-devel/llvm/files/llvm-3.5-musl-compiler-rt.patch 
b/sys-devel/llvm/files/llvm-3.5-musl-compiler-rt.patch
index b1646b8..b1f48d2 100644
--- a/sys-devel/llvm/files/llvm-3.5-musl-compiler-rt.patch
+++ b/sys-devel/llvm/files/llvm-3.5-musl-compiler-rt.patch
@@ -1,6 +1,6 @@
 diff -ur a/llvm-3.5.0.src/projects/compiler-rt/lib/Makefile.mk 
b/llvm-3.5.0.src/projects/compiler-rt/lib/Makefile.mk
---- a/llvm-3.5.0.src/projects/compiler-rt/lib/Makefile.mk      2014-02-14 
10:20:33.000000000 -0100
-+++ b/llvm-3.5.0.src/projects/compiler-rt/lib/Makefile.mk      2015-01-07 
13:56:00.362944069 -0100
+--- a/projects/compiler-rt/lib/Makefile.mk     2014-02-14 10:20:33.000000000 
-0100
++++ b/projects/compiler-rt/lib/Makefile.mk     2015-01-07 13:56:00.362944069 
-0100
 @@ -10,13 +10,13 @@
  SubDirs :=
  
@@ -23,12 +23,12 @@ diff -ur 
a/llvm-3.5.0.src/projects/compiler-rt/lib/Makefile.mk b/llvm-3.5.0.src/
 +#SubDirs += tsan
 +#SubDirs += ubsan
 diff -ur 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.cc 
b/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.cc
---- 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.cc    
   2014-02-24 09:37:41.000000000 -0100
-+++ 
b/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.cc    
   2015-01-07 13:56:56.609240893 -0100
+--- a/projects/compiler-rt/lib/interception/interception_linux.cc      
2014-02-24 09:37:41.000000000 -0100
++++ b/projects/compiler-rt/lib/interception/interception_linux.cc      
2015-01-07 13:56:56.609240893 -0100
 @@ -24,12 +24,6 @@
    return real == wrapper;
  }
- 
+
 -#if !defined(__ANDROID__)  // android does not have dlvsym
 -void *GetFuncAddrVer(const char *func_name, const char *ver) {
 -  return dlvsym(RTLD_NEXT, func_name, ver);
@@ -36,15 +36,15 @@ diff -ur 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_lin
 -#endif  // !defined(__ANDROID__)
 -
  }  // namespace __interception
- 
- 
+
+
 diff -ur 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.h 
b/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.h
---- 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.h     
   2014-02-24 09:37:41.000000000 -0100
-+++ 
b/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_linux.h     
   2015-01-07 13:56:41.617428317 -0100
+--- a/projects/compiler-rt/lib/interception/interception_linux.h       
2014-02-24 09:37:41.000000000 -0100
++++ b/projects/compiler-rt/lib/interception/interception_linux.h       
2015-01-07 13:56:41.617428317 -0100
 @@ -34,14 +34,8 @@
        (::__interception::uptr) & (func),                                   \
        (::__interception::uptr) & WRAP(func))
- 
+
 -#if !defined(__ANDROID__)  // android does not have dlvsym
 -# define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
 -     ::__interception::real_##func = (func##_f)(unsigned long) \
@@ -53,6 +53,6 @@ diff -ur 
a/llvm-3.5.0.src/projects/compiler-rt/lib/interception/interception_lin
  # define INTERCEPT_FUNCTION_VER_LINUX_OR_FREEBSD(func, symver) \
       INTERCEPT_FUNCTION_LINUX_OR_FREEBSD(func)
 -#endif  // !defined(__ANDROID__)
- 
+
  #endif  // INTERCEPTION_LINUX_H
  #endif  // __linux__ || __FreeBSD__

diff --git a/sys-devel/llvm/files/llvm-3.5-musl-support.patch 
b/sys-devel/llvm/files/llvm-3.5-musl-support.patch
index be92809..4abb854 100644
--- a/sys-devel/llvm/files/llvm-3.5-musl-support.patch
+++ b/sys-devel/llvm/files/llvm-3.5-musl-support.patch
@@ -1,8 +1,8 @@
 adapted from llvm-alpine-linux.patch from Alpine
 
 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
+--- include/llvm/ADT/Triple.h  2014-07-18 17:28:19.000000000 -0300
++++ include/llvm/ADT/Triple.h  2014-11-12 14:44:41.738448045 -0200
 @@ -149,6 +149,10 @@
      EABIHF,
      Android,
@@ -16,8 +16,8 @@ diff -ru llvm-3.5.0.src.orig/include/llvm/ADT/Triple.h 
llvm-3.5.0.src/include/ll
      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
+--- lib/Support/Triple.cpp     2014-07-18 17:28:19.000000000 -0300
++++ lib/Support/Triple.cpp     2014-11-12 14:47:06.565122146 -0200
 @@ -168,6 +168,9 @@
    case CODE16: return "code16";
    case EABI: return "eabi";
@@ -40,8 +40,8 @@ diff -ru llvm-3.5.0.src.orig/lib/Support/Triple.cpp 
llvm-3.5.0.src/lib/Support/T
      .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
+--- lib/Target/ARM/ARMSubtarget.cpp    2014-07-16 23:13:31.000000000 -0300
++++ lib/Target/ARM/ARMSubtarget.cpp    2014-11-12 14:50:40.025133104 -0200
 @@ -273,6 +273,8 @@
      case Triple::EABIHF:
      case Triple::GNUEABI:
@@ -52,8 +52,8 @@ diff -ru llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.cpp 
llvm-3.5.0.src/lib/
        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
+--- lib/Target/ARM/ARMSubtarget.h      2014-07-16 23:13:31.000000000 -0300
++++ 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 ||
@@ -65,60 +65,3 @@ diff -ru llvm-3.5.0.src.orig/lib/Target/ARM/ARMSubtarget.h 
llvm-3.5.0.src/lib/Ta
              TargetTriple.getEnvironment() == Triple::Android) &&
             !isTargetDarwin() && !isTargetWindows();
    }
-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::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)
-+    switch (ToolChain.getTriple().getEnvironment()) {
-+    case llvm::Triple::Musl:
-+    case llvm::Triple::MuslEABI:
-+      return "/lib/ld-musl-arm.so.3";
-+    case llvm::Triple::MuslEABIHF:
-+      return "/lib/ld-musl-armhf.so.3";
-+    case llvm::Triple::GNUEABIHF:
-       return "/lib/ld-linux-armhf.so.3";
--    else
-+    default:
-       return "/lib/ld-linux.so.3";
-+    }
-   } 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 {
-+    switch (ToolChain.getTriple().getEnvironment()) {
-+    case llvm::Triple::Musl:
-+      return "/lib/ld-musl-x86_64.so.1";
-+    default:
-+      return "/lib64/ld-linux-x86-64.so.2";
-+    }
-+  }
- }
- 
- static void AddRunTimeLibs(const ToolChain &TC, const Driver &D,

diff --git a/sys-devel/llvm/llvm-3.5.0-r99.ebuild 
b/sys-devel/llvm/llvm-3.5.0-r99.ebuild
index 9db3f59..22c7f6b 100644
--- a/sys-devel/llvm/llvm-3.5.0-r99.ebuild
+++ b/sys-devel/llvm/llvm-3.5.0-r99.ebuild
@@ -149,12 +149,13 @@ src_prepare() {
 
        epatch "${FILESDIR}"/${PN}-3.5-musl-fixes.patch
        epatch "${FILESDIR}"/${PN}-3.5-musl-support.patch
-       epatch "${FILESDIR}"/${PN}-3.5-musl-compiler-rt.patch
 
        epatch "${FILESDIR}"/${P}-fix_LLVMExports_cmake.patch
 
        if use clang; then
                # Automatically select active system GCC's libraries, bugs 
#406163 and #417913
+               epatch "${FILESDIR}"/${PN}-3.5-musl-compiler-rt.patch
+               epatch "${FILESDIR}"/${PN}-3.5-musl-clang-support.patch
                epatch 
"${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
 
                epatch "${FILESDIR}"/clang-3.5-gentoo-install.patch

Reply via email to