summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuta Satoh <nigoro.dev@gmail.com>2016-06-18 14:44:10 +0900
committerPatrice Clement <monsieurp@gentoo.org>2016-06-23 15:26:09 +0000
commit12280fd5851883571f9e0f0ec44432d2bd17e187 (patch)
tree581409fba4941e5d1d670f1aab2ce5a24e596103 /sys-devel/llvm
parentapp-admin/grubconfig: fix SRC_URI (diff)
downloadgentoo-12280fd5851883571f9e0f0ec44432d2bd17e187.tar.gz
gentoo-12280fd5851883571f9e0f0ec44432d2bd17e187.tar.bz2
gentoo-12280fd5851883571f9e0f0ec44432d2bd17e187.zip
sys-devel/llvm: Fix build fails on Gentoo/FreeBSD.
Gentoo-Bug: https://bugs.gentoo.org/578064 Closes: https://github.com/gentoo/gentoo/pull/1693 Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
Diffstat (limited to 'sys-devel/llvm')
-rw-r--r--sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch20
-rw-r--r--sys-devel/llvm/llvm-3.8.0-r2.ebuild7
2 files changed, 27 insertions, 0 deletions
diff --git a/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch b/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch
new file mode 100644
index 000000000000..297620bc775a
--- /dev/null
+++ b/sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch
@@ -0,0 +1,20 @@
+https://llvm.org/bugs/show_bug.cgi?id=26651
+https://github.com/llvm-mirror/compiler-rt/commit/6606c7b50cbb4ec7eab4ecbebbbaaa049734bbd3
+
+diff --git a/projects/compiler-rt/lib/tsan/CMakeLists.txt b/projects/compiler-rt/lib/tsan/CMakeLists.txt
+index c185cfa..a151c6c 100644
+--- a/projects/compiler-rt/lib/tsan/CMakeLists.txt
++++ b/projects/compiler-rt/lib/tsan/CMakeLists.txt
+@@ -192,7 +192,11 @@ endif()
+ add_dependencies(compiler-rt tsan)
+
+ # Make sure that non-platform-specific files don't include any system headers.
+-if(COMPILER_RT_HAS_SYSROOT_FLAG)
++# FreeBSD does not install a number of Clang-provided headers for the compiler
++# in the base system due to incompatibilities between FreeBSD's and Clang's
++# versions. As a workaround do not use --sysroot=. on FreeBSD until this is
++# addressed.
++if(COMPILER_RT_HAS_SYSROOT_FLAG AND NOT CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ file(GLOB _tsan_generic_sources rtl/tsan*)
+ file(GLOB _tsan_platform_sources rtl/tsan*posix* rtl/tsan*mac*
+ rtl/tsan*linux*)
diff --git a/sys-devel/llvm/llvm-3.8.0-r2.ebuild b/sys-devel/llvm/llvm-3.8.0-r2.ebuild
index 71a927fd779f..2a1183025543 100644
--- a/sys-devel/llvm/llvm-3.8.0-r2.ebuild
+++ b/sys-devel/llvm/llvm-3.8.0-r2.ebuild
@@ -170,6 +170,9 @@ src_prepare() {
# disable use of SDK on OSX, bug #568758
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
+ # Workaround, can be compiled with gcc on Gentoo/FreeBSD, bug #578064
+ use kernel_FreeBSD && [[ $(tc-getCC) == *gcc* ]] && append-cppflags "-D_GLIBCXX_USE_C99"
+
if use clang; then
# Automatically select active system GCC's libraries, bugs #406163 and #417913
eapply "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
@@ -198,6 +201,10 @@ src_prepare() {
# https://llvm.org/bugs/show_bug.cgi?id=23793
eapply "${FILESDIR}"/cmake/clang-0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch
+ # Fix 'stdarg.h' file not found on Gentoo/FreeBSD, bug #578064
+ # https://llvm.org/bugs/show_bug.cgi?id=26651
+ eapply "${FILESDIR}"/clang-3.8-compiler-rt-fbsd.patch
+
pushd projects/compiler-rt >/dev/null || die
# Fix WX sections, bug #421527