diff options
author | Michał Górny <mgorny@gentoo.org> | 2016-03-28 22:25:17 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2016-03-28 23:31:31 +0200 |
commit | 3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23 (patch) | |
tree | 87f1db5e445e273f4efd4d55baf8b89b5596f259 /sys-devel | |
parent | dev-lisp/uiop: Use common-lisp-3 eclass (diff) | |
download | gentoo-3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23.tar.gz gentoo-3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23.tar.bz2 gentoo-3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23.zip |
sys-devel/llvm: Update llvm-config & restore shared libs in 3.8, #578392
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/llvm/files/llvm-3.8-llvm-config.patch | 43 | ||||
-rw-r--r-- | sys-devel/llvm/files/llvm-3.8-soversion.patch | 28 | ||||
-rw-r--r-- | sys-devel/llvm/llvm-3.8.0-r1.ebuild (renamed from sys-devel/llvm/llvm-3.8.0.ebuild) | 6 |
3 files changed, 60 insertions, 17 deletions
diff --git a/sys-devel/llvm/files/llvm-3.8-llvm-config.patch b/sys-devel/llvm/files/llvm-3.8-llvm-config.patch index acc0601cece2..3eace43f6ded 100644 --- a/sys-devel/llvm/files/llvm-3.8-llvm-config.patch +++ b/sys-devel/llvm/files/llvm-3.8-llvm-config.patch @@ -1,6 +1,6 @@ -From cc0ac62d1c03206bc3a1edba4d60f97921b854f5 Mon Sep 17 00:00:00 2001 +From 5ed05738769643b7c652f798fa6c3aa30c7f0b2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> -Date: Fri, 4 Dec 2015 20:45:33 +0100 +Date: Wed, 2 Dec 2015 16:04:56 +0100 Subject: [PATCH] llvm-config: Clean up exported values, update for shared linking @@ -8,32 +8,34 @@ Gentoo-specific fixup for llvm-config, including: - wiping build-specific CFLAGS, CXXFLAGS, - updating library suffixes for shared libs, - wiping --system-libs for shared linking, -- banning --obj-root and --src-root due to no sources installed. +- banning --obj-root and --src-root due to no sources installed, +- making --build-mode return "Release" rather than "Gentoo". Thanks to Steven Newbury for the initial patch. Bug: https://bugs.gentoo.org/565358 Bug: https://bugs.gentoo.org/501684 --- - tools/llvm-config/CMakeLists.txt | 9 +++++++-- - tools/llvm-config/llvm-config.cpp | 17 +++++++++++++---- - utils/llvm-build/llvmbuild/main.py | 5 ++++- - 3 files changed, 24 insertions(+), 7 deletions(-) + tools/llvm-config/CMakeLists.txt | 11 ++++++++--- + tools/llvm-config/llvm-config.cpp | 20 +++++++++++++++----- + utils/llvm-build/llvmbuild/main.py | 4 +++- + 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt -index 83794bb..21fd845 100644 +index 83794bb..eba6f45 100644 --- a/tools/llvm-config/CMakeLists.txt +++ b/tools/llvm-config/CMakeLists.txt @@ -22,15 +22,20 @@ get_property(COMPILE_FLAGS TARGET llvm-config PROPERTY COMPILE_FLAGS) set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") +-set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") +-set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") +# Just use CMAKE_CPP_FLAGS for CFLAGS and CXXFLAGS, otherwise compiler +# specific flags will be set when we don't know what compiler will be used +# with external project utilising llvm-config. C++ Standard is required. +# TODO: figure out if we can remove -std=c++11 and move it to revdeps. - set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") --set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") ++set(LLVM_CFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") +set(LLVM_CXXFLAGS "${CMAKE_CPP_FLAGS} -std=c++11 ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") set(LLVM_BUILD_SYSTEM cmake) set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) @@ -48,10 +50,20 @@ index 83794bb..21fd845 100644 set(LLVM_ENABLE_SHARED ON) else() diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp -index 80f6279..b16b9a3 100644 +index 80f6279..5c65c57 100644 --- a/tools/llvm-config/llvm-config.cpp +++ b/tools/llvm-config/llvm-config.cpp -@@ -497,10 +497,19 @@ int main(int argc, char **argv) { +@@ -484,7 +484,8 @@ int main(int argc, char **argv) { + } else if (Arg == "--host-target") { + OS << Triple::normalize(LLVM_DEFAULT_TARGET_TRIPLE) << '\n'; + } else if (Arg == "--build-mode") { +- OS << build_mode << '\n'; ++ // force Release since we force non-standard Gentoo build mode ++ OS << "Release" << '\n'; + } else if (Arg == "--assertion-mode") { + #if defined(NDEBUG) + OS << "OFF\n"; +@@ -497,10 +498,19 @@ int main(int argc, char **argv) { OS << LLVM_HAS_RTTI << '\n'; } else if (Arg == "--shared-mode") { PrintSharedMode = true; @@ -76,7 +88,7 @@ index 80f6279..b16b9a3 100644 usage(); } diff --git a/utils/llvm-build/llvmbuild/main.py b/utils/llvm-build/llvmbuild/main.py -index f2472f6..a29fc83 100644 +index f2472f6..c89c77a 100644 --- a/utils/llvm-build/llvmbuild/main.py +++ b/utils/llvm-build/llvmbuild/main.py @@ -393,6 +393,8 @@ subdirectories = %s @@ -88,16 +100,15 @@ index f2472f6..a29fc83 100644 """) f.write('struct AvailableComponent {\n') f.write(' /// The name of the component.\n') -@@ -413,7 +415,8 @@ subdirectories = %s +@@ -413,7 +415,7 @@ subdirectories = %s if library_name is None: library_name_as_cstr = 'nullptr' else: - library_name_as_cstr = '"lib%s.a"' % library_name + library_name_as_cstr = '"lib%s" LTDL_SHLIB_EXT' % library_name -+ if is_installed: is_installed_as_cstr = 'true' else: -- -2.6.3 +2.7.4 diff --git a/sys-devel/llvm/files/llvm-3.8-soversion.patch b/sys-devel/llvm/files/llvm-3.8-soversion.patch new file mode 100644 index 000000000000..1a30643d6754 --- /dev/null +++ b/sys-devel/llvm/files/llvm-3.8-soversion.patch @@ -0,0 +1,28 @@ +From 3da7d5f7f928aa2aa5e7436b27908bb7e7eb3cc1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Mon, 28 Mar 2016 22:21:19 +0200 +Subject: [PATCH] cmake: Restore SOVERSIONs on shared libraries + +--- + cmake/modules/AddLLVM.cmake | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake +index a829751..a7e0688 100644 +--- a/cmake/modules/AddLLVM.cmake ++++ b/cmake/modules/AddLLVM.cmake +@@ -436,6 +436,11 @@ function(llvm_add_library name) + PREFIX "" + ) + endif() ++ ++ set_target_properties(${name} ++ PROPERTIES ++ SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR} ++ VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}) + endif() + + if(ARG_MODULE OR ARG_SHARED) +-- +2.7.4 + diff --git a/sys-devel/llvm/llvm-3.8.0.ebuild b/sys-devel/llvm/llvm-3.8.0-r1.ebuild index f8e26f54407e..41f1d792b92c 100644 --- a/sys-devel/llvm/llvm-3.8.0.ebuild +++ b/sys-devel/llvm/llvm-3.8.0-r1.ebuild @@ -175,6 +175,10 @@ src_prepare() { # https://bugs.gentoo.org/show_bug.cgi?id=565358 epatch "${FILESDIR}"/llvm-3.8-llvm-config.patch + # Restore SOVERSIONs for shared libraries + # https://bugs.gentoo.org/show_bug.cgi?id=578392 + epatch "${FILESDIR}"/llvm-3.8-soversion.patch + # disable use of SDK on OSX, bug #568758 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die @@ -249,7 +253,7 @@ multilib_src_configure() { local mycmakeargs=( -DLLVM_LIBDIR_SUFFIX=${libdir#lib} - -DLLVM_LINK_LLVM_DYLIB=ON + -DBUILD_SHARED_LIBS=ON -DLLVM_ENABLE_TIMESTAMPS=OFF -DLLVM_TARGETS_TO_BUILD="${targets}" -DLLVM_BUILD_TESTS=$(usex test) |