Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/llvm/, sys-devel/llvm/files/
Date: Mon, 28 Mar 2016 21:31:46
Message-Id: 1459200691.3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23.mgorny@gentoo
1 commit: 3c90ddbcb3f0bbee391074c17bc6ca6ef909bd23
2 Author: Michał Górny <mgorny <AT> gentoo <DOT> org>
3 AuthorDate: Mon Mar 28 20:25:17 2016 +0000
4 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org>
5 CommitDate: Mon Mar 28 21:31:31 2016 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3c90ddbc
7
8 sys-devel/llvm: Update llvm-config & restore shared libs in 3.8, #578392
9
10 sys-devel/llvm/files/llvm-3.8-llvm-config.patch | 43 ++++++++++++++--------
11 sys-devel/llvm/files/llvm-3.8-soversion.patch | 28 ++++++++++++++
12 .../{llvm-3.8.0.ebuild => llvm-3.8.0-r1.ebuild} | 6 ++-
13 3 files changed, 60 insertions(+), 17 deletions(-)
14
15 diff --git a/sys-devel/llvm/files/llvm-3.8-llvm-config.patch b/sys-devel/llvm/files/llvm-3.8-llvm-config.patch
16 index acc0601..3eace43 100644
17 --- a/sys-devel/llvm/files/llvm-3.8-llvm-config.patch
18 +++ b/sys-devel/llvm/files/llvm-3.8-llvm-config.patch
19 @@ -1,6 +1,6 @@
20 -From cc0ac62d1c03206bc3a1edba4d60f97921b854f5 Mon Sep 17 00:00:00 2001
21 +From 5ed05738769643b7c652f798fa6c3aa30c7f0b2b Mon Sep 17 00:00:00 2001
22 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o>
23 -Date: Fri, 4 Dec 2015 20:45:33 +0100
24 +Date: Wed, 2 Dec 2015 16:04:56 +0100
25 Subject: [PATCH] llvm-config: Clean up exported values, update for shared
26 linking
27
28 @@ -8,32 +8,34 @@ Gentoo-specific fixup for llvm-config, including:
29 - wiping build-specific CFLAGS, CXXFLAGS,
30 - updating library suffixes for shared libs,
31 - wiping --system-libs for shared linking,
32 -- banning --obj-root and --src-root due to no sources installed.
33 +- banning --obj-root and --src-root due to no sources installed,
34 +- making --build-mode return "Release" rather than "Gentoo".
35
36 Thanks to Steven Newbury for the initial patch.
37
38 Bug: https://bugs.gentoo.org/565358
39 Bug: https://bugs.gentoo.org/501684
40 ---
41 - tools/llvm-config/CMakeLists.txt | 9 +++++++--
42 - tools/llvm-config/llvm-config.cpp | 17 +++++++++++++----
43 - utils/llvm-build/llvmbuild/main.py | 5 ++++-
44 - 3 files changed, 24 insertions(+), 7 deletions(-)
45 + tools/llvm-config/CMakeLists.txt | 11 ++++++++---
46 + tools/llvm-config/llvm-config.cpp | 20 +++++++++++++++-----
47 + utils/llvm-build/llvmbuild/main.py | 4 +++-
48 + 3 files changed, 26 insertions(+), 9 deletions(-)
49
50 diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt
51 -index 83794bb..21fd845 100644
52 +index 83794bb..eba6f45 100644
53 --- a/tools/llvm-config/CMakeLists.txt
54 +++ b/tools/llvm-config/CMakeLists.txt
55 @@ -22,15 +22,20 @@ get_property(COMPILE_FLAGS TARGET llvm-config PROPERTY COMPILE_FLAGS)
56 set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR})
57 set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR})
58 set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
59 +-set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
60 +-set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
61 +# Just use CMAKE_CPP_FLAGS for CFLAGS and CXXFLAGS, otherwise compiler
62 +# specific flags will be set when we don't know what compiler will be used
63 +# with external project utilising llvm-config. C++ Standard is required.
64 +# TODO: figure out if we can remove -std=c++11 and move it to revdeps.
65 - set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
66 --set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}")
67 ++set(LLVM_CFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
68 +set(LLVM_CXXFLAGS "${CMAKE_CPP_FLAGS} -std=c++11 ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}")
69 set(LLVM_BUILD_SYSTEM cmake)
70 set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI})
71 @@ -48,10 +50,20 @@ index 83794bb..21fd845 100644
72 set(LLVM_ENABLE_SHARED ON)
73 else()
74 diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
75 -index 80f6279..b16b9a3 100644
76 +index 80f6279..5c65c57 100644
77 --- a/tools/llvm-config/llvm-config.cpp
78 +++ b/tools/llvm-config/llvm-config.cpp
79 -@@ -497,10 +497,19 @@ int main(int argc, char **argv) {
80 +@@ -484,7 +484,8 @@ int main(int argc, char **argv) {
81 + } else if (Arg == "--host-target") {
82 + OS << Triple::normalize(LLVM_DEFAULT_TARGET_TRIPLE) << '\n';
83 + } else if (Arg == "--build-mode") {
84 +- OS << build_mode << '\n';
85 ++ // force Release since we force non-standard Gentoo build mode
86 ++ OS << "Release" << '\n';
87 + } else if (Arg == "--assertion-mode") {
88 + #if defined(NDEBUG)
89 + OS << "OFF\n";
90 +@@ -497,10 +498,19 @@ int main(int argc, char **argv) {
91 OS << LLVM_HAS_RTTI << '\n';
92 } else if (Arg == "--shared-mode") {
93 PrintSharedMode = true;
94 @@ -76,7 +88,7 @@ index 80f6279..b16b9a3 100644
95 usage();
96 }
97 diff --git a/utils/llvm-build/llvmbuild/main.py b/utils/llvm-build/llvmbuild/main.py
98 -index f2472f6..a29fc83 100644
99 +index f2472f6..c89c77a 100644
100 --- a/utils/llvm-build/llvmbuild/main.py
101 +++ b/utils/llvm-build/llvmbuild/main.py
102 @@ -393,6 +393,8 @@ subdirectories = %s
103 @@ -88,16 +100,15 @@ index f2472f6..a29fc83 100644
104 """)
105 f.write('struct AvailableComponent {\n')
106 f.write(' /// The name of the component.\n')
107 -@@ -413,7 +415,8 @@ subdirectories = %s
108 +@@ -413,7 +415,7 @@ subdirectories = %s
109 if library_name is None:
110 library_name_as_cstr = 'nullptr'
111 else:
112 - library_name_as_cstr = '"lib%s.a"' % library_name
113 + library_name_as_cstr = '"lib%s" LTDL_SHLIB_EXT' % library_name
114 -+
115 if is_installed:
116 is_installed_as_cstr = 'true'
117 else:
118 --
119 -2.6.3
120 +2.7.4
121
122
123 diff --git a/sys-devel/llvm/files/llvm-3.8-soversion.patch b/sys-devel/llvm/files/llvm-3.8-soversion.patch
124 new file mode 100644
125 index 0000000..1a30643
126 --- /dev/null
127 +++ b/sys-devel/llvm/files/llvm-3.8-soversion.patch
128 @@ -0,0 +1,28 @@
129 +From 3da7d5f7f928aa2aa5e7436b27908bb7e7eb3cc1 Mon Sep 17 00:00:00 2001
130 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o>
131 +Date: Mon, 28 Mar 2016 22:21:19 +0200
132 +Subject: [PATCH] cmake: Restore SOVERSIONs on shared libraries
133 +
134 +---
135 + cmake/modules/AddLLVM.cmake | 5 +++++
136 + 1 file changed, 5 insertions(+)
137 +
138 +diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
139 +index a829751..a7e0688 100644
140 +--- a/cmake/modules/AddLLVM.cmake
141 ++++ b/cmake/modules/AddLLVM.cmake
142 +@@ -436,6 +436,11 @@ function(llvm_add_library name)
143 + PREFIX ""
144 + )
145 + endif()
146 ++
147 ++ set_target_properties(${name}
148 ++ PROPERTIES
149 ++ SOVERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}
150 ++ VERSION ${LLVM_VERSION_MAJOR}.${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX})
151 + endif()
152 +
153 + if(ARG_MODULE OR ARG_SHARED)
154 +--
155 +2.7.4
156 +
157
158 diff --git a/sys-devel/llvm/llvm-3.8.0.ebuild b/sys-devel/llvm/llvm-3.8.0-r1.ebuild
159 similarity index 98%
160 rename from sys-devel/llvm/llvm-3.8.0.ebuild
161 rename to sys-devel/llvm/llvm-3.8.0-r1.ebuild
162 index f8e26f5..41f1d79 100644
163 --- a/sys-devel/llvm/llvm-3.8.0.ebuild
164 +++ b/sys-devel/llvm/llvm-3.8.0-r1.ebuild
165 @@ -175,6 +175,10 @@ src_prepare() {
166 # https://bugs.gentoo.org/show_bug.cgi?id=565358
167 epatch "${FILESDIR}"/llvm-3.8-llvm-config.patch
168
169 + # Restore SOVERSIONs for shared libraries
170 + # https://bugs.gentoo.org/show_bug.cgi?id=578392
171 + epatch "${FILESDIR}"/llvm-3.8-soversion.patch
172 +
173 # disable use of SDK on OSX, bug #568758
174 sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die
175
176 @@ -249,7 +253,7 @@ multilib_src_configure() {
177 local mycmakeargs=(
178 -DLLVM_LIBDIR_SUFFIX=${libdir#lib}
179
180 - -DLLVM_LINK_LLVM_DYLIB=ON
181 + -DBUILD_SHARED_LIBS=ON
182 -DLLVM_ENABLE_TIMESTAMPS=OFF
183 -DLLVM_TARGETS_TO_BUILD="${targets}"
184 -DLLVM_BUILD_TESTS=$(usex test)