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) |