sys-devel/llvm: fix live ebuild
authorBernard Cafarelli <voyageur@gentoo.org>
Mon, 24 Aug 2015 15:29:03 +0000 (17:29 +0200)
committerBernard Cafarelli <voyageur@gentoo.org>
Mon, 24 Aug 2015 15:30:29 +0000 (17:30 +0200)
Fixes bugs #553416, #557100 and #557154

sys-devel/llvm/files/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch [new file with mode: 0644]
sys-devel/llvm/files/cmake/llvm-3.8-allow_custom_cmake_build_types.patch [new file with mode: 0644]
sys-devel/llvm/llvm-3.7.0_rc2.ebuild
sys-devel/llvm/llvm-9999.ebuild

diff --git a/sys-devel/llvm/files/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch b/sys-devel/llvm/files/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch
new file mode 100644 (file)
index 0000000..0dd976c
--- /dev/null
@@ -0,0 +1,37 @@
+diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
+index fa7780f..e3a6c8f 100644
+--- a/tools/clang/lib/Driver/Driver.cpp
++++ b/tools/clang/lib/Driver/Driver.cpp
+@@ -66,8 +66,7 @@ Driver::Driver(StringRef ClangExecutable, StringRef DefaultTargetTriple,
+   if (ClangResourceDir != "") {
+     llvm::sys::path::append(P, ClangResourceDir);
+   } else {
+-    StringRef ClangLibdirSuffix(CLANG_LIBDIR_SUFFIX);
+-    llvm::sys::path::append(P, "..", Twine("lib") + ClangLibdirSuffix, "clang",
++    llvm::sys::path::append(P, "..", "lib", "clang",
+                             CLANG_VERSION_STRING);
+   }
+   ResourceDir = P.str();
+diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp
+index f078b37..0c514fc 100644
+--- a/tools/clang/lib/Frontend/CompilerInvocation.cpp
++++ b/tools/clang/lib/Frontend/CompilerInvocation.cpp
+@@ -1097,7 +1097,7 @@ std::string CompilerInvocation::GetResourcesPath(const char *Argv0,
+   if (ClangResourceDir != "")
+     llvm::sys::path::append(P, ClangResourceDir);
+   else
+-    llvm::sys::path::append(P, "..", Twine("lib") + CLANG_LIBDIR_SUFFIX,
++    llvm::sys::path::append(P, "..", "lib", "clang",
+                             "clang", CLANG_VERSION_STRING);
+   return P.str();
+diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
+index 7de5fbe..49f439b 100644
+--- a/tools/clang/lib/Headers/CMakeLists.txt
++++ b/tools/clang/lib/Headers/CMakeLists.txt
+@@ -98,4 +98,4 @@ set_target_properties(clang-headers PROPERTIES FOLDER "Misc")
+ install(
+   FILES ${files} ${CMAKE_CURRENT_BINARY_DIR}/arm_neon.h
+   PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+-  DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include)
++  DESTINATION lib/clang/${CLANG_VERSION}/include)
diff --git a/sys-devel/llvm/files/cmake/llvm-3.8-allow_custom_cmake_build_types.patch b/sys-devel/llvm/files/cmake/llvm-3.8-allow_custom_cmake_build_types.patch
new file mode 100644 (file)
index 0000000..e42c08a
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/CMakeLists.txt   2015-08-12 20:04:55.397881480 +0200
++++ b/CMakeLists.txt   2015-08-12 20:05:06.625741113 +0200
+@@ -152,11 +152,6 @@
+ string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE)
+-if (CMAKE_BUILD_TYPE AND
+-    NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$")
+-  message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
+-endif()
+-
+ set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" )
+ # They are used as destination of target generators.
index b2ed25696c7662a27f034e46918e9d839635d1ce..3ea912fa72db97a135ce853008789693b6fb8a20 100644 (file)
@@ -21,7 +21,7 @@ SRC_URI="http://llvm.org/pre-releases/${PV/_rc*}/${PV/3.7.0_}/${P/_}.src.tar.xz
 
 LICENSE="UoI-NCSA"
 SLOT="0/${PV}"
-KEYWORDS=""
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x64-freebsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
 IUSE="clang debug +doc gold libedit +libffi lldb multitarget ncurses ocaml
        python +static-analyzer test xml video_cards_radeon kernel_Darwin"
 
index aa013b67f400a40664a6316be4c3e4602fdf19a9..a11342a1077e34746783099f8491264be9f9cc1d 100644 (file)
@@ -168,6 +168,9 @@ src_prepare() {
        # https://llvm.org/bugs/show_bug.cgi?id=18341
        epatch "${FILESDIR}"/cmake/0004-cmake-Do-not-install-libgtest.patch
 
+       # Allow custom cmake build types (like 'Gentoo')
+       epatch "${FILESDIR}"/cmake/${PN}-3.8-allow_custom_cmake_build_types.patch
+
        if use clang; then
                # Automatically select active system GCC's libraries, bugs #406163 and #417913
                epatch "${FILESDIR}"/clang-3.5-gentoo-runtime-gcc-detection-v3.patch
@@ -179,13 +182,16 @@ src_prepare() {
 
                # Install clang runtime into /usr/lib/clang
                # https://llvm.org/bugs/show_bug.cgi?id=23792
-               epatch "${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix.patch
+               epatch "${FILESDIR}"/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch
                epatch "${FILESDIR}"/cmake/compiler-rt-0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch
 
                # Make it possible to override CLANG_LIBDIR_SUFFIX
                # (that is used only to find LLVMgold.so)
                # https://llvm.org/bugs/show_bug.cgi?id=23793
                epatch "${FILESDIR}"/cmake/clang-0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch
+
+               # Workaround bug #553416 until upstream fixes it
+               epatch "${FILESDIR}"/clang-3.7-strip_doc_refs.patch
        fi
 
        if use lldb; then