From 5a12ed0f73c8773aaa230e8d66ffce7ea329f866 Mon Sep 17 00:00:00 2001 From: Bernard Cafarelli Date: Mon, 24 Aug 2015 17:29:03 +0200 Subject: sys-devel/llvm: fix live ebuild Fixes bugs #553416, #557100 and #557154 --- ...g-runtime-into-usr-lib-without-suffix-3.8.patch | 37 ++++++++++++++++++++++ .../llvm-3.8-allow_custom_cmake_build_types.patch | 14 ++++++++ sys-devel/llvm/llvm-3.7.0_rc2.ebuild | 2 +- sys-devel/llvm/llvm-9999.ebuild | 8 ++++- 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 sys-devel/llvm/files/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch create mode 100644 sys-devel/llvm/files/cmake/llvm-3.8-allow_custom_cmake_build_types.patch 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 index 000000000000..0dd976c64473 --- /dev/null +++ b/sys-devel/llvm/files/cmake/clang-0001-Install-clang-runtime-into-usr-lib-without-suffix-3.8.patch @@ -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 index 000000000000..e42c08a8dc9e --- /dev/null +++ b/sys-devel/llvm/files/cmake/llvm-3.8-allow_custom_cmake_build_types.patch @@ -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. diff --git a/sys-devel/llvm/llvm-3.7.0_rc2.ebuild b/sys-devel/llvm/llvm-3.7.0_rc2.ebuild index b2ed25696c76..3ea912fa72db 100644 --- a/sys-devel/llvm/llvm-3.7.0_rc2.ebuild +++ b/sys-devel/llvm/llvm-3.7.0_rc2.ebuild @@ -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" diff --git a/sys-devel/llvm/llvm-9999.ebuild b/sys-devel/llvm/llvm-9999.ebuild index aa013b67f400..a11342a1077e 100644 --- a/sys-devel/llvm/llvm-9999.ebuild +++ b/sys-devel/llvm/llvm-9999.ebuild @@ -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 -- cgit v1.2.3-65-gdbad