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