sys-devel/llvm: Fix build fails on Gentoo/FreeBSD.
authorYuta Satoh <nigoro.dev@gmail.com>
Sat, 18 Jun 2016 05:44:10 +0000 (14:44 +0900)
committerPatrice Clement <monsieurp@gentoo.org>
Thu, 23 Jun 2016 15:26:09 +0000 (15:26 +0000)
Gentoo-Bug: https://bugs.gentoo.org/578064
Closes: https://github.com/gentoo/gentoo/pull/1693

Signed-off-by: Patrice Clement <monsieurp@gentoo.org>
sys-devel/llvm/files/clang-3.8-compiler-rt-fbsd.patch [new file with mode: 0644]
sys-devel/llvm/llvm-3.8.0-r2.ebuild

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 (file)
index 0000000..297620b
--- /dev/null
@@ -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*)
index 71a927fd779f4d23b47e74ce0aafa646ba9c8ea5..2a118302554304b70e7904a3528bb706f3aeca03 100644 (file)
@@ -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