1 |
commit: 75f8d3f4c6e73272bb6d4be4273130a1955d187e |
2 |
Author: Michał Górny <mgorny <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Jun 3 09:37:16 2017 +0000 |
4 |
Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Jun 3 10:27:54 2017 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75f8d3f4 |
7 |
|
8 |
sys-devel/llvm: Move 3.9.1 patchset to tarball |
9 |
|
10 |
sys-devel/llvm/Manifest | 1 + |
11 |
...ll-OCaml-modules-into-correct-package-loc.patch | 71 --- |
12 |
...e-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch | 28 - |
13 |
...rt-overriding-Sphinx-HTML-doc-install-dir.patch | 37 -- |
14 |
...eparate-doctrees-to-prevent-races-between.patch | 35 - |
15 |
...ake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch | 28 - |
16 |
...roduce-ldconfig-compatible-SOVERSIONs-on-.patch | 62 -- |
17 |
...PU-Fix-an-interaction-between-WQM-and-pol.patch | 120 ---- |
18 |
...clang-runtime-into-usr-lib-without-suffix.patch | 35 - |
19 |
...make-Make-CLANG_LIBDIR_SUFFIX-overridable.patch | 28 - |
20 |
.../3.9.1/clang/darwin_prefix-include-paths.patch | 18 - |
21 |
.../llvm/files/3.9.1/clang/default-libs.patch | 703 --------------------- |
22 |
sys-devel/llvm/files/3.9.1/clang/gcc-config.patch | 422 ------------- |
23 |
...ll-compiler-rt-into-usr-lib-without-suffi.patch | 25 - |
24 |
sys-devel/llvm/files/3.9.1/lldb/six.patch | 13 - |
25 |
sys-devel/llvm/files/3.9.1/llvm-config-r1.patch | 73 --- |
26 |
sys-devel/llvm/llvm-3.9.1-r1.ebuild | 37 +- |
27 |
17 files changed, 20 insertions(+), 1716 deletions(-) |
28 |
|
29 |
diff --git a/sys-devel/llvm/Manifest b/sys-devel/llvm/Manifest |
30 |
index 88cc2b1dd23..f7b800f41b6 100644 |
31 |
--- a/sys-devel/llvm/Manifest |
32 |
+++ b/sys-devel/llvm/Manifest |
33 |
@@ -32,6 +32,7 @@ DIST llvm-3.8.0-manpages.tar.bz2 37889 SHA256 4dda7f69f9412e0fb50d32631df34d6ea7 |
34 |
DIST llvm-3.8.1-patchset.tar.xz 24260 SHA256 4a1677b5aff3a4ca8ccdbcc45e286e44d23867cbaa48a39cffc0fc2a8765ed6c SHA512 1e4ec68c56cc72a89afb573ad0c3cada10be7ec02e0af033a6c5cf8ce46ed7bf40389543c2f1b11e7080dba49962c57b4ea9f9bc971c4647eb3fd945c0cf0529 WHIRLPOOL 38c16b23f995818a6ca292e89d28f85ae6d19327bc0efe72270611077a7b76bca99b2e1f11b8653550bddee4123f2611621b86c4b81cdb8f96edc1cd4c5cfc4f |
35 |
DIST llvm-3.8.1.src.tar.xz 16551472 SHA256 6e82ce4adb54ff3afc18053d6981b6aed1406751b8742582ed50f04b5ab475f9 SHA512 99bbb2cc5f337fd5edf1621f8028c8cb74011aa4af2531018dc05409b27f7b8d0c2f76a00115f677f7c013029d5d9f55d085a5b40433409aac4e9161d53bd366 WHIRLPOOL a99cef164a0e05e5237b840bee776d48fe0bde460cb4536f03a5e4eb0cc630deeb96f76bdd42f912a4b2dab08133bd9137ea16be1b9582d375f0f5841dd40234 |
36 |
DIST llvm-3.9.0_rc3-manpages.tar.bz2 80007 SHA256 991f5238d23c0aee2fd303d1adecd6045c42ed066f42f0d58f62c3a25c197140 SHA512 f96c340021de3f096ec3ad7d51a6af2c7a84974122d1df15729a39d4f9d65452f063a85ab38adb064288dc14220d9cc679b31ee19b48424d3d7cde621ff37597 WHIRLPOOL d3f24a2faaa5aa909519373532262c342acf517048ac543f303b6ddb539f5ece876a338c8efc445f4ada6f723a4e65e35bd5f2f9b4f52ef96ef832000259ab20 |
37 |
+DIST llvm-3.9.1-patchset.tar.xz 16404 SHA256 a4b3e5887b53af47984ea39ff8640f11e8a9accbafd1be20fb9cf25f2980b16c SHA512 dcae89ba910b5195bb455924242912f526b6994f0f236571b6364fd594bf9ca03cc74e116a44ae4372e34ce63b21f1351125157e7af7a957aee115f400b54089 WHIRLPOOL a9ec4315e8bb9593e6734e22a0d81fbe0398adedcfe7f6b81de852c1a1092593e07624a5ce7b67bca8be8b34c7453fda9f7eb33be41d11f51458800248a15649 |
38 |
DIST llvm-3.9.1.src.tar.xz 18130436 SHA256 1fd90354b9cf19232e8f168faf2220e79be555df3aa743242700879e8fd329ee SHA512 50cbe8ee911080f586e77861c442348701bd02e2de0c090c54c34f82ac275ecfcd712af0f41e387c33b4a6057778a4258a27554292fe68ab4af3fd9dd6d90683 WHIRLPOOL 1cd1a25befcb178bec4a4aace4367167f3838d32edbe9db9de8c6e558c01c1fcf123f6d6f80b7ec9ff32b3d6dcf2de2f4eb4201d417c3d17a5c8a69934832903 |
39 |
DIST llvm-4.0.0.src.tar.xz 21016340 SHA256 8d10511df96e73b8ff9e7abbfb4d4d432edbdbe965f1f4f07afaf370b8a533be SHA512 cf681f0626ef6d568d951cdc3e143471a1d7715a0ba11e52aa273cf5d8d421e1357ef2645cc85879eaefcd577e99e74d07b01566825b3d0461171ef2cbfc7704 WHIRLPOOL 9783e8f47306c1deb2e114d4b46a7db9b0260b4965076345c88765413c5fc8e73fab5f88ae4903adbdea31406022948b16d32ae47d98f5def074509d5d794579 |
40 |
DIST llvm-manpages-4.0.0.tar.bz2 84861 SHA256 4676b3a18e95ddba19e868bfac0753154be2b57bc0d557f90270e4d2b0913d37 SHA512 7a04ffb607203aca099c816fe6e143779062610935f501786bd64bad6001741fb7a55adebe4e52e0611aa70fa04b22e1a7cab7b3da9dc2ed996fd0baf1ae8916 WHIRLPOOL e2ce15c26008995d71b830d74c5e6ca7dd862ed8208168facc0be6e7f855e5f59b143057ec2bbbaa70ed54dc77ad31279239886d25fe67c0853a9dee7baff31b |
41 |
|
42 |
diff --git a/sys-devel/llvm/files/3.9.1/0001-cmake-Install-OCaml-modules-into-correct-package-loc.patch b/sys-devel/llvm/files/3.9.1/0001-cmake-Install-OCaml-modules-into-correct-package-loc.patch |
43 |
deleted file mode 100644 |
44 |
index 367a8a7794f..00000000000 |
45 |
--- a/sys-devel/llvm/files/3.9.1/0001-cmake-Install-OCaml-modules-into-correct-package-loc.patch |
46 |
+++ /dev/null |
47 |
@@ -1,71 +0,0 @@ |
48 |
-From 2907883b3c504a08b98cf735ceaa8e438d20f37e Mon Sep 17 00:00:00 2001 |
49 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
50 |
-Date: Sun, 21 Aug 2016 22:46:48 +0200 |
51 |
-Subject: [PATCH 01/10] cmake: Install OCaml modules into correct package |
52 |
- location |
53 |
- |
54 |
-Ensure that correct libdir is used for OCaml modules, and install them |
55 |
-into dedicated llvm subdirectory rather than the top directory which is |
56 |
-supposedly reserved for the standard library. |
57 |
- |
58 |
-Author: Mark Wright <gienah@g.o> |
59 |
-Bug: https://bugs.gentoo.org/559134 |
60 |
-Bug: https://bugs.gentoo.org/559624 |
61 |
---- |
62 |
- bindings/ocaml/backends/CMakeLists.txt | 2 +- |
63 |
- bindings/ocaml/llvm/CMakeLists.txt | 2 +- |
64 |
- cmake/modules/AddOCaml.cmake | 6 +++--- |
65 |
- 3 files changed, 5 insertions(+), 5 deletions(-) |
66 |
- |
67 |
-diff --git a/bindings/ocaml/backends/CMakeLists.txt b/bindings/ocaml/backends/CMakeLists.txt |
68 |
-index a980638..9e5dc50 100644 |
69 |
---- a/bindings/ocaml/backends/CMakeLists.txt |
70 |
-+++ b/bindings/ocaml/backends/CMakeLists.txt |
71 |
-@@ -23,5 +23,5 @@ foreach(TARGET ${LLVM_TARGETS_TO_BUILD}) |
72 |
- "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}") |
73 |
- |
74 |
- install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm_${TARGET}" |
75 |
-- DESTINATION lib/ocaml) |
76 |
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml/llvm) |
77 |
- endforeach() |
78 |
-diff --git a/bindings/ocaml/llvm/CMakeLists.txt b/bindings/ocaml/llvm/CMakeLists.txt |
79 |
-index 4956fa4..c612f73 100644 |
80 |
---- a/bindings/ocaml/llvm/CMakeLists.txt |
81 |
-+++ b/bindings/ocaml/llvm/CMakeLists.txt |
82 |
-@@ -8,4 +8,4 @@ configure_file( |
83 |
- "${LLVM_LIBRARY_DIR}/ocaml/META.llvm") |
84 |
- |
85 |
- install(FILES "${LLVM_LIBRARY_DIR}/ocaml/META.llvm" |
86 |
-- DESTINATION lib/ocaml) |
87 |
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml/llvm) |
88 |
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake |
89 |
-index e3dd1d8..a16238e 100644 |
90 |
---- a/cmake/modules/AddOCaml.cmake |
91 |
-+++ b/cmake/modules/AddOCaml.cmake |
92 |
-@@ -137,7 +137,7 @@ function(add_ocaml_library name) |
93 |
- if( APPLE ) |
94 |
- set(ocaml_rpath "@executable_path/../../lib") |
95 |
- elseif( UNIX ) |
96 |
-- set(ocaml_rpath "\\$ORIGIN/../../lib") |
97 |
-+ set(ocaml_rpath "\\$ORIGIN/../../${CMAKE_INSTALL_LIBDIR}") |
98 |
- endif() |
99 |
- list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}") |
100 |
- |
101 |
-@@ -189,12 +189,12 @@ function(add_ocaml_library name) |
102 |
- endforeach() |
103 |
- |
104 |
- install(FILES ${install_files} |
105 |
-- DESTINATION lib/ocaml) |
106 |
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml/llvm) |
107 |
- install(FILES ${install_shlibs} |
108 |
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE |
109 |
- GROUP_READ GROUP_EXECUTE |
110 |
- WORLD_READ WORLD_EXECUTE |
111 |
-- DESTINATION lib/ocaml) |
112 |
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/ocaml/llvm) |
113 |
- |
114 |
- foreach( install_file ${install_files} ${install_shlibs} ) |
115 |
- get_filename_component(filename "${install_file}" NAME) |
116 |
--- |
117 |
-2.9.3 |
118 |
- |
119 |
|
120 |
diff --git a/sys-devel/llvm/files/3.9.1/0002-cmake-Make-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch b/sys-devel/llvm/files/3.9.1/0002-cmake-Make-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch |
121 |
deleted file mode 100644 |
122 |
index b90527a0e44..00000000000 |
123 |
--- a/sys-devel/llvm/files/3.9.1/0002-cmake-Make-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch |
124 |
+++ /dev/null |
125 |
@@ -1,28 +0,0 @@ |
126 |
-From 726806d9b4932287d67f9b6b112099648ea008b4 Mon Sep 17 00:00:00 2001 |
127 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
128 |
-Date: Sun, 21 Aug 2016 23:01:47 +0200 |
129 |
-Subject: [PATCH 02/10] cmake: Make OCaml docs dependent on LLVM_BUILD_DOCS |
130 |
- |
131 |
-Author: Bernard Cafarelli <voyageur@g.o> |
132 |
-Bug: https://bugs.gentoo.org/562008 |
133 |
-Patch: https://reviews.llvm.org/D23763 |
134 |
---- |
135 |
- docs/CMakeLists.txt | 2 +- |
136 |
- 1 file changed, 1 insertion(+), 1 deletion(-) |
137 |
- |
138 |
-diff --git a/docs/CMakeLists.txt b/docs/CMakeLists.txt |
139 |
-index eaa1750..f2cd7e9 100644 |
140 |
---- a/docs/CMakeLists.txt |
141 |
-+++ b/docs/CMakeLists.txt |
142 |
-@@ -115,7 +115,7 @@ if (LLVM_ENABLE_SPHINX) |
143 |
- endif() |
144 |
- |
145 |
- list(FIND LLVM_BINDINGS_LIST ocaml uses_ocaml) |
146 |
--if( NOT uses_ocaml LESS 0 ) |
147 |
-+if( NOT uses_ocaml LESS 0 AND LLVM_BUILD_DOCS ) |
148 |
- set(doc_targets |
149 |
- ocaml_llvm |
150 |
- ocaml_llvm_all_backends |
151 |
--- |
152 |
-2.9.3 |
153 |
- |
154 |
|
155 |
diff --git a/sys-devel/llvm/files/3.9.1/0003-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch b/sys-devel/llvm/files/3.9.1/0003-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch |
156 |
deleted file mode 100644 |
157 |
index 76adf52fb94..00000000000 |
158 |
--- a/sys-devel/llvm/files/3.9.1/0003-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch |
159 |
+++ /dev/null |
160 |
@@ -1,37 +0,0 @@ |
161 |
-From 1251ac2021b768d3a56b4dc03212ea2fd12a34dd Mon Sep 17 00:00:00 2001 |
162 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
163 |
-Date: Mon, 8 Jun 2015 06:43:00 +0200 |
164 |
-Subject: [PATCH 03/10] cmake: Support overriding Sphinx HTML doc install |
165 |
- directory |
166 |
- |
167 |
-Provide ${PROJECT}_INSTALL_HTML variables (e.g. LLVM_INSTALL_HTML) to |
168 |
-override Sphinx HTML doc install directory. |
169 |
- |
170 |
-Bug: https://llvm.org/bugs/show_bug.cgi?id=23780 |
171 |
-Patch: https://reviews.llvm.org/D23757 |
172 |
---- |
173 |
- cmake/modules/AddSphinxTarget.cmake | 8 ++++++-- |
174 |
- 1 file changed, 6 insertions(+), 2 deletions(-) |
175 |
- |
176 |
-diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake |
177 |
-index 045dc23..fac143f 100644 |
178 |
---- a/cmake/modules/AddSphinxTarget.cmake |
179 |
-+++ b/cmake/modules/AddSphinxTarget.cmake |
180 |
-@@ -53,8 +53,12 @@ function (add_sphinx_target builder project) |
181 |
- DESTINATION share/man/man1) |
182 |
- |
183 |
- elseif (builder STREQUAL html) |
184 |
-- install(DIRECTORY "${SPHINX_BUILD_DIR}" |
185 |
-- DESTINATION "share/doc/${project}") |
186 |
-+ string(TOUPPER "${project}" project_upper) |
187 |
-+ set(${project_upper}_INSTALL_HTML "share/doc/${project}/html" |
188 |
-+ CACHE STRING "HTML documentation install directory for ${project}") |
189 |
-+ |
190 |
-+ install(DIRECTORY "${SPHINX_BUILD_DIR}/." |
191 |
-+ DESTINATION "${${project_upper}_INSTALL_HTML}") |
192 |
- else() |
193 |
- message(WARNING Installation of ${builder} not supported) |
194 |
- endif() |
195 |
--- |
196 |
-2.9.3 |
197 |
- |
198 |
|
199 |
diff --git a/sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch b/sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch |
200 |
deleted file mode 100644 |
201 |
index 1e01e640b3d..00000000000 |
202 |
--- a/sys-devel/llvm/files/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch |
203 |
+++ /dev/null |
204 |
@@ -1,35 +0,0 @@ |
205 |
-From 40960f63616f62c8ac52eeeddf68bdb441b8be3e Mon Sep 17 00:00:00 2001 |
206 |
-From: Michal Gorny <mgorny@g.o> |
207 |
-Date: Tue, 4 Oct 2016 06:09:14 +0000 |
208 |
-Subject: [PATCH] [cmake] Use separate doctrees to prevent races between Sphinx |
209 |
- instances |
210 |
- |
211 |
-Use separate doctrees between different Sphinx builders in order to |
212 |
-prevent race condition issues due to multiple Sphinx instances accessing |
213 |
-the same doctree cache in parallel. |
214 |
- |
215 |
-Bug: https://llvm.org/bugs/show_bug.cgi?id=23781 |
216 |
- |
217 |
-Differential Revision: https://reviews.llvm.org/D23755 |
218 |
- |
219 |
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283188 91177308-0d34-0410-b5e6-96231b3b80d8 |
220 |
---- |
221 |
- cmake/modules/AddSphinxTarget.cmake | 2 +- |
222 |
- 1 file changed, 1 insertion(+), 1 deletion(-) |
223 |
- |
224 |
-diff --git a/cmake/modules/AddSphinxTarget.cmake b/cmake/modules/AddSphinxTarget.cmake |
225 |
-index a968555aa06..ca9f4c38ffd 100644 |
226 |
---- a/cmake/modules/AddSphinxTarget.cmake |
227 |
-+++ b/cmake/modules/AddSphinxTarget.cmake |
228 |
-@@ -6,7 +6,7 @@ |
229 |
- # ``project`` should be the project name |
230 |
- function (add_sphinx_target builder project) |
231 |
- set(SPHINX_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${builder}") |
232 |
-- set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees") |
233 |
-+ set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees-${builder}") |
234 |
- set(SPHINX_TARGET_NAME docs-${project}-${builder}) |
235 |
- |
236 |
- if (SPHINX_WARNINGS_AS_ERRORS) |
237 |
--- |
238 |
-2.11.0 |
239 |
- |
240 |
|
241 |
diff --git a/sys-devel/llvm/files/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch b/sys-devel/llvm/files/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch |
242 |
deleted file mode 100644 |
243 |
index 8a2c091edfb..00000000000 |
244 |
--- a/sys-devel/llvm/files/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch |
245 |
+++ /dev/null |
246 |
@@ -1,28 +0,0 @@ |
247 |
-From a2ecd4815d285281cb816e06b25dc0dc2a933073 Mon Sep 17 00:00:00 2001 |
248 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
249 |
-Date: Sun, 21 Aug 2016 23:13:45 +0200 |
250 |
-Subject: [PATCH 06/10] cmake: Remove the CMAKE_BUILD_TYPE assertion |
251 |
- |
252 |
---- |
253 |
- CMakeLists.txt | 5 ----- |
254 |
- 1 file changed, 5 deletions(-) |
255 |
- |
256 |
-diff --git a/CMakeLists.txt b/CMakeLists.txt |
257 |
-index 894bc8c..453fcb8 100644 |
258 |
---- a/CMakeLists.txt |
259 |
-+++ b/CMakeLists.txt |
260 |
-@@ -232,11 +232,6 @@ endif() |
261 |
- |
262 |
- string(TOUPPER "${CMAKE_BUILD_TYPE}" uppercase_CMAKE_BUILD_TYPE) |
263 |
- |
264 |
--if (CMAKE_BUILD_TYPE AND |
265 |
-- NOT uppercase_CMAKE_BUILD_TYPE MATCHES "^(DEBUG|RELEASE|RELWITHDEBINFO|MINSIZEREL)$") |
266 |
-- message(FATAL_ERROR "Invalid value for CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") |
267 |
--endif() |
268 |
-- |
269 |
- set(LLVM_LIBDIR_SUFFIX "" CACHE STRING "Define suffix of library directory name (32/64)" ) |
270 |
- |
271 |
- set(LLVM_TOOLS_INSTALL_DIR "bin" CACHE STRING "Path for binary subdirectory (defaults to 'bin')") |
272 |
--- |
273 |
-2.9.3 |
274 |
- |
275 |
|
276 |
diff --git a/sys-devel/llvm/files/3.9.1/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch b/sys-devel/llvm/files/3.9.1/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch |
277 |
deleted file mode 100644 |
278 |
index 6634cdebe35..00000000000 |
279 |
--- a/sys-devel/llvm/files/3.9.1/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch |
280 |
+++ /dev/null |
281 |
@@ -1,62 +0,0 @@ |
282 |
-From aeddc35a35c55f487977d7609060225e03e2028b Mon Sep 17 00:00:00 2001 |
283 |
-From: Michal Gorny <mgorny@g.o> |
284 |
-Date: Tue, 4 Oct 2016 06:09:18 +0000 |
285 |
-Subject: [PATCH] [cmake] Reintroduce (ldconfig-compatible) SOVERSIONs on |
286 |
- shared libraries |
287 |
- |
288 |
-Reintroduce versioning of shared libraries via SOVERSION, addressing |
289 |
-the issues with the previous design, since Gentoo is relying |
290 |
-on shared-split install of LLVM. The SOVERSIONs were originally |
291 |
-introduced in r229720 for all libraries, and removed in r252093 in favor |
292 |
-of custom SONAME. As far as I understand, the major concern with the old |
293 |
-versioning was that the used versions were incompatible with ldconfig. |
294 |
- |
295 |
-Having considered that, this commit introduce SOVERSIONS with the |
296 |
-following considerations: |
297 |
- |
298 |
-1. SOVERSIONs are formed of major & minor version concatenated -- i.e. |
299 |
-for 4.0 its .so.40. This matches the common practice where the first |
300 |
-version number indicates ABI breakage, and therefore fixes the issues |
301 |
-with ldconfig. Additionally, VERSION with the remaining verion |
302 |
-components appended is used, however this is not strictly necessary. |
303 |
- |
304 |
-2. The versioning is only applied to libraries with no explicit SONAME |
305 |
-specified -- i.e. it won't apply to libLLVM but only to the split |
306 |
-libraries. It will also apply to libraries installed by the subprojects. |
307 |
- |
308 |
-3. The versioning is only done on *nix systems, Darwin excluded. This |
309 |
-matches the current use of SONAME. |
310 |
- |
311 |
-Differential Revision: https://reviews.llvm.org/D24757 |
312 |
- |
313 |
-git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283189 91177308-0d34-0410-b5e6-96231b3b80d8 |
314 |
---- |
315 |
- cmake/modules/AddLLVM.cmake | 12 ++++++++++++ |
316 |
- 1 file changed, 12 insertions(+) |
317 |
- |
318 |
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake |
319 |
-index 37b3b80..7cb1b0c 100644 |
320 |
---- a/cmake/modules/AddLLVM.cmake |
321 |
-+++ b/cmake/modules/AddLLVM.cmake |
322 |
-@@ -450,6 +450,18 @@ function(llvm_add_library name) |
323 |
- PREFIX "" |
324 |
- ) |
325 |
- endif() |
326 |
-+ |
327 |
-+ # Set SOVERSION on shared libraries that lack explicit SONAME |
328 |
-+ # specifier, on *nix systems that are not Darwin. |
329 |
-+ if(UNIX AND NOT APPLE AND NOT ARG_SONAME) |
330 |
-+ set_target_properties(${name} |
331 |
-+ PROPERTIES |
332 |
-+ # Concatenate the version numbers since ldconfig expects exactly |
333 |
-+ # one component indicating the ABI version, while LLVM uses |
334 |
-+ # major+minor for that. |
335 |
-+ SOVERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR} |
336 |
-+ VERSION ${LLVM_VERSION_MAJOR}${LLVM_VERSION_MINOR}.${LLVM_VERSION_PATCH}${LLVM_VERSION_SUFFIX}) |
337 |
-+ endif() |
338 |
- endif() |
339 |
- |
340 |
- if(ARG_MODULE OR ARG_SHARED) |
341 |
--- |
342 |
-2.10.0 |
343 |
- |
344 |
|
345 |
diff --git a/sys-devel/llvm/files/3.9.1/0009-Revert-AMDGPU-Fix-an-interaction-between-WQM-and-pol.patch b/sys-devel/llvm/files/3.9.1/0009-Revert-AMDGPU-Fix-an-interaction-between-WQM-and-pol.patch |
346 |
deleted file mode 100644 |
347 |
index f9ec68c00c0..00000000000 |
348 |
--- a/sys-devel/llvm/files/3.9.1/0009-Revert-AMDGPU-Fix-an-interaction-between-WQM-and-pol.patch |
349 |
+++ /dev/null |
350 |
@@ -1,120 +0,0 @@ |
351 |
-From d6b5bd6f44e8091a4c4870f1c52921c25a4f8cca Mon Sep 17 00:00:00 2001 |
352 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
353 |
-Date: Sat, 21 Jan 2017 12:35:36 +0100 |
354 |
-Subject: [PATCH] Revert "AMDGPU: Fix an interaction between WQM and polygon |
355 |
- stippling" |
356 |
- |
357 |
-https://bugs.gentoo.org/603858 |
358 |
---- |
359 |
- lib/Target/AMDGPU/SIInstructions.td | 1 - |
360 |
- lib/Target/AMDGPU/SIWholeQuadMode.cpp | 7 +++++ |
361 |
- test/CodeGen/AMDGPU/wqm.ll | 49 +++-------------------------------- |
362 |
- 3 files changed, 11 insertions(+), 46 deletions(-) |
363 |
- |
364 |
-diff --git a/lib/Target/AMDGPU/SIInstructions.td b/lib/Target/AMDGPU/SIInstructions.td |
365 |
-index dde5f2fc6b4..18b7d5d62ef 100644 |
366 |
---- a/lib/Target/AMDGPU/SIInstructions.td |
367 |
-+++ b/lib/Target/AMDGPU/SIInstructions.td |
368 |
-@@ -2029,7 +2029,6 @@ def SI_RETURN : PseudoInstSI < |
369 |
- let hasSideEffects = 1; |
370 |
- let SALU = 1; |
371 |
- let hasNoSchedulingInfo = 1; |
372 |
-- let DisableWQM = 1; |
373 |
- } |
374 |
- |
375 |
- let Uses = [EXEC], Defs = [EXEC, VCC, M0], |
376 |
-diff --git a/lib/Target/AMDGPU/SIWholeQuadMode.cpp b/lib/Target/AMDGPU/SIWholeQuadMode.cpp |
377 |
-index 1534d582569..b200c153df0 100644 |
378 |
---- a/lib/Target/AMDGPU/SIWholeQuadMode.cpp |
379 |
-+++ b/lib/Target/AMDGPU/SIWholeQuadMode.cpp |
380 |
-@@ -219,6 +219,13 @@ char SIWholeQuadMode::scanInstructions(MachineFunction &MF, |
381 |
- markInstruction(MI, Flags, Worklist); |
382 |
- GlobalFlags |= Flags; |
383 |
- } |
384 |
-+ |
385 |
-+ if (WQMOutputs && MBB.succ_empty()) { |
386 |
-+ // This is a prolog shader. Make sure we go back to exact mode at the end. |
387 |
-+ Blocks[&MBB].OutNeeds = StateExact; |
388 |
-+ Worklist.push_back(&MBB); |
389 |
-+ GlobalFlags |= StateExact; |
390 |
-+ } |
391 |
- } |
392 |
- |
393 |
- return GlobalFlags; |
394 |
-diff --git a/test/CodeGen/AMDGPU/wqm.ll b/test/CodeGen/AMDGPU/wqm.ll |
395 |
-index 41e42645788..809a7ba9b82 100644 |
396 |
---- a/test/CodeGen/AMDGPU/wqm.ll |
397 |
-+++ b/test/CodeGen/AMDGPU/wqm.ll |
398 |
-@@ -17,18 +17,17 @@ main_body: |
399 |
- ;CHECK-LABEL: {{^}}test2: |
400 |
- ;CHECK-NEXT: ; %main_body |
401 |
- ;CHECK-NEXT: s_wqm_b64 exec, exec |
402 |
-+;CHECK: image_sample |
403 |
- ;CHECK-NOT: exec |
404 |
--define amdgpu_ps void @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { |
405 |
-+;CHECK: _load_dword v0, |
406 |
-+define amdgpu_ps float @test2(<8 x i32> inreg %rsrc, <4 x i32> inreg %sampler, float addrspace(1)* inreg %ptr, <4 x i32> %c) { |
407 |
- main_body: |
408 |
- %c.1 = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %c, <8 x i32> %rsrc, <4 x i32> %sampler, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) |
409 |
- %c.2 = bitcast <4 x float> %c.1 to <4 x i32> |
410 |
- %c.3 = extractelement <4 x i32> %c.2, i32 0 |
411 |
- %gep = getelementptr float, float addrspace(1)* %ptr, i32 %c.3 |
412 |
- %data = load float, float addrspace(1)* %gep |
413 |
-- |
414 |
-- call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %data, float undef, float undef, float undef) |
415 |
-- |
416 |
-- ret void |
417 |
-+ ret float %data |
418 |
- } |
419 |
- |
420 |
- ; ... but disabled for stores (and, in this simple case, not re-enabled). |
421 |
-@@ -415,46 +414,6 @@ entry: |
422 |
- ret void |
423 |
- } |
424 |
- |
425 |
--; Must return to exact at the end of a non-void returning shader, |
426 |
--; otherwise the EXEC mask exported by the epilog will be wrong. This is true |
427 |
--; even if the shader has no kills, because a kill could have happened in a |
428 |
--; previous shader fragment. |
429 |
--; |
430 |
--; CHECK-LABEL: {{^}}test_nonvoid_return: |
431 |
--; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec |
432 |
--; CHECK: s_wqm_b64 exec, exec |
433 |
--; |
434 |
--; CHECK: s_and_b64 exec, exec, [[LIVE]] |
435 |
--; CHECK-NOT: exec |
436 |
--define amdgpu_ps <4 x float> @test_nonvoid_return() nounwind { |
437 |
-- %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) |
438 |
-- %tex.i = bitcast <4 x float> %tex to <4 x i32> |
439 |
-- %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) |
440 |
-- ret <4 x float> %dtex |
441 |
--} |
442 |
-- |
443 |
--; CHECK-LABEL: {{^}}test_nonvoid_return_unreachable: |
444 |
--; CHECK: s_mov_b64 [[LIVE:s\[[0-9]+:[0-9]+\]]], exec |
445 |
--; CHECK: s_wqm_b64 exec, exec |
446 |
--; |
447 |
--; CHECK: s_and_b64 exec, exec, [[LIVE]] |
448 |
--; CHECK-NOT: exec |
449 |
--define amdgpu_ps <4 x float> @test_nonvoid_return_unreachable(i32 inreg %c) nounwind { |
450 |
--entry: |
451 |
-- %tex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) |
452 |
-- %tex.i = bitcast <4 x float> %tex to <4 x i32> |
453 |
-- %dtex = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> %tex.i, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) |
454 |
-- |
455 |
-- %cc = icmp sgt i32 %c, 0 |
456 |
-- br i1 %cc, label %if, label %else |
457 |
-- |
458 |
--if: |
459 |
-- store volatile <4 x float> %dtex, <4 x float>* undef |
460 |
-- unreachable |
461 |
-- |
462 |
--else: |
463 |
-- ret <4 x float> %dtex |
464 |
--} |
465 |
- |
466 |
- declare void @llvm.amdgcn.image.store.v4i32(<4 x float>, <4 x i32>, <8 x i32>, i32, i1, i1, i1, i1) #1 |
467 |
- declare void @llvm.amdgcn.buffer.store.f32(float, <4 x i32>, i32, i32, i1, i1) #1 |
468 |
--- |
469 |
-2.11.0 |
470 |
- |
471 |
|
472 |
diff --git a/sys-devel/llvm/files/3.9.1/clang/0001-Install-clang-runtime-into-usr-lib-without-suffix.patch b/sys-devel/llvm/files/3.9.1/clang/0001-Install-clang-runtime-into-usr-lib-without-suffix.patch |
473 |
deleted file mode 100644 |
474 |
index 931eb56e5a9..00000000000 |
475 |
--- a/sys-devel/llvm/files/3.9.1/clang/0001-Install-clang-runtime-into-usr-lib-without-suffix.patch |
476 |
+++ /dev/null |
477 |
@@ -1,35 +0,0 @@ |
478 |
-diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp |
479 |
-index fa7780f..e3a6c8f 100644 |
480 |
---- a/tools/clang/lib/Driver/Driver.cpp |
481 |
-+++ b/tools/clang/lib/Driver/Driver.cpp |
482 |
-@@ -66,8 +66,7 @@ Driver::Driver(StringRef ClangExecutable, StringRef DefaultTargetTriple, |
483 |
- if (ClangResourceDir != "") { |
484 |
- llvm::sys::path::append(P, ClangResourceDir); |
485 |
- } else { |
486 |
-- StringRef ClangLibdirSuffix(CLANG_LIBDIR_SUFFIX); |
487 |
-- llvm::sys::path::append(P, "..", Twine("lib") + ClangLibdirSuffix, "clang", |
488 |
-+ llvm::sys::path::append(P, "..", "lib", "clang", |
489 |
- CLANG_VERSION_STRING); |
490 |
- } |
491 |
- ResourceDir = P.str(); |
492 |
-diff --git a/lib/Frontend/CompilerInvocation.cpp b/lib/Frontend/CompilerInvocation.cpp |
493 |
-index f078b37..0c514fc 100644 |
494 |
---- a/tools/clang/lib/Frontend/CompilerInvocation.cpp |
495 |
-+++ b/tools/clang/lib/Frontend/CompilerInvocation.cpp |
496 |
-@@ -1097,7 +1097,7 @@ std::string CompilerInvocation::GetResourcesPath(const char *Argv0, |
497 |
- if (ClangResourceDir != "") |
498 |
- llvm::sys::path::append(P, ClangResourceDir); |
499 |
- else |
500 |
-- llvm::sys::path::append(P, "..", Twine("lib") + CLANG_LIBDIR_SUFFIX, |
501 |
-+ llvm::sys::path::append(P, "..", "lib", |
502 |
- "clang", CLANG_VERSION_STRING); |
503 |
- |
504 |
- return P.str(); |
505 |
-diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt |
506 |
-index 7de5fbe..49f439b 100644 |
507 |
---- a/tools/clang/lib/Headers/CMakeLists.txt |
508 |
-+++ b/tools/clang/lib/Headers/CMakeLists.txt |
509 |
-@@ -100,4 +100,4 @@ set_target_properties(clang-headers PROPERTIES FOLDER "Misc") |
510 |
- PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ |
511 |
-- DESTINATION lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}/include) |
512 |
-+ DESTINATION lib/clang/${CLANG_VERSION}/include) |
513 |
|
514 |
diff --git a/sys-devel/llvm/files/3.9.1/clang/0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch b/sys-devel/llvm/files/3.9.1/clang/0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch |
515 |
deleted file mode 100644 |
516 |
index 0b93deba0b5..00000000000 |
517 |
--- a/sys-devel/llvm/files/3.9.1/clang/0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch |
518 |
+++ /dev/null |
519 |
@@ -1,28 +0,0 @@ |
520 |
-From d07632abe23d55eec2aae303a142a97765a77d32 Mon Sep 17 00:00:00 2001 |
521 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
522 |
-Date: Tue, 9 Jun 2015 12:20:06 +0200 |
523 |
-Subject: [PATCH 2/2] cmake: Make CLANG_LIBDIR_SUFFIX overridable |
524 |
- |
525 |
-Make CLANG_LIBDIR_SUFFIX a cache variable so that it can be explicitly |
526 |
-overriden. It is used purely to find the LLVMgold.so plugin, so we want |
527 |
-to set it to native suffix. |
528 |
---- |
529 |
- CMakeLists.txt | 2 +- |
530 |
- 1 file changed, 1 insertion(+), 1 deletion(-) |
531 |
- |
532 |
-diff --git a/CMakeLists.txt b/CMakeLists.txt |
533 |
-index 357286b..647f976 100644 |
534 |
---- a/tools/clang/CMakeLists.txt |
535 |
-+++ b/tools/clang/CMakeLists.txt |
536 |
-@@ -203,7 +203,7 @@ set(CLANG_VENDOR_UTI "org.llvm.clang" CACHE STRING |
537 |
- "Vendor-specific uti.") |
538 |
- |
539 |
- # The libdir suffix must exactly match whatever LLVM's configuration used. |
540 |
--set(CLANG_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}") |
541 |
-+set(CLANG_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING "") |
542 |
- |
543 |
- set(CLANG_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) |
544 |
- set(CLANG_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) |
545 |
--- |
546 |
-2.4.3 |
547 |
- |
548 |
|
549 |
diff --git a/sys-devel/llvm/files/3.9.1/clang/darwin_prefix-include-paths.patch b/sys-devel/llvm/files/3.9.1/clang/darwin_prefix-include-paths.patch |
550 |
deleted file mode 100644 |
551 |
index ed332f3f68a..00000000000 |
552 |
--- a/sys-devel/llvm/files/3.9.1/clang/darwin_prefix-include-paths.patch |
553 |
+++ /dev/null |
554 |
@@ -1,18 +0,0 @@ |
555 |
---- a/tools/clang/lib/Frontend/InitHeaderSearch.cpp |
556 |
-+++ b/tools/clang/lib/Frontend/InitHeaderSearch.cpp |
557 |
-@@ -233,6 +233,7 @@ |
558 |
- case llvm::Triple::Bitrig: |
559 |
- break; |
560 |
- default: |
561 |
-+ AddPath("@GENTOO_PORTAGE_EPREFIX@/usr/include", System, false); |
562 |
- // FIXME: temporary hack: hard-coded paths. |
563 |
- AddPath("/usr/local/include", System, false); |
564 |
- break; |
565 |
-@@ -505,6 +506,7 @@ |
566 |
- // Add the default framework include paths on Darwin. |
567 |
- if (HSOpts.UseStandardSystemIncludes) { |
568 |
- if (triple.isOSDarwin()) { |
569 |
-+ AddPath("@GENTOO_PORTAGE_EPREFIX@/Frameworks", System, true); |
570 |
- AddPath("/System/Library/Frameworks", System, true); |
571 |
- AddPath("/Library/Frameworks", System, true); |
572 |
- } |
573 |
|
574 |
diff --git a/sys-devel/llvm/files/3.9.1/clang/default-libs.patch b/sys-devel/llvm/files/3.9.1/clang/default-libs.patch |
575 |
deleted file mode 100644 |
576 |
index 12ef52d5b68..00000000000 |
577 |
--- a/sys-devel/llvm/files/3.9.1/clang/default-libs.patch |
578 |
+++ /dev/null |
579 |
@@ -1,703 +0,0 @@ |
580 |
-From 2d354bfbb2f5efdf3f6b2405078f9ccb65c21536 Mon Sep 17 00:00:00 2001 |
581 |
-From: Jonas Hahnfeld <Hahnfeld@×××××××××××××××.de> |
582 |
-Date: Wed, 27 Jul 2016 08:15:54 +0000 |
583 |
-Subject: [PATCH] Support setting default value for -rtlib at build time |
584 |
- |
585 |
-This patch introduces a new cmake variable: CLANG_DEFAULT_RTLIB, thru |
586 |
-which we can specify a default value for -rtlib (libgcc or |
587 |
-compiler-rt) at build time, just like how we set the default C++ |
588 |
-stdlib thru CLANG_DEFAULT_CXX_STDLIB. |
589 |
- |
590 |
-With these two options, we can configure clang to build binaries on |
591 |
-Linux that have no runtime dependence on any gcc libs (libstdc++ or |
592 |
-libgcc_s). |
593 |
- |
594 |
-Patch by Lei Zhang! |
595 |
- |
596 |
-Differential Revision: https://reviews.llvm.org/D22663 |
597 |
- |
598 |
-git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276848 91177308-0d34-0410-b5e6-96231b3b80d8 |
599 |
---- |
600 |
- CMakeLists.txt | 10 +++++ |
601 |
- include/clang/Config/config.h.cmake | 3 ++ |
602 |
- lib/Driver/ToolChain.cpp | 22 ++++++----- |
603 |
- lib/Driver/ToolChains.cpp | 23 ++++++----- |
604 |
- lib/Driver/ToolChains.h | 2 + |
605 |
- test/Driver/linux-ld.c | 76 ++++++++++++++++++------------------- |
606 |
- test/Driver/miamcu-opt.c | 14 +++---- |
607 |
- test/Driver/miamcu-opt.cpp | 2 +- |
608 |
- test/Driver/mingw-libgcc.c | 24 ++++++------ |
609 |
- test/Driver/mingw.cpp | 14 +++---- |
610 |
- test/Driver/mips-mti-linux.c | 4 +- |
611 |
- test/Driver/sanitizer-ld.c | 2 +- |
612 |
- test/Driver/windows-cross.c | 2 +- |
613 |
- test/OpenMP/linking.c | 18 +++++---- |
614 |
- 14 files changed, 121 insertions(+), 95 deletions(-) |
615 |
- |
616 |
-diff --git a/CMakeLists.txt b/CMakeLists.txt |
617 |
-index cfcd221..aec4579 100644 |
618 |
---- a/CMakeLists.txt |
619 |
-+++ b/CMakeLists.txt |
620 |
-@@ -201,6 +201,16 @@ if (NOT(CLANG_DEFAULT_CXX_STDLIB STREQUAL "" OR |
621 |
- set(CLANG_DEFAULT_CXX_STDLIB "") |
622 |
- endif() |
623 |
- |
624 |
-+set(CLANG_DEFAULT_RTLIB "" CACHE STRING |
625 |
-+ "Default runtime library to use (\"libgcc\" or \"compiler-rt\", empty for platform default)") |
626 |
-+if (NOT(CLANG_DEFAULT_RTLIB STREQUAL "" OR |
627 |
-+ CLANG_DEFAULT_RTLIB STREQUAL "libgcc" OR |
628 |
-+ CLANG_DEFAULT_RTLIB STREQUAL "compiler-rt")) |
629 |
-+ message(WARNING "Resetting default rtlib to use platform default") |
630 |
-+ set(CLANG_DEFAULT_RTLIB "" CACHE STRING |
631 |
-+ "Default runtime library to use (\"libgcc\" or \"compiler-rt\", empty for platform default)" FORCE) |
632 |
-+endif() |
633 |
-+ |
634 |
- set(CLANG_DEFAULT_OPENMP_RUNTIME "libomp" CACHE STRING |
635 |
- "Default OpenMP runtime used by -fopenmp.") |
636 |
- |
637 |
-diff --git a/include/clang/Config/config.h.cmake b/include/clang/Config/config.h.cmake |
638 |
-index e5a1d0d..9200ed9 100644 |
639 |
---- a/include/clang/Config/config.h.cmake |
640 |
-+++ b/include/clang/Config/config.h.cmake |
641 |
-@@ -11,6 +11,9 @@ |
642 |
- /* Default C++ stdlib to use. */ |
643 |
- #define CLANG_DEFAULT_CXX_STDLIB "${CLANG_DEFAULT_CXX_STDLIB}" |
644 |
- |
645 |
-+/* Default runtime library to use. */ |
646 |
-+#define CLANG_DEFAULT_RTLIB "${CLANG_DEFAULT_RTLIB}" |
647 |
-+ |
648 |
- /* Default OpenMP runtime used by -fopenmp. */ |
649 |
- #define CLANG_DEFAULT_OPENMP_RUNTIME "${CLANG_DEFAULT_OPENMP_RUNTIME}" |
650 |
- |
651 |
-diff --git a/lib/Driver/ToolChain.cpp b/lib/Driver/ToolChain.cpp |
652 |
-index e96688c..b825d63 100644 |
653 |
---- a/lib/Driver/ToolChain.cpp |
654 |
-+++ b/lib/Driver/ToolChain.cpp |
655 |
-@@ -526,15 +526,19 @@ void ToolChain::addProfileRTLibs(const llvm::opt::ArgList &Args, |
656 |
- |
657 |
- ToolChain::RuntimeLibType ToolChain::GetRuntimeLibType( |
658 |
- const ArgList &Args) const { |
659 |
-- if (Arg *A = Args.getLastArg(options::OPT_rtlib_EQ)) { |
660 |
-- StringRef Value = A->getValue(); |
661 |
-- if (Value == "compiler-rt") |
662 |
-- return ToolChain::RLT_CompilerRT; |
663 |
-- if (Value == "libgcc") |
664 |
-- return ToolChain::RLT_Libgcc; |
665 |
-- getDriver().Diag(diag::err_drv_invalid_rtlib_name) |
666 |
-- << A->getAsString(Args); |
667 |
-- } |
668 |
-+ const Arg* A = Args.getLastArg(options::OPT_rtlib_EQ); |
669 |
-+ StringRef LibName = A ? A->getValue() : CLANG_DEFAULT_RTLIB; |
670 |
-+ |
671 |
-+ // "platform" is only used in tests to override CLANG_DEFAULT_RTLIB |
672 |
-+ if (LibName == "compiler-rt") |
673 |
-+ return ToolChain::RLT_CompilerRT; |
674 |
-+ else if (LibName == "libgcc") |
675 |
-+ return ToolChain::RLT_Libgcc; |
676 |
-+ else if (LibName == "platform") |
677 |
-+ return GetDefaultRuntimeLibType(); |
678 |
-+ |
679 |
-+ if (A) |
680 |
-+ getDriver().Diag(diag::err_drv_invalid_rtlib_name) << A->getAsString(Args); |
681 |
- |
682 |
- return GetDefaultRuntimeLibType(); |
683 |
- } |
684 |
-diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp |
685 |
-index 347aa29..6027bbf 100644 |
686 |
---- a/lib/Driver/ToolChains.cpp |
687 |
-+++ b/lib/Driver/ToolChains.cpp |
688 |
-@@ -400,17 +400,22 @@ void DarwinClang::AddLinkSanitizerLibArgs(const ArgList &Args, |
689 |
- /*AddRPath*/ true); |
690 |
- } |
691 |
- |
692 |
-+ToolChain::RuntimeLibType DarwinClang::GetRuntimeLibType( |
693 |
-+ const ArgList &Args) const { |
694 |
-+ if (Arg* A = Args.getLastArg(options::OPT_rtlib_EQ)) { |
695 |
-+ StringRef Value = A->getValue(); |
696 |
-+ if (Value != "compiler-rt") |
697 |
-+ getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform) |
698 |
-+ << Value << "darwin"; |
699 |
-+ } |
700 |
-+ |
701 |
-+ return ToolChain::RLT_CompilerRT; |
702 |
-+} |
703 |
-+ |
704 |
- void DarwinClang::AddLinkRuntimeLibArgs(const ArgList &Args, |
705 |
- ArgStringList &CmdArgs) const { |
706 |
-- // Darwin only supports the compiler-rt based runtime libraries. |
707 |
-- switch (GetRuntimeLibType(Args)) { |
708 |
-- case ToolChain::RLT_CompilerRT: |
709 |
-- break; |
710 |
-- default: |
711 |
-- getDriver().Diag(diag::err_drv_unsupported_rtlib_for_platform) |
712 |
-- << Args.getLastArg(options::OPT_rtlib_EQ)->getValue() << "darwin"; |
713 |
-- return; |
714 |
-- } |
715 |
-+ // Call once to ensure diagnostic is printed if wrong value was specified |
716 |
-+ GetRuntimeLibType(Args); |
717 |
- |
718 |
- // Darwin doesn't support real static executables, don't link any runtime |
719 |
- // libraries with -static. |
720 |
-diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h |
721 |
-index 369712f..fe570fd 100644 |
722 |
---- a/lib/Driver/ToolChains.h |
723 |
-+++ b/lib/Driver/ToolChains.h |
724 |
-@@ -573,6 +573,8 @@ public: |
725 |
- /// @name Apple ToolChain Implementation |
726 |
- /// { |
727 |
- |
728 |
-+ RuntimeLibType GetRuntimeLibType(const llvm::opt::ArgList &Args) const override; |
729 |
-+ |
730 |
- void AddLinkRuntimeLibArgs(const llvm::opt::ArgList &Args, |
731 |
- llvm::opt::ArgStringList &CmdArgs) const override; |
732 |
- |
733 |
-diff --git a/test/Driver/linux-ld.c b/test/Driver/linux-ld.c |
734 |
-index f9f4b48..87bd55f 100644 |
735 |
---- a/test/Driver/linux-ld.c |
736 |
-+++ b/test/Driver/linux-ld.c |
737 |
-@@ -16,7 +16,7 @@ |
738 |
- // CHECK-LD-32: "-L[[SYSROOT]]/usr/lib" |
739 |
- // |
740 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
741 |
--// RUN: --target=x86_64-unknown-linux \ |
742 |
-+// RUN: --target=x86_64-unknown-linux -rtlib=platform \ |
743 |
- // RUN: --gcc-toolchain="" \ |
744 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
745 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s |
746 |
-@@ -36,7 +36,7 @@ |
747 |
- // CHECK-LD-64: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
748 |
- // |
749 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
750 |
--// RUN: --target=x86_64-unknown-linux-gnux32 \ |
751 |
-+// RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \ |
752 |
- // RUN: --gcc-toolchain="" \ |
753 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
754 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-X32 %s |
755 |
-@@ -86,7 +86,7 @@ |
756 |
- // CHECK-LD-RT-ANDROID: libclang_rt.builtins-arm-android.a" |
757 |
- // |
758 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
759 |
--// RUN: --target=x86_64-unknown-linux \ |
760 |
-+// RUN: --target=x86_64-unknown-linux -rtlib=platform \ |
761 |
- // RUN: --gcc-toolchain="" \ |
762 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
763 |
- // RUN: --rtlib=libgcc \ |
764 |
-@@ -107,7 +107,7 @@ |
765 |
- // CHECK-LD-GCC: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
766 |
- // |
767 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
768 |
--// RUN: --target=x86_64-unknown-linux \ |
769 |
-+// RUN: --target=x86_64-unknown-linux -rtlib=platform \ |
770 |
- // RUN: -static-libgcc \ |
771 |
- // RUN: --gcc-toolchain="" \ |
772 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
773 |
-@@ -128,7 +128,7 @@ |
774 |
- // CHECK-LD-64-STATIC-LIBGCC: "-lgcc" "-lgcc_eh" |
775 |
- // |
776 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
777 |
--// RUN: --target=x86_64-unknown-linux \ |
778 |
-+// RUN: --target=x86_64-unknown-linux -rtlib=platform \ |
779 |
- // RUN: -static \ |
780 |
- // RUN: --gcc-toolchain="" \ |
781 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
782 |
-@@ -149,7 +149,7 @@ |
783 |
- // |
784 |
- // Check that flags can be combined. The -static dominates. |
785 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
786 |
--// RUN: --target=x86_64-unknown-linux \ |
787 |
-+// RUN: --target=x86_64-unknown-linux -rtlib=platform \ |
788 |
- // RUN: -static-libgcc -static \ |
789 |
- // RUN: --gcc-toolchain="" \ |
790 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
791 |
-@@ -1004,42 +1004,42 @@ |
792 |
- // |
793 |
- // Test linker invocation on Android. |
794 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
795 |
--// RUN: --target=arm-linux-androideabi \ |
796 |
-+// RUN: --target=arm-linux-androideabi -rtlib=platform \ |
797 |
- // RUN: --gcc-toolchain="" \ |
798 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
799 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
800 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
801 |
--// RUN: --target=arm-linux-android \ |
802 |
-+// RUN: --target=arm-linux-android -rtlib=platform \ |
803 |
- // RUN: --gcc-toolchain="" \ |
804 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
805 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
806 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
807 |
--// RUN: --target=aarch64-linux-android \ |
808 |
-+// RUN: --target=aarch64-linux-android -rtlib=platform \ |
809 |
- // RUN: --gcc-toolchain="" \ |
810 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
811 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
812 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
813 |
--// RUN: --target=arm64-linux-android \ |
814 |
-+// RUN: --target=arm64-linux-android -rtlib=platform \ |
815 |
- // RUN: --gcc-toolchain="" \ |
816 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
817 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
818 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
819 |
--// RUN: --target=mipsel-linux-android \ |
820 |
-+// RUN: --target=mipsel-linux-android -rtlib=platform \ |
821 |
- // RUN: --gcc-toolchain="" \ |
822 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
823 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
824 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
825 |
--// RUN: --target=mips64el-linux-android \ |
826 |
-+// RUN: --target=mips64el-linux-android -rtlib=platform \ |
827 |
- // RUN: --gcc-toolchain="" \ |
828 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
829 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
830 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
831 |
--// RUN: --target=i686-linux-android \ |
832 |
-+// RUN: --target=i686-linux-android -rtlib=platform \ |
833 |
- // RUN: --gcc-toolchain="" \ |
834 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
835 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
836 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
837 |
--// RUN: --target=x86_64-linux-android \ |
838 |
-+// RUN: --target=x86_64-linux-android -rtlib=platform \ |
839 |
- // RUN: --gcc-toolchain="" \ |
840 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
841 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID %s |
842 |
-@@ -1052,48 +1052,48 @@ |
843 |
- // CHECK-ANDROID-NOT: "gcc_s" |
844 |
- // CHECK-ANDROID: "{{.*}}{{/|\\\\}}crtend_android.o" |
845 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
846 |
--// RUN: --target=arm-linux-androideabi \ |
847 |
-+// RUN: --target=arm-linux-androideabi -rtlib=platform \ |
848 |
- // RUN: --gcc-toolchain="" \ |
849 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
850 |
- // RUN: -shared \ |
851 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
852 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
853 |
--// RUN: --target=arm-linux-android \ |
854 |
-+// RUN: --target=arm-linux-android -rtlib=platform \ |
855 |
- // RUN: --gcc-toolchain="" \ |
856 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
857 |
- // RUN: -shared \ |
858 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
859 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
860 |
--// RUN: --target=aarch64-linux-android \ |
861 |
-+// RUN: --target=aarch64-linux-android -rtlib=platform \ |
862 |
- // RUN: --gcc-toolchain="" \ |
863 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
864 |
- // RUN: -shared \ |
865 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
866 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
867 |
--// RUN: --target=arm64-linux-android \ |
868 |
-+// RUN: --target=arm64-linux-android -rtlib=platform \ |
869 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
870 |
- // RUN: -shared \ |
871 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
872 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
873 |
--// RUN: --target=mipsel-linux-android \ |
874 |
-+// RUN: --target=mipsel-linux-android -rtlib=platform \ |
875 |
- // RUN: --gcc-toolchain="" \ |
876 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
877 |
- // RUN: -shared \ |
878 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
879 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
880 |
--// RUN: --target=mips64el-linux-android \ |
881 |
-+// RUN: --target=mips64el-linux-android -rtlib=platform \ |
882 |
- // RUN: --gcc-toolchain="" \ |
883 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
884 |
- // RUN: -shared \ |
885 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
886 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
887 |
--// RUN: --target=i686-linux-android \ |
888 |
-+// RUN: --target=i686-linux-android -rtlib=platform \ |
889 |
- // RUN: --gcc-toolchain="" \ |
890 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
891 |
- // RUN: -shared \ |
892 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-SO %s |
893 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
894 |
--// RUN: --target=x86_64-linux-android \ |
895 |
-+// RUN: --target=x86_64-linux-android -rtlib=platform \ |
896 |
- // RUN: --gcc-toolchain="" \ |
897 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
898 |
- // RUN: -shared \ |
899 |
-@@ -1108,47 +1108,47 @@ |
900 |
- // CHECK-ANDROID-SO-NOT: "gcc_s" |
901 |
- // CHECK-ANDROID-SO: "{{.*}}{{/|\\\\}}crtend_so.o" |
902 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
903 |
--// RUN: --target=arm-linux-androideabi \ |
904 |
-+// RUN: --target=arm-linux-androideabi -rtlib=platform \ |
905 |
- // RUN: --gcc-toolchain="" \ |
906 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
907 |
- // RUN: -static \ |
908 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
909 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
910 |
--// RUN: --target=arm-linux-android \ |
911 |
-+// RUN: --target=arm-linux-android -rtlib=platform \ |
912 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
913 |
- // RUN: -static \ |
914 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
915 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
916 |
--// RUN: --target=aarch64-linux-android \ |
917 |
-+// RUN: --target=aarch64-linux-android -rtlib=platform \ |
918 |
- // RUN: --gcc-toolchain="" \ |
919 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
920 |
- // RUN: -static \ |
921 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
922 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
923 |
--// RUN: --target=arm64-linux-android \ |
924 |
-+// RUN: --target=arm64-linux-android -rtlib=platform \ |
925 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
926 |
- // RUN: -static \ |
927 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
928 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
929 |
--// RUN: --target=mipsel-linux-android \ |
930 |
-+// RUN: --target=mipsel-linux-android -rtlib=platform \ |
931 |
- // RUN: --gcc-toolchain="" \ |
932 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
933 |
- // RUN: -static \ |
934 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
935 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
936 |
--// RUN: --target=mips64el-linux-android \ |
937 |
-+// RUN: --target=mips64el-linux-android -rtlib=platform \ |
938 |
- // RUN: --gcc-toolchain="" \ |
939 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
940 |
- // RUN: -static \ |
941 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
942 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
943 |
--// RUN: --target=i686-linux-android \ |
944 |
-+// RUN: --target=i686-linux-android -rtlib=platform \ |
945 |
- // RUN: --gcc-toolchain="" \ |
946 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
947 |
- // RUN: -static \ |
948 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-STATIC %s |
949 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
950 |
--// RUN: --target=x86_64-linux-android \ |
951 |
-+// RUN: --target=x86_64-linux-android -rtlib=platform \ |
952 |
- // RUN: --gcc-toolchain="" \ |
953 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
954 |
- // RUN: -static \ |
955 |
-@@ -1162,49 +1162,49 @@ |
956 |
- // CHECK-ANDROID-STATIC-NOT: "gcc_s" |
957 |
- // CHECK-ANDROID-STATIC: "{{.*}}{{/|\\\\}}crtend_android.o" |
958 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
959 |
--// RUN: --target=arm-linux-androideabi \ |
960 |
-+// RUN: --target=arm-linux-androideabi -rtlib=platform \ |
961 |
- // RUN: --gcc-toolchain="" \ |
962 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
963 |
- // RUN: -pie \ |
964 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
965 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
966 |
--// RUN: --target=arm-linux-android \ |
967 |
-+// RUN: --target=arm-linux-android -rtlib=platform \ |
968 |
- // RUN: --gcc-toolchain="" \ |
969 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
970 |
- // RUN: -pie \ |
971 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
972 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
973 |
--// RUN: --target=aarch64-linux-android \ |
974 |
-+// RUN: --target=aarch64-linux-android -rtlib=platform \ |
975 |
- // RUN: --gcc-toolchain="" \ |
976 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
977 |
- // RUN: -pie \ |
978 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
979 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
980 |
--// RUN: --target=arm64-linux-android \ |
981 |
-+// RUN: --target=arm64-linux-android -rtlib=platform \ |
982 |
- // RUN: --gcc-toolchain="" \ |
983 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
984 |
- // RUN: -pie \ |
985 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
986 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
987 |
--// RUN: --target=mipsel-linux-android \ |
988 |
-+// RUN: --target=mipsel-linux-android -rtlib=platform \ |
989 |
- // RUN: --gcc-toolchain="" \ |
990 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
991 |
- // RUN: -pie \ |
992 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
993 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
994 |
--// RUN: --target=mips64el-linux-android \ |
995 |
-+// RUN: --target=mips64el-linux-android -rtlib=platform \ |
996 |
- // RUN: --gcc-toolchain="" \ |
997 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
998 |
- // RUN: -pie \ |
999 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
1000 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1001 |
--// RUN: --target=i686-linux-android \ |
1002 |
-+// RUN: --target=i686-linux-android -rtlib=platform \ |
1003 |
- // RUN: --gcc-toolchain="" \ |
1004 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
1005 |
- // RUN: -pie \ |
1006 |
- // RUN: | FileCheck --check-prefix=CHECK-ANDROID-PIE %s |
1007 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1008 |
--// RUN: --target=x86_64-linux-android \ |
1009 |
-+// RUN: --target=x86_64-linux-android -rtlib=platform \ |
1010 |
- // RUN: --gcc-toolchain="" \ |
1011 |
- // RUN: --sysroot=%S/Inputs/basic_android_tree/sysroot \ |
1012 |
- // RUN: -pie \ |
1013 |
-diff --git a/test/Driver/miamcu-opt.c b/test/Driver/miamcu-opt.c |
1014 |
-index 7f96998..577bd37 100644 |
1015 |
---- a/test/Driver/miamcu-opt.c |
1016 |
-+++ b/test/Driver/miamcu-opt.c |
1017 |
-@@ -1,13 +1,13 @@ |
1018 |
- // REQUIRES: clang-driver |
1019 |
- // REQUIRES: x86-registered-target |
1020 |
- // |
1021 |
--// RUN: %clang -miamcu -no-canonical-prefixes %s -### -o %t.o 2>&1 | FileCheck %s |
1022 |
--// RUN: %clang -miamcu -no-canonical-prefixes -m32 %s -### -o %t.o 2>&1 | FileCheck %s |
1023 |
--// RUN: %clang -miamcu -no-canonical-prefixes -target x86_64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck %s |
1024 |
--// RUN: %clang -mno-iamcu -miamcu -no-canonical-prefixes %s -### -o %t.o 2>&1 | FileCheck %s |
1025 |
--// RUN: %clang -miamcu -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=M64 |
1026 |
--// RUN: %clang -miamcu -no-canonical-prefixes -dynamic %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=DYNAMIC |
1027 |
--// RUN: %clang -miamcu -no-canonical-prefixes -target armv8-eabi %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=NOT-X86 |
1028 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes %s -### -o %t.o 2>&1 | FileCheck %s |
1029 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes -m32 %s -### -o %t.o 2>&1 | FileCheck %s |
1030 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes -target x86_64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck %s |
1031 |
-+// RUN: %clang -mno-iamcu -miamcu -rtlib=platform -no-canonical-prefixes %s -### -o %t.o 2>&1 | FileCheck %s |
1032 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes -m64 %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=M64 |
1033 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes -dynamic %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=DYNAMIC |
1034 |
-+// RUN: %clang -miamcu -rtlib=platform -no-canonical-prefixes -target armv8-eabi %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=NOT-X86 |
1035 |
- // RUN: %clang -miamcu -mno-iamcu -no-canonical-prefixes -target x86_64-unknown-linux-gnu %s -### -o %t.o 2>&1 | FileCheck %s -check-prefix=MNOIAMCU |
1036 |
- |
1037 |
- // M64: error: invalid argument '-miamcu' not allowed with '-m64' |
1038 |
-diff --git a/test/Driver/miamcu-opt.cpp b/test/Driver/miamcu-opt.cpp |
1039 |
-index 6c8d755..b63c455 100644 |
1040 |
---- a/test/Driver/miamcu-opt.cpp |
1041 |
-+++ b/test/Driver/miamcu-opt.cpp |
1042 |
-@@ -1,3 +1,3 @@ |
1043 |
--// RUN: %clang -miamcu %s -### -o %t.o 2>&1 | FileCheck %s |
1044 |
-+// RUN: %clang -miamcu -rtlib=platform %s -### -o %t.o 2>&1 | FileCheck %s |
1045 |
- |
1046 |
- // CHECK: error: the clang compiler does not support 'C++ for IAMCU' |
1047 |
-diff --git a/test/Driver/mingw-libgcc.c b/test/Driver/mingw-libgcc.c |
1048 |
-index 75a5696..1d45c91 100644 |
1049 |
---- a/test/Driver/mingw-libgcc.c |
1050 |
-+++ b/test/Driver/mingw-libgcc.c |
1051 |
-@@ -2,24 +2,24 @@ |
1052 |
- // Verified with gcc version 5.1.0 (i686-posix-dwarf-rev0, Built by MinGW-W64 project). |
1053 |
- |
1054 |
- // gcc, static |
1055 |
--// RUN: %clang -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1056 |
--// RUN: %clang -static -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1057 |
--// RUN: %clang -static-libgcc -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1058 |
--// RUN: %clang -static -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1059 |
--// RUN: %clang -static-libgcc -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1060 |
-+// RUN: %clang -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1061 |
-+// RUN: %clang -static -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1062 |
-+// RUN: %clang -static-libgcc -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1063 |
-+// RUN: %clang -static -shared -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1064 |
-+// RUN: %clang -static-libgcc -shared -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1065 |
- |
1066 |
- // gcc, dynamic |
1067 |
--// RUN: %clang -shared -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1068 |
-+// RUN: %clang -shared -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1069 |
- |
1070 |
- // g++, static |
1071 |
--// RUN: %clang -static --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1072 |
--// RUN: %clang -static-libgcc --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1073 |
--// RUN: %clang -static -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1074 |
--// RUN: %clang -static-libgcc -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1075 |
-+// RUN: %clang -static --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1076 |
-+// RUN: %clang -static-libgcc --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1077 |
-+// RUN: %clang -static -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1078 |
-+// RUN: %clang -static-libgcc -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_STATIC %s |
1079 |
- |
1080 |
- // g++, dynamic |
1081 |
--// RUN: %clang --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1082 |
--// RUN: %clang -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1083 |
-+// RUN: %clang --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1084 |
-+// RUN: %clang -shared --driver-mode=g++ -v -target i686-pc-windows-gnu -rtlib=platform -### %s 2>&1 | FileCheck -check-prefix=CHECK_DYNAMIC %s |
1085 |
- |
1086 |
- // CHECK_STATIC: "-lgcc" "-lgcc_eh" |
1087 |
- // CHECK_DYNAMIC: "-lgcc_s" "-lgcc" |
1088 |
-diff --git a/test/Driver/mingw.cpp b/test/Driver/mingw.cpp |
1089 |
-index 8dc5b96..c939c7a 100644 |
1090 |
---- a/test/Driver/mingw.cpp |
1091 |
-+++ b/test/Driver/mingw.cpp |
1092 |
-@@ -1,9 +1,9 @@ |
1093 |
--// RUN: %clang -target i686-windows-gnu -c -### --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_CLANG_TREE %s |
1094 |
-+// RUN: %clang -target i686-windows-gnu -rtlib=platform -c -### --sysroot=%S/Inputs/mingw_clang_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_CLANG_TREE %s |
1095 |
- // CHECK_MINGW_CLANG_TREE: "{{.*}}/Inputs/mingw_clang_tree/mingw32{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include" |
1096 |
- // CHECK_MINGW_CLANG_TREE: "{{.*}}/Inputs/mingw_clang_tree/mingw32{{/|\\\\}}include" |
1097 |
- |
1098 |
- |
1099 |
--// RUN: %clang -target i686-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_mingw_org_tree/mingw %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ORG_TREE %s |
1100 |
-+// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_mingw_org_tree/mingw %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ORG_TREE %s |
1101 |
- // CHECK_MINGW_ORG_TREE: "{{.*}}/Inputs/mingw_mingw_org_tree/mingw{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}mingw32{{/|\\\\}}4.8.1{{/|\\\\}}include{{/|\\\\}}c++" |
1102 |
- // CHECK_MINGW_ORG_TREE: "{{.*}}/Inputs/mingw_mingw_org_tree/mingw{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}mingw32{{/|\\\\}}4.8.1{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}mingw32" |
1103 |
- // CHECK_MINGW_ORG_TREE: "{{.*}}{{/|\\\\}}Inputs/mingw_mingw_org_tree/mingw{{/|\\\\}}lib{{/|\\\\}}gcc{{/|\\\\}}mingw32{{/|\\\\}}4.8.1{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}backward" |
1104 |
-@@ -13,7 +13,7 @@ |
1105 |
- // CHECK_MINGW_ORG_TREE: {{.*}}/Inputs/mingw_mingw_org_tree/mingw{{/|\\\\}}include |
1106 |
- |
1107 |
- |
1108 |
--// RUN: %clang -target i686-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_mingw_builds_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_BUILDS_TREE %s |
1109 |
-+// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_mingw_builds_tree/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_BUILDS_TREE %s |
1110 |
- // CHECK_MINGW_BUILDS_TREE: "{{.*}}/Inputs/mingw_mingw_builds_tree/mingw32{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++" |
1111 |
- // CHECK_MINGW_BUILDS_TREE: "{{.*}}/Inputs/mingw_mingw_builds_tree/mingw32{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}i686-w64-mingw32" |
1112 |
- // CHECK_MINGW_BUILDS_TREE: "{{.*}}/Inputs/mingw_mingw_builds_tree/mingw32{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}backward" |
1113 |
-@@ -22,7 +22,7 @@ |
1114 |
- // CHECK_MINGW_BUILDS_TREE: "{{.*}}/Inputs/mingw_mingw_builds_tree/mingw32{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include" |
1115 |
- |
1116 |
- |
1117 |
--// RUN: %clang -target i686-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_msys2_tree/msys64/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_MSYS_TREE %s |
1118 |
-+// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_msys2_tree/msys64/mingw32 %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_MSYS_TREE %s |
1119 |
- // CHECK_MINGW_MSYS_TREE: "{{.*}}/Inputs/mingw_msys2_tree/msys64{{/|\\\\}}mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.9.2" |
1120 |
- // CHECK_MINGW_MSYS_TREE: "{{.*}}/Inputs/mingw_msys2_tree/msys64/mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.9.2{{/|\\\\}}i686-w64-mingw32" |
1121 |
- // CHECK_MINGW_MSYS_TREE: "{{.*}}/Inputs/mingw_msys2_tree/msys64/mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.9.2{{/|\\\\}}backward" |
1122 |
-@@ -32,7 +32,7 @@ |
1123 |
- // CHECK_MINGW_MSYS_TREE: "{{.*}}/Inputs/mingw_msys2_tree/msys64/mingw32{{/|\\\\}}include" |
1124 |
- |
1125 |
- |
1126 |
--// RUN: %clang -target x86_64-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_opensuse_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_OPENSUSE_TREE %s |
1127 |
-+// RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_opensuse_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_OPENSUSE_TREE %s |
1128 |
- // CHECK_MINGW_OPENSUSE_TREE: "{{.*}}/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}lib64{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}5.1.0{{/|\\\\}}include{{/|\\\\}}c++" |
1129 |
- // CHECK_MINGW_OPENSUSE_TREE: "{{.*}}/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}lib64{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}5.1.0{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}x86_64-w64-mingw32" |
1130 |
- // CHECK_MINGW_OPENSUSE_TREE: "{{.*}}/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}lib64{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}5.1.0{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}backward" |
1131 |
-@@ -41,7 +41,7 @@ |
1132 |
- // CHECK_MINGW_OPENSUSE_TREE: "{{.*}}/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}lib64{{/|\\\\}}gcc{{/|\\\\}}x86_64-w64-mingw32{{/|\\\\}}5.1.0{{/|\\\\}}include-fixed" |
1133 |
- |
1134 |
- |
1135 |
--// RUN: %clang -target i686-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s |
1136 |
-+// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s |
1137 |
- // CHECK_MINGW_ARCH_TREE: "{{.*}}/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0" |
1138 |
- // CHECK_MINGW_ARCH_TREE: "{{.*}}/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0{{/|\\\\}}i686-w64-mingw32" |
1139 |
- // CHECK_MINGW_ARCH_TREE: "{{.*}}/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0{{/|\\\\}}backward" |
1140 |
-@@ -50,7 +50,7 @@ |
1141 |
- // CHECK_MINGW_ARCH_TREE: "{{.*}}/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include" |
1142 |
- |
1143 |
- |
1144 |
--// RUN: %clang -target x86_64-pc-windows-gnu -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_ubuntu_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_UBUNTU_TREE %s |
1145 |
-+// RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_ubuntu_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_UBUNTU_TREE %s |
1146 |
- // CHECK_MINGW_UBUNTU_TREE: "{{.*}}/Inputs/mingw_ubuntu_tree/usr{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.8" |
1147 |
- // CHECK_MINGW_UBUNTU_TREE: "{{.*}}/Inputs/mingw_ubuntu_tree/usr{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.8{{/|\\\\}}x86_64-w64-mingw32" |
1148 |
- // CHECK_MINGW_UBUNTU_TREE: "{{.*}}/Inputs/mingw_ubuntu_tree/usr{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}4.8{{/|\\\\}}backward" |
1149 |
-diff --git a/test/Driver/mips-mti-linux.c b/test/Driver/mips-mti-linux.c |
1150 |
-index e3560e2..4835d79 100644 |
1151 |
---- a/test/Driver/mips-mti-linux.c |
1152 |
-+++ b/test/Driver/mips-mti-linux.c |
1153 |
-@@ -8,7 +8,7 @@ |
1154 |
- |
1155 |
- // = Big-endian, mips32r2, hard float |
1156 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1157 |
--// RUN: --target=mips-mti-linux -mips32r2 -mhard-float \ |
1158 |
-+// RUN: --target=mips-mti-linux -mips32r2 -mhard-float -rtlib=platform \ |
1159 |
- // RUN: --sysroot=%S/Inputs/mips_mti_linux/sysroot \ |
1160 |
- // RUN: | FileCheck --check-prefix=CHECK-BE-HF-32R2 %s |
1161 |
- // |
1162 |
-@@ -26,7 +26,7 @@ |
1163 |
- |
1164 |
- // = Little-endian, mips32r2, hard float |
1165 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1166 |
--// RUN: --target=mips-mti-linux -mips32r2 -EL -mhard-float \ |
1167 |
-+// RUN: --target=mips-mti-linux -mips32r2 -EL -mhard-float -rtlib=platform \ |
1168 |
- // RUN: --sysroot=%S/Inputs/mips_mti_linux/sysroot \ |
1169 |
- // RUN: | FileCheck --check-prefix=CHECK-LE-HF-32R2 %s |
1170 |
- // |
1171 |
-diff --git a/test/Driver/sanitizer-ld.c b/test/Driver/sanitizer-ld.c |
1172 |
-index 4d4ea29..9f6fae3 100644 |
1173 |
---- a/test/Driver/sanitizer-ld.c |
1174 |
-+++ b/test/Driver/sanitizer-ld.c |
1175 |
-@@ -343,7 +343,7 @@ |
1176 |
- |
1177 |
- // CFI by itself does not link runtime libraries. |
1178 |
- // RUN: %clang -fsanitize=cfi %s -### -o %t.o 2>&1 \ |
1179 |
--// RUN: -target x86_64-unknown-linux \ |
1180 |
-+// RUN: -target x86_64-unknown-linux -rtlib=platform \ |
1181 |
- // RUN: --sysroot=%S/Inputs/basic_linux_tree \ |
1182 |
- // RUN: | FileCheck --check-prefix=CHECK-CFI-LINUX %s |
1183 |
- // CHECK-CFI-LINUX: "{{.*}}ld{{(.exe)?}}" |
1184 |
-diff --git a/test/Driver/windows-cross.c b/test/Driver/windows-cross.c |
1185 |
-index 3812287..84ef2df 100644 |
1186 |
---- a/test/Driver/windows-cross.c |
1187 |
-+++ b/test/Driver/windows-cross.c |
1188 |
-@@ -1,4 +1,4 @@ |
1189 |
--// RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -stdlib=libstdc++ -o /dev/null %s 2>&1 \ |
1190 |
-+// RUN: %clang -### -target armv7-windows-itanium --sysroot %S/Inputs/Windows/ARM/8.1 -B %S/Inputs/Windows/ARM/8.1/usr/bin -stdlib=libstdc++ -rtlib=platform -o /dev/null %s 2>&1 \ |
1191 |
- // RUN: | FileCheck %s --check-prefix CHECK-BASIC |
1192 |
- |
1193 |
- // CHECK-BASIC: armv7-windows-itanium-ld" "--sysroot={{.*}}/Inputs/Windows/ARM/8.1" "-m" "thumb2pe" "-Bdynamic" "--entry" "mainCRTStartup" "--allow-multiple-definition" "-o" "{{[^"]*}}" "{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/crtbegin.obj" "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib" "-L{{.*}}/Inputs/Windows/ARM/8.1/usr/lib/gcc" "{{.*}}.o" "-lmsvcrt" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1194 |
-diff --git a/test/OpenMP/linking.c b/test/OpenMP/linking.c |
1195 |
-index 81706d4..7b30592 100644 |
1196 |
---- a/test/OpenMP/linking.c |
1197 |
-+++ b/test/OpenMP/linking.c |
1198 |
-@@ -4,42 +4,42 @@ |
1199 |
- // FIXME: Replace DEFAULT_OPENMP_LIB below with the value chosen at configure time. |
1200 |
- // |
1201 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1202 |
--// RUN: -fopenmp -target i386-unknown-linux \ |
1203 |
-+// RUN: -fopenmp -target i386-unknown-linux -rtlib=platform \ |
1204 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-32 %s |
1205 |
- // CHECK-LD-32: "{{.*}}ld{{(.exe)?}}" |
1206 |
- // CHECK-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" |
1207 |
- // CHECK-LD-32: "-lpthread" "-lc" |
1208 |
- // |
1209 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1210 |
--// RUN: -fopenmp -target x86_64-unknown-linux \ |
1211 |
-+// RUN: -fopenmp -target x86_64-unknown-linux -rtlib=platform \ |
1212 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-64 %s |
1213 |
- // CHECK-LD-64: "{{.*}}ld{{(.exe)?}}" |
1214 |
- // CHECK-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" |
1215 |
- // CHECK-LD-64: "-lpthread" "-lc" |
1216 |
- // |
1217 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1218 |
--// RUN: -fopenmp=libgomp -target i386-unknown-linux \ |
1219 |
-+// RUN: -fopenmp=libgomp -target i386-unknown-linux -rtlib=platform \ |
1220 |
- // RUN: | FileCheck --check-prefix=CHECK-GOMP-LD-32 %s |
1221 |
- // CHECK-GOMP-LD-32: "{{.*}}ld{{(.exe)?}}" |
1222 |
- // CHECK-GOMP-LD-32: "-lgomp" "-lrt" "-lgcc" |
1223 |
- // CHECK-GOMP-LD-32: "-lpthread" "-lc" |
1224 |
- // |
1225 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1226 |
--// RUN: -fopenmp=libgomp -target x86_64-unknown-linux \ |
1227 |
-+// RUN: -fopenmp=libgomp -target x86_64-unknown-linux -rtlib=platform \ |
1228 |
- // RUN: | FileCheck --check-prefix=CHECK-GOMP-LD-64 %s |
1229 |
- // CHECK-GOMP-LD-64: "{{.*}}ld{{(.exe)?}}" |
1230 |
- // CHECK-GOMP-LD-64: "-lgomp" "-lrt" "-lgcc" |
1231 |
- // CHECK-GOMP-LD-64: "-lpthread" "-lc" |
1232 |
- // |
1233 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1234 |
--// RUN: -fopenmp -target i386-unknown-linux \ |
1235 |
-+// RUN: -fopenmp -target i386-unknown-linux -rtlib=platform \ |
1236 |
- // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-32 %s |
1237 |
- // CHECK-IOMP5-LD-32: "{{.*}}ld{{(.exe)?}}" |
1238 |
- // CHECK-IOMP5-LD-32: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" |
1239 |
- // CHECK-IOMP5-LD-32: "-lpthread" "-lc" |
1240 |
- // |
1241 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1242 |
--// RUN: -fopenmp -target x86_64-unknown-linux \ |
1243 |
-+// RUN: -fopenmp -target x86_64-unknown-linux -rtlib=platform \ |
1244 |
- // RUN: | FileCheck --check-prefix=CHECK-IOMP5-LD-64 %s |
1245 |
- // CHECK-IOMP5-LD-64: "{{.*}}ld{{(.exe)?}}" |
1246 |
- // CHECK-IOMP5-LD-64: "-l[[DEFAULT_OPENMP_LIB:[^"]*]]" "-lgcc" |
1247 |
-@@ -57,6 +57,7 @@ |
1248 |
- // |
1249 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1250 |
- // RUN: -fopenmp -fopenmp=libgomp -target i386-unknown-linux \ |
1251 |
-+// RUN: -rtlib=platform \ |
1252 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-32 %s |
1253 |
- // CHECK-LD-OVERRIDE-32: "{{.*}}ld{{(.exe)?}}" |
1254 |
- // CHECK-LD-OVERRIDE-32: "-lgomp" "-lrt" "-lgcc" |
1255 |
-@@ -64,13 +65,14 @@ |
1256 |
- // |
1257 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1258 |
- // RUN: -fopenmp -fopenmp=libgomp -target x86_64-unknown-linux \ |
1259 |
-+// RUN: -rtlib=platform \ |
1260 |
- // RUN: | FileCheck --check-prefix=CHECK-LD-OVERRIDE-64 %s |
1261 |
- // CHECK-LD-OVERRIDE-64: "{{.*}}ld{{(.exe)?}}" |
1262 |
- // CHECK-LD-OVERRIDE-64: "-lgomp" "-lrt" "-lgcc" |
1263 |
- // CHECK-LD-OVERRIDE-64: "-lpthread" "-lc" |
1264 |
- // |
1265 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1266 |
--// RUN: -fopenmp=libomp -target x86_64-msvc-win32 \ |
1267 |
-+// RUN: -fopenmp=libomp -target x86_64-msvc-win32 -rtlib=platform \ |
1268 |
- // RUN: | FileCheck --check-prefix=CHECK-MSVC-LINK-64 %s |
1269 |
- // CHECK-MSVC-LINK-64: link.exe |
1270 |
- // CHECK-MSVC-LINK-64-SAME: -nodefaultlib:vcomp.lib |
1271 |
-@@ -79,7 +81,7 @@ |
1272 |
- // CHECK-MSVC-LINK-64-SAME: -defaultlib:libomp.lib |
1273 |
- // |
1274 |
- // RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1275 |
--// RUN: -fopenmp=libiomp5 -target x86_64-msvc-win32 \ |
1276 |
-+// RUN: -fopenmp=libiomp5 -target x86_64-msvc-win32 -rtlib=platform \ |
1277 |
- // RUN: | FileCheck --check-prefix=CHECK-MSVC-ILINK-64 %s |
1278 |
- // CHECK-MSVC-ILINK-64: link.exe |
1279 |
- // CHECK-MSVC-ILINK-64-SAME: -nodefaultlib:vcomp.lib |
1280 |
--- |
1281 |
-2.9.3 |
1282 |
- |
1283 |
|
1284 |
diff --git a/sys-devel/llvm/files/3.9.1/clang/gcc-config.patch b/sys-devel/llvm/files/3.9.1/clang/gcc-config.patch |
1285 |
deleted file mode 100644 |
1286 |
index 42d5d040599..00000000000 |
1287 |
--- a/sys-devel/llvm/files/3.9.1/clang/gcc-config.patch |
1288 |
+++ /dev/null |
1289 |
@@ -1,422 +0,0 @@ |
1290 |
-From a0b8bc9ef667ed7158400f7cbf772e470661d203 Mon Sep 17 00:00:00 2001 |
1291 |
-From: Michal Gorny <mgorny@g.o> |
1292 |
-Date: Tue, 25 Oct 2016 15:07:41 +0000 |
1293 |
-Subject: [PATCH] (squashed gcc-config patch, from commits:) |
1294 |
- |
1295 |
-[Driver] Support obtaining active toolchain from gcc-config on Gentoo |
1296 |
- |
1297 |
-Support using gcc-config to determine the correct GCC toolchain location |
1298 |
-on Gentoo. In order to do that, attempt to read gcc-config configuration |
1299 |
-form [[sysroot]]/etc/env.d/gcc, if no custom toolchain location is |
1300 |
-provided. |
1301 |
- |
1302 |
-Differential Revision: https://reviews.llvm.org/D25661 |
1303 |
- |
1304 |
-git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@285074 91177308-0d34-0410-b5e6-96231b3b80d8 |
1305 |
- |
1306 |
-[Driver] Fix finding multilib gcc install on Gentoo (with gcc-config) |
1307 |
- |
1308 |
-Fix the gcc-config code to support multilib gcc installs properly. This |
1309 |
-solves two problems: -mx32 using the 64-bit gcc directory (due to matching |
1310 |
-installation triple), and -m32 not respecting gcc-config at all (due to |
1311 |
-mismatched installation triple). |
1312 |
- |
1313 |
-In order to fix the former issue, split the multilib scan out of |
1314 |
-Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple() (the code |
1315 |
-is otherwise unchanged), and call it for each installation found via |
1316 |
-gcc-config. |
1317 |
- |
1318 |
-In order to fix the latter issue, split the gcc-config processing out of |
1319 |
-Generic_GCC::GCCInstallationDetector::init() and repeat it for all |
1320 |
-triples, including extra and biarch triples. The only change |
1321 |
-in the gcc-config code itself is adding the call to multilib scan. |
1322 |
- |
1323 |
-Convert the gentoo_linux_gcc_multi_version_tree test input to multilib |
1324 |
-x86_64+32+x32 install, and add appropriate tests to linux-header-search |
1325 |
-and linux-ld. |
1326 |
- |
1327 |
-Differential Revision: https://reviews.llvm.org/D26887 |
1328 |
- |
1329 |
-git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289436 91177308-0d34-0410-b5e6-96231b3b80d8 |
1330 |
- |
1331 |
-[Driver] Attempt to fix new linux-ld tests on Windows |
1332 |
- |
1333 |
-(broken by r289436) |
1334 |
- |
1335 |
-git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289440 91177308-0d34-0410-b5e6-96231b3b80d8 |
1336 |
---- |
1337 |
- lib/Driver/ToolChains.cpp | 104 +++++++++++++++++---- |
1338 |
- lib/Driver/ToolChains.h | 10 ++ |
1339 |
- .../etc/env.d/gcc/config-x86_64-pc-linux-gnu | 1 + |
1340 |
- .../etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3 | 10 ++ |
1341 |
- .../etc/gentoo-release | 1 + |
1342 |
- .../usr/include/.keep | 0 |
1343 |
- .../gcc/x86_64-pc-linux-gnu/4.9.3/32/crtbegin.o | 0 |
1344 |
- .../lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o | 0 |
1345 |
- .../4.9.3/include/g++-v4.9.3/.keep | 0 |
1346 |
- .../gcc/x86_64-pc-linux-gnu/4.9.3/x32/crtbegin.o | 0 |
1347 |
- .../gcc/x86_64-pc-linux-gnu/5.4.0/32/crtbegin.o | 0 |
1348 |
- .../lib/gcc/x86_64-pc-linux-gnu/5.4.0/crtbegin.o | 0 |
1349 |
- .../5.4.0/include/g++-v5.4.0/.keep | 0 |
1350 |
- .../gcc/x86_64-pc-linux-gnu/5.4.0/x32/crtbegin.o | 0 |
1351 |
- .../usr/x86_64-pc-linux-gnu/lib/.keep | 0 |
1352 |
- test/Driver/linux-header-search.cpp | 42 +++++++++ |
1353 |
- test/Driver/linux-ld.c | 53 +++++++++++ |
1354 |
- 17 files changed, 204 insertions(+), 17 deletions(-) |
1355 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/config-x86_64-pc-linux-gnu |
1356 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3 |
1357 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/gentoo-release |
1358 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/include/.keep |
1359 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32/crtbegin.o |
1360 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o |
1361 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep |
1362 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32/crtbegin.o |
1363 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/32/crtbegin.o |
1364 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/crtbegin.o |
1365 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/g++-v5.4.0/.keep |
1366 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/x32/crtbegin.o |
1367 |
- create mode 100644 test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/x86_64-pc-linux-gnu/lib/.keep |
1368 |
- |
1369 |
-diff --git a/tools/clang/lib/Driver/ToolChains.cpp b/tools/clang/lib/Driver/ToolChains.cpp |
1370 |
-index 1b02f467c1..84123ea132 100644 |
1371 |
---- a/tools/clang/lib/Driver/ToolChains.cpp |
1372 |
-+++ b/tools/clang/lib/Driver/ToolChains.cpp |
1373 |
-@@ -1420,6 +1420,25 @@ void Generic_GCC::GCCInstallationDetector::init( |
1374 |
- } |
1375 |
- } |
1376 |
- |
1377 |
-+ // Try to respect gcc-config on Gentoo. However, do that only |
1378 |
-+ // if --gcc-toolchain is not provided or equal to the Gentoo install |
1379 |
-+ // in /usr. This avoids accidentally enforcing the system GCC version |
1380 |
-+ // when using a custom toolchain. |
1381 |
-+ if (GCCToolchainDir == "" || GCCToolchainDir == D.SysRoot + "/usr") { |
1382 |
-+ for (StringRef CandidateTriple : ExtraTripleAliases) { |
1383 |
-+ if (ScanGentooGccConfig(TargetTriple, Args, CandidateTriple)) |
1384 |
-+ return; |
1385 |
-+ } |
1386 |
-+ for (StringRef CandidateTriple : CandidateTripleAliases) { |
1387 |
-+ if (ScanGentooGccConfig(TargetTriple, Args, CandidateTriple)) |
1388 |
-+ return; |
1389 |
-+ } |
1390 |
-+ for (StringRef CandidateTriple : CandidateBiarchTripleAliases) { |
1391 |
-+ if (ScanGentooGccConfig(TargetTriple, Args, CandidateTriple, true)) |
1392 |
-+ return; |
1393 |
-+ } |
1394 |
-+ } |
1395 |
-+ |
1396 |
- // Loop over the various components which exist and select the best GCC |
1397 |
- // installation available. GCC installs are ranked by version number. |
1398 |
- Version = GCCVersion::Parse("0.0.0"); |
1399 |
-@@ -2546,6 +2565,33 @@ void Generic_GCC::GCCInstallationDetector::scanLibDirForGCCTripleSolaris( |
1400 |
- } |
1401 |
- } |
1402 |
- |
1403 |
-+bool Generic_GCC::GCCInstallationDetector::ScanGCCForMultilibs( |
1404 |
-+ const llvm::Triple &TargetTriple, const ArgList &Args, |
1405 |
-+ StringRef Path, bool NeedsBiarchSuffix) { |
1406 |
-+ llvm::Triple::ArchType TargetArch = TargetTriple.getArch(); |
1407 |
-+ DetectedMultilibs Detected; |
1408 |
-+ |
1409 |
-+ // Android standalone toolchain could have multilibs for ARM and Thumb. |
1410 |
-+ // Debian mips multilibs behave more like the rest of the biarch ones, |
1411 |
-+ // so handle them there |
1412 |
-+ if (isArmOrThumbArch(TargetArch) && TargetTriple.isAndroid()) { |
1413 |
-+ // It should also work without multilibs in a simplified toolchain. |
1414 |
-+ findAndroidArmMultilibs(D, TargetTriple, Path, Args, Detected); |
1415 |
-+ } else if (isMipsArch(TargetArch)) { |
1416 |
-+ if (!findMIPSMultilibs(D, TargetTriple, Path, Args, Detected)) |
1417 |
-+ return false; |
1418 |
-+ } else if (!findBiarchMultilibs(D, TargetTriple, Path, Args, |
1419 |
-+ NeedsBiarchSuffix, Detected)) { |
1420 |
-+ return false; |
1421 |
-+ } |
1422 |
-+ |
1423 |
-+ Multilibs = Detected.Multilibs; |
1424 |
-+ SelectedMultilib = Detected.SelectedMultilib; |
1425 |
-+ BiarchSibling = Detected.BiarchSibling; |
1426 |
-+ |
1427 |
-+ return true; |
1428 |
-+} |
1429 |
-+ |
1430 |
- void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( |
1431 |
- const llvm::Triple &TargetTriple, const ArgList &Args, |
1432 |
- const std::string &LibDir, StringRef CandidateTriple, |
1433 |
-@@ -2601,25 +2647,10 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( |
1434 |
- if (CandidateVersion <= Version) |
1435 |
- continue; |
1436 |
- |
1437 |
-- DetectedMultilibs Detected; |
1438 |
-- |
1439 |
-- // Android standalone toolchain could have multilibs for ARM and Thumb. |
1440 |
-- // Debian mips multilibs behave more like the rest of the biarch ones, |
1441 |
-- // so handle them there |
1442 |
-- if (isArmOrThumbArch(TargetArch) && TargetTriple.isAndroid()) { |
1443 |
-- // It should also work without multilibs in a simplified toolchain. |
1444 |
-- findAndroidArmMultilibs(D, TargetTriple, LI->getName(), Args, Detected); |
1445 |
-- } else if (isMipsArch(TargetArch)) { |
1446 |
-- if (!findMIPSMultilibs(D, TargetTriple, LI->getName(), Args, Detected)) |
1447 |
-- continue; |
1448 |
-- } else if (!findBiarchMultilibs(D, TargetTriple, LI->getName(), Args, |
1449 |
-- NeedsBiarchSuffix, Detected)) { |
1450 |
-+ if (!ScanGCCForMultilibs(TargetTriple, Args, LI->getName(), |
1451 |
-+ NeedsBiarchSuffix)) |
1452 |
- continue; |
1453 |
-- } |
1454 |
- |
1455 |
-- Multilibs = Detected.Multilibs; |
1456 |
-- SelectedMultilib = Detected.SelectedMultilib; |
1457 |
-- BiarchSibling = Detected.BiarchSibling; |
1458 |
- Version = CandidateVersion; |
1459 |
- GCCTriple.setTriple(CandidateTriple); |
1460 |
- // FIXME: We hack together the directory name here instead of |
1461 |
-@@ -2633,6 +2664,45 @@ void Generic_GCC::GCCInstallationDetector::ScanLibDirForGCCTriple( |
1462 |
- } |
1463 |
- } |
1464 |
- |
1465 |
-+bool Generic_GCC::GCCInstallationDetector::ScanGentooGccConfig( |
1466 |
-+ const llvm::Triple &TargetTriple, const ArgList &Args, |
1467 |
-+ StringRef CandidateTriple, bool NeedsBiarchSuffix) { |
1468 |
-+ llvm::ErrorOr<std::unique_ptr<llvm::MemoryBuffer>> File = |
1469 |
-+ D.getVFS().getBufferForFile(D.SysRoot + "/etc/env.d/gcc/config-" + |
1470 |
-+ CandidateTriple.str()); |
1471 |
-+ if (File) { |
1472 |
-+ SmallVector<StringRef, 2> Lines; |
1473 |
-+ File.get()->getBuffer().split(Lines, "\n"); |
1474 |
-+ for (StringRef Line : Lines) { |
1475 |
-+ // CURRENT=triple-version |
1476 |
-+ if (Line.startswith("CURRENT=")) { |
1477 |
-+ const std::pair<StringRef, StringRef> ActiveVersion = |
1478 |
-+ Line.substr(8).rsplit('-'); |
1479 |
-+ // Note: Strictly speaking, we should be reading |
1480 |
-+ // /etc/env.d/gcc/${CURRENT} now. However, the file doesn't |
1481 |
-+ // contain anything new or especially useful to us. |
1482 |
-+ const std::string GentooPath = D.SysRoot + "/usr/lib/gcc/" + |
1483 |
-+ ActiveVersion.first.str() + "/" + |
1484 |
-+ ActiveVersion.second.str(); |
1485 |
-+ if (D.getVFS().exists(GentooPath + "/crtbegin.o")) { |
1486 |
-+ if (!ScanGCCForMultilibs(TargetTriple, Args, GentooPath, |
1487 |
-+ NeedsBiarchSuffix)) |
1488 |
-+ return false; |
1489 |
-+ |
1490 |
-+ Version = GCCVersion::Parse(ActiveVersion.second); |
1491 |
-+ GCCInstallPath = GentooPath; |
1492 |
-+ GCCParentLibPath = GentooPath + "/../../.."; |
1493 |
-+ GCCTriple.setTriple(ActiveVersion.first); |
1494 |
-+ IsValid = true; |
1495 |
-+ return true; |
1496 |
-+ } |
1497 |
-+ } |
1498 |
-+ } |
1499 |
-+ } |
1500 |
-+ |
1501 |
-+ return false; |
1502 |
-+} |
1503 |
-+ |
1504 |
- Generic_GCC::Generic_GCC(const Driver &D, const llvm::Triple &Triple, |
1505 |
- const ArgList &Args) |
1506 |
- : ToolChain(D, Triple, Args), GCCInstallation(D), CudaInstallation(D) { |
1507 |
-diff --git a/tools/clang/lib/Driver/ToolChains.h b/tools/clang/lib/Driver/ToolChains.h |
1508 |
-index 369712fa93..6c2d0cb201 100644 |
1509 |
---- a/tools/clang/lib/Driver/ToolChains.h |
1510 |
-+++ b/tools/clang/lib/Driver/ToolChains.h |
1511 |
-@@ -143,6 +143,11 @@ public: |
1512 |
- SmallVectorImpl<StringRef> &BiarchLibDirs, |
1513 |
- SmallVectorImpl<StringRef> &BiarchTripleAliases); |
1514 |
- |
1515 |
-+ bool ScanGCCForMultilibs(const llvm::Triple &TargetTriple, |
1516 |
-+ const llvm::opt::ArgList &Args, |
1517 |
-+ StringRef Path, |
1518 |
-+ bool NeedsBiarchSuffix = false); |
1519 |
-+ |
1520 |
- void ScanLibDirForGCCTriple(const llvm::Triple &TargetArch, |
1521 |
- const llvm::opt::ArgList &Args, |
1522 |
- const std::string &LibDir, |
1523 |
-@@ -154,6 +159,11 @@ public: |
1524 |
- const std::string &LibDir, |
1525 |
- StringRef CandidateTriple, |
1526 |
- bool NeedsBiarchSuffix = false); |
1527 |
-+ |
1528 |
-+ bool ScanGentooGccConfig(const llvm::Triple &TargetTriple, |
1529 |
-+ const llvm::opt::ArgList &Args, |
1530 |
-+ StringRef CandidateTriple, |
1531 |
-+ bool NeedsBiarchSuffix = false); |
1532 |
- }; |
1533 |
- |
1534 |
- protected: |
1535 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/config-x86_64-pc-linux-gnu b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/config-x86_64-pc-linux-gnu |
1536 |
-new file mode 100644 |
1537 |
-index 0000000000..5ef56a33a6 |
1538 |
---- /dev/null |
1539 |
-+++ b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/config-x86_64-pc-linux-gnu |
1540 |
-@@ -0,0 +1 @@ |
1541 |
-+CURRENT=x86_64-pc-linux-gnu-4.9.3 |
1542 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3 b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3 |
1543 |
-new file mode 100644 |
1544 |
-index 0000000000..9ff406284f |
1545 |
---- /dev/null |
1546 |
-+++ b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/env.d/gcc/x86_64-pc-linux-gnu-4.9.3 |
1547 |
-@@ -0,0 +1,10 @@ |
1548 |
-+PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3" |
1549 |
-+ROOTPATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3" |
1550 |
-+GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/4.9.3" |
1551 |
-+LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3:/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32" |
1552 |
-+MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/man" |
1553 |
-+INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/4.9.3/info" |
1554 |
-+STDCXX_INCDIR="g++-v4" |
1555 |
-+CTARGET="x86_64-pc-linux-gnu" |
1556 |
-+GCC_SPECS="" |
1557 |
-+MULTIOSDIRS="../lib64:../lib32" |
1558 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/gentoo-release b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/gentoo-release |
1559 |
-new file mode 100644 |
1560 |
-index 0000000000..5f0944f7d9 |
1561 |
---- /dev/null |
1562 |
-+++ b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/etc/gentoo-release |
1563 |
-@@ -0,0 +1 @@ |
1564 |
-+Gentoo Base System release 2.3 |
1565 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/include/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/include/.keep |
1566 |
-new file mode 100644 |
1567 |
-index 0000000000..e69de29bb2 |
1568 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32/crtbegin.o |
1569 |
-new file mode 100644 |
1570 |
-index 0000000000..e69de29bb2 |
1571 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/crtbegin.o |
1572 |
-new file mode 100644 |
1573 |
-index 0000000000..e69de29bb2 |
1574 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/.keep |
1575 |
-new file mode 100644 |
1576 |
-index 0000000000..e69de29bb2 |
1577 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32/crtbegin.o |
1578 |
-new file mode 100644 |
1579 |
-index 0000000000..e69de29bb2 |
1580 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/32/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/32/crtbegin.o |
1581 |
-new file mode 100644 |
1582 |
-index 0000000000..e69de29bb2 |
1583 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/crtbegin.o |
1584 |
-new file mode 100644 |
1585 |
-index 0000000000..e69de29bb2 |
1586 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/g++-v5.4.0/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/include/g++-v5.4.0/.keep |
1587 |
-new file mode 100644 |
1588 |
-index 0000000000..e69de29bb2 |
1589 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/x32/crtbegin.o b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/lib/gcc/x86_64-pc-linux-gnu/5.4.0/x32/crtbegin.o |
1590 |
-new file mode 100644 |
1591 |
-index 0000000000..e69de29bb2 |
1592 |
-diff --git a/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/x86_64-pc-linux-gnu/lib/.keep b/tools/clang/test/Driver/Inputs/gentoo_linux_gcc_multi_version_tree/usr/x86_64-pc-linux-gnu/lib/.keep |
1593 |
-new file mode 100644 |
1594 |
-index 0000000000..e69de29bb2 |
1595 |
-diff --git a/tools/clang/test/Driver/linux-header-search.cpp b/tools/clang/test/Driver/linux-header-search.cpp |
1596 |
-index 5f6ac504a0..274895fb4f 100644 |
1597 |
---- a/tools/clang/test/Driver/linux-header-search.cpp |
1598 |
-+++ b/tools/clang/test/Driver/linux-header-search.cpp |
1599 |
-@@ -301,6 +301,48 @@ |
1600 |
- // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/include" |
1601 |
- // CHECK-GENTOO-4-9-3: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
1602 |
- // |
1603 |
-+// Test support for Gentoo's gcc-config -- clang should prefer the older |
1604 |
-+// (4.9.3) version over the newer (5.4.0) due to preference specified |
1605 |
-+// in /etc/env.d/gcc/x86_64-pc-linux-gnu. |
1606 |
-+// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
1607 |
-+// RUN: -target x86_64-unknown-linux-gnu -stdlib=libstdc++ \ |
1608 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1609 |
-+// RUN: --gcc-toolchain="" \ |
1610 |
-+// RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3 %s |
1611 |
-+// |
1612 |
-+// Test that gcc-config support does not break multilib. |
1613 |
-+// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
1614 |
-+// RUN: -target x86_64-unknown-linux-gnux32 -stdlib=libstdc++ \ |
1615 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1616 |
-+// RUN: --gcc-toolchain="" \ |
1617 |
-+// RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-X32 %s |
1618 |
-+// CHECK-GENTOO-4-9-3-X32: "{{.*}}clang{{.*}}" "-cc1" |
1619 |
-+// CHECK-GENTOO-4-9-3-X32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
1620 |
-+// CHECK-GENTOO-4-9-3-X32: "-isysroot" "[[SYSROOT:[^"]+]]" |
1621 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" |
1622 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/x32" |
1623 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward" |
1624 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
1625 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
1626 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
1627 |
-+// CHECK-GENTOO-4-9-3-X32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
1628 |
-+// |
1629 |
-+// RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
1630 |
-+// RUN: -target i386-unknown-linux-gnu -stdlib=libstdc++ \ |
1631 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1632 |
-+// RUN: --gcc-toolchain="" \ |
1633 |
-+// RUN: | FileCheck --check-prefix=CHECK-GENTOO-4-9-3-32 %s |
1634 |
-+// CHECK-GENTOO-4-9-3-32: "{{.*}}clang{{.*}}" "-cc1" |
1635 |
-+// CHECK-GENTOO-4-9-3-32: "-resource-dir" "[[RESOURCE_DIR:[^"]+]]" |
1636 |
-+// CHECK-GENTOO-4-9-3-32: "-isysroot" "[[SYSROOT:[^"]+]]" |
1637 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3" |
1638 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/x86_64-pc-linux-gnu/32" |
1639 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/include/g++-v4.9.3/backward" |
1640 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[SYSROOT]]/usr/local/include" |
1641 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-isystem" "[[RESOURCE_DIR]]{{/|\\\\}}include" |
1642 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/include" |
1643 |
-+// CHECK-GENTOO-4-9-3-32: "-internal-externc-isystem" "[[SYSROOT]]/usr/include" |
1644 |
-+// |
1645 |
- // Check header search on Debian 6 / MIPS64 |
1646 |
- // RUN: %clang -no-canonical-prefixes %s -### -fsyntax-only 2>&1 \ |
1647 |
- // RUN: -target mips64-unknown-linux-gnuabi64 -stdlib=libstdc++ \ |
1648 |
-diff --git a/tools/clang/test/Driver/linux-ld.c b/tools/clang/test/Driver/linux-ld.c |
1649 |
-index f9f4b482c9..ee995ac2d6 100644 |
1650 |
---- a/tools/clang/test/Driver/linux-ld.c |
1651 |
-+++ b/tools/clang/test/Driver/linux-ld.c |
1652 |
-@@ -1650,3 +1650,56 @@ |
1653 |
- // CHECK-MUSL-ARMEBHF: "-dynamic-linker" "/lib/ld-musl-armebhf.so.1" |
1654 |
- // CHECK-MUSL-AARCH64: "-dynamic-linker" "/lib/ld-musl-aarch64.so.1" |
1655 |
- // CHECK-MUSL-AARCH64_BE: "-dynamic-linker" "/lib/ld-musl-aarch64_be.so.1" |
1656 |
-+ |
1657 |
-+// Check whether multilib gcc install works fine on Gentoo with gcc-config |
1658 |
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1659 |
-+// RUN: --target=x86_64-unknown-linux-gnu -rtlib=platform \ |
1660 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1661 |
-+// RUN: --gcc-toolchain="" \ |
1662 |
-+// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO %s |
1663 |
-+// CHECK-LD-GENTOO-NOT: warning: |
1664 |
-+// CHECK-LD-GENTOO: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" |
1665 |
-+// CHECK-LD-GENTOO: "--eh-frame-hdr" |
1666 |
-+// CHECK-LD-GENTOO: "-m" "elf_x86_64" |
1667 |
-+// CHECK-LD-GENTOO: "-dynamic-linker" |
1668 |
-+// CHECK-LD-GENTOO: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3{{/|\\\\}}crtbegin.o" |
1669 |
-+// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3" |
1670 |
-+// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" |
1671 |
-+// CHECK-LD-GENTOO: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.." |
1672 |
-+// CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1673 |
-+// CHECK-LD-GENTOO: "-lc" |
1674 |
-+// CHECK-LD-GENTOO: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1675 |
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1676 |
-+// RUN: --target=i686-unknown-linux-gnu -rtlib=platform \ |
1677 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1678 |
-+// RUN: --gcc-toolchain="" \ |
1679 |
-+// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-32 %s |
1680 |
-+// CHECK-LD-GENTOO-32-NOT: warning: |
1681 |
-+// CHECK-LD-GENTOO-32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" |
1682 |
-+// CHECK-LD-GENTOO-32: "--eh-frame-hdr" |
1683 |
-+// CHECK-LD-GENTOO-32: "-m" "elf_i386" |
1684 |
-+// CHECK-LD-GENTOO-32: "-dynamic-linker" |
1685 |
-+// CHECK-LD-GENTOO-32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32{{/|\\\\}}crtbegin.o" |
1686 |
-+// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/32" |
1687 |
-+// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" |
1688 |
-+// CHECK-LD-GENTOO-32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.." |
1689 |
-+// CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1690 |
-+// CHECK-LD-GENTOO-32: "-lc" |
1691 |
-+// CHECK-LD-GENTOO-32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1692 |
-+// RUN: %clang -no-canonical-prefixes %s -### -o %t.o 2>&1 \ |
1693 |
-+// RUN: --target=x86_64-unknown-linux-gnux32 -rtlib=platform \ |
1694 |
-+// RUN: --sysroot=%S/Inputs/gentoo_linux_gcc_multi_version_tree \ |
1695 |
-+// RUN: --gcc-toolchain="" \ |
1696 |
-+// RUN: | FileCheck --check-prefix=CHECK-LD-GENTOO-X32 %s |
1697 |
-+// CHECK-LD-GENTOO-X32-NOT: warning: |
1698 |
-+// CHECK-LD-GENTOO-X32: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]" |
1699 |
-+// CHECK-LD-GENTOO-X32: "--eh-frame-hdr" |
1700 |
-+// CHECK-LD-GENTOO-X32: "-m" "elf32_x86_64" |
1701 |
-+// CHECK-LD-GENTOO-X32: "-dynamic-linker" |
1702 |
-+// CHECK-LD-GENTOO-X32: "{{.*}}/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32{{/|\\\\}}crtbegin.o" |
1703 |
-+// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/x32" |
1704 |
-+// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../../../x86_64-pc-linux-gnu/lib" |
1705 |
-+// CHECK-LD-GENTOO-X32: "-L[[SYSROOT]]/usr/lib/gcc/x86_64-pc-linux-gnu/4.9.3/../../.." |
1706 |
-+// CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1707 |
-+// CHECK-LD-GENTOO-X32: "-lc" |
1708 |
-+// CHECK-LD-GENTOO-X32: "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" |
1709 |
--- |
1710 |
-2.11.0 |
1711 |
- |
1712 |
|
1713 |
diff --git a/sys-devel/llvm/files/3.9.1/compiler-rt/0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch b/sys-devel/llvm/files/3.9.1/compiler-rt/0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch |
1714 |
deleted file mode 100644 |
1715 |
index 269a9a17ad1..00000000000 |
1716 |
--- a/sys-devel/llvm/files/3.9.1/compiler-rt/0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch |
1717 |
+++ /dev/null |
1718 |
@@ -1,25 +0,0 @@ |
1719 |
-From 8bd62a681744d3c31a0837c0f84f99ea4987e017 Mon Sep 17 00:00:00 2001 |
1720 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
1721 |
-Date: Tue, 9 Jun 2015 12:17:57 +0200 |
1722 |
-Subject: [PATCH] cmake: Install compiler-rt into /usr/lib (without suffix) |
1723 |
- |
1724 |
---- |
1725 |
- CMakeLists.txt | 2 +- |
1726 |
- 1 file changed, 1 insertion(+), 1 deletion(-) |
1727 |
- |
1728 |
-diff --git a/CMakeLists.txt b/CMakeLists.txt |
1729 |
-index 0d8a880..5ae98a9 100644 |
1730 |
---- a/projects/compiler-rt/cmake/base-config-ix.cmake |
1731 |
-+++ b/projects/compiler-rt/cmake/base-config-ix.cmake |
1732 |
-@@ -52,7 +52,7 @@ if (NOT COMPILER_RT_STANDALONE_BUILD) |
1733 |
- # Setup the paths where compiler-rt runtimes and headers should be stored. |
1734 |
- set(COMPILER_RT_OUTPUT_DIR ${LLVM_LIBRARY_OUTPUT_INTDIR}/clang/${CLANG_VERSION}) |
1735 |
- set(COMPILER_RT_EXEC_OUTPUT_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR}) |
1736 |
-- set(COMPILER_RT_INSTALL_PATH lib${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION}) |
1737 |
-+ set(COMPILER_RT_INSTALL_PATH lib/clang/${CLANG_VERSION}) |
1738 |
- option(COMPILER_RT_INCLUDE_TESTS "Generate and build compiler-rt unit tests." |
1739 |
- ${LLVM_INCLUDE_TESTS}) |
1740 |
- option(COMPILER_RT_ENABLE_WERROR "Fail and stop if warning is triggered" |
1741 |
--- |
1742 |
-2.4.3 |
1743 |
- |
1744 |
|
1745 |
diff --git a/sys-devel/llvm/files/3.9.1/lldb/six.patch b/sys-devel/llvm/files/3.9.1/lldb/six.patch |
1746 |
deleted file mode 100644 |
1747 |
index 324f2b8935b..00000000000 |
1748 |
--- a/sys-devel/llvm/files/3.9.1/lldb/six.patch |
1749 |
+++ /dev/null |
1750 |
@@ -1,13 +0,0 @@ |
1751 |
-diff -Naur llvm-3.8.0.src.orig/tools/lldb/scripts/Python/finishSwigPythonLLDB.py llvm-3.8.0.src/tools/lldb/scripts/Python/finishSwigPythonLLDB.py |
1752 |
---- llvm-3.8.0.src.orig/tools/lldb/scripts/Python/finishSwigPythonLLDB.py 2015-12-11 16:43:36.000000000 +0100 |
1753 |
-+++ llvm-3.8.0.src/tools/lldb/scripts/Python/finishSwigPythonLLDB.py 2016-03-09 14:12:15.614483414 +0100 |
1754 |
-@@ -720,9 +720,6 @@ |
1755 |
- bOk, strMsg = create_symlinks(vDictArgs, strFrameworkPythonDir) |
1756 |
- |
1757 |
- if bOk: |
1758 |
-- bOk, strMsg = copy_six(vDictArgs, strFrameworkPythonDir) |
1759 |
-- |
1760 |
-- if bOk: |
1761 |
- bOk, strMsg = copy_lldbpy_file_to_lldb_pkg_dir(vDictArgs, |
1762 |
- strFrameworkPythonDir, |
1763 |
- strCfgBldDir) |
1764 |
|
1765 |
diff --git a/sys-devel/llvm/files/3.9.1/llvm-config-r1.patch b/sys-devel/llvm/files/3.9.1/llvm-config-r1.patch |
1766 |
deleted file mode 100644 |
1767 |
index 38505f15b09..00000000000 |
1768 |
--- a/sys-devel/llvm/files/3.9.1/llvm-config-r1.patch |
1769 |
+++ /dev/null |
1770 |
@@ -1,73 +0,0 @@ |
1771 |
-From 7422ff662be0daeb3931fde397f1fed8ff86c50d Mon Sep 17 00:00:00 2001 |
1772 |
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@g.o> |
1773 |
-Date: Sat, 20 Aug 2016 23:47:41 +0200 |
1774 |
-Subject: [PATCH] llvm-config: Clean up exported values, update for shared |
1775 |
- linking |
1776 |
- |
1777 |
-Gentoo-specific fixup for llvm-config, including: |
1778 |
-- wiping build-specific CFLAGS, CXXFLAGS, |
1779 |
-- updating library suffixes for shared libs, |
1780 |
-- wiping --system-libs for shared linking, |
1781 |
-- making --src-root return invalid path (/dev/null), |
1782 |
-- making --build-mode return "Release" rather than "Gentoo". |
1783 |
- |
1784 |
-Thanks to Steven Newbury for the initial patch. |
1785 |
- |
1786 |
-Bug: https://bugs.gentoo.org/565358 |
1787 |
-Bug: https://bugs.gentoo.org/501684 |
1788 |
---- |
1789 |
- tools/llvm-config/CMakeLists.txt | 11 ++++++++--- |
1790 |
- tools/llvm-config/llvm-config.cpp | 9 +++++++-- |
1791 |
- 2 files changed, 15 insertions(+), 5 deletions(-) |
1792 |
- |
1793 |
-diff --git a/tools/llvm-config/CMakeLists.txt b/tools/llvm-config/CMakeLists.txt |
1794 |
-index 83794bb..eba6f45 100644 |
1795 |
---- a/tools/llvm-config/CMakeLists.txt |
1796 |
-+++ b/tools/llvm-config/CMakeLists.txt |
1797 |
-@@ -23,6 +23,10 @@ set(LLVM_SRC_ROOT ${LLVM_MAIN_SRC_DIR}) |
1798 |
- set(LLVM_OBJ_ROOT ${LLVM_BINARY_DIR}) |
1799 |
- set(LLVM_CPPFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_CPP_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
1800 |
--set(LLVM_CFLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
1801 |
--set(LLVM_CXXFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${COMPILE_FLAGS} ${LLVM_DEFINITIONS}") |
1802 |
-+# Just use CMAKE_CPP_FLAGS for CFLAGS and CXXFLAGS, otherwise compiler |
1803 |
-+# specific flags will be set when we don't know what compiler will be used |
1804 |
-+# with external project utilising llvm-config. C++ Standard is required. |
1805 |
-+# TODO: figure out if we can remove -std=c++11 and move it to revdeps. |
1806 |
-+set(LLVM_CFLAGS "${CMAKE_CPP_FLAGS} ${CMAKE_C_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
1807 |
-+set(LLVM_CXXFLAGS "${CMAKE_CPP_FLAGS} -std=c++11 ${CMAKE_CXX_FLAGS_${uppercase_CMAKE_BUILD_TYPE}} ${LLVM_DEFINITIONS}") |
1808 |
- set(LLVM_BUILD_SYSTEM cmake) |
1809 |
- set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) |
1810 |
-@@ -31,5 +35,6 @@ set(LLVM_HAS_RTTI ${LLVM_CONFIG_HAS_RTTI}) |
1811 |
- set(LLVM_LDFLAGS "${CMAKE_CXX_LINK_FLAGS}") |
1812 |
- set(LLVM_BUILDMODE ${CMAKE_BUILD_TYPE}) |
1813 |
--set(LLVM_SYSTEM_LIBS ${SYSTEM_LIBS}) |
1814 |
-+# We don't do static libs, so we don't need to supply any system-libs |
1815 |
-+set(LLVM_SYSTEM_LIBS "") |
1816 |
- if(BUILD_SHARED_LIBS) |
1817 |
- set(LLVM_ENABLE_SHARED ON) |
1818 |
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp |
1819 |
-index 80f6279..309c5dc 100644 |
1820 |
---- a/tools/llvm-config/llvm-config.cpp |
1821 |
-+++ b/tools/llvm-config/llvm-config.cpp |
1822 |
-@@ -485,5 +485,6 @@ int main(int argc, char **argv) { |
1823 |
- OS << Triple::normalize(LLVM_DEFAULT_TARGET_TRIPLE) << '\n'; |
1824 |
- } else if (Arg == "--build-mode") { |
1825 |
-- OS << build_mode << '\n'; |
1826 |
-+ // force Release since we force non-standard Gentoo build mode |
1827 |
-+ OS << "Release" << '\n'; |
1828 |
- } else if (Arg == "--assertion-mode") { |
1829 |
- #if defined(NDEBUG) |
1830 |
-@@ -501,5 +502,9 @@ int main(int argc, char **argv) { |
1831 |
- OS << ActivePrefix << '\n'; |
1832 |
- } else if (Arg == "--src-root") { |
1833 |
-- OS << LLVM_SRC_ROOT << '\n'; |
1834 |
-+ if (IsInDevelopmentTree) { |
1835 |
-+ OS << LLVM_SRC_ROOT << '\n'; |
1836 |
-+ } else { |
1837 |
-+ OS << "/dev/null\n"; |
1838 |
-+ } |
1839 |
- } else { |
1840 |
- usage(); |
1841 |
--- |
1842 |
-2.9.3 |
1843 |
- |
1844 |
|
1845 |
diff --git a/sys-devel/llvm/llvm-3.9.1-r1.ebuild b/sys-devel/llvm/llvm-3.9.1-r1.ebuild |
1846 |
index 93472a5a842..b8a917ab13e 100644 |
1847 |
--- a/sys-devel/llvm/llvm-3.9.1-r1.ebuild |
1848 |
+++ b/sys-devel/llvm/llvm-3.9.1-r1.ebuild |
1849 |
@@ -16,7 +16,8 @@ SRC_URI="http://llvm.org/releases/${PV}/${P}.src.tar.xz |
1850 |
http://llvm.org/releases/${PV}/cfe-${PV}.src.tar.xz |
1851 |
http://llvm.org/releases/${PV}/clang-tools-extra-${PV}.src.tar.xz ) |
1852 |
lldb? ( http://llvm.org/releases/${PV}/lldb-${PV}.src.tar.xz ) |
1853 |
- !doc? ( http://dev.gentoo.org/~mgorny/dist/${PN}-3.9.0_rc3-manpages.tar.bz2 )" |
1854 |
+ !doc? ( https://dev.gentoo.org/~mgorny/dist/llvm/${PN}-3.9.0_rc3-manpages.tar.bz2 ) |
1855 |
+ https://dev.gentoo.org/~mgorny/dist/llvm/${P}-patchset.tar.xz" |
1856 |
|
1857 |
# Keep in sync with CMakeLists.txt |
1858 |
ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Mips MSP430 |
1859 |
@@ -165,35 +166,35 @@ src_prepare() { |
1860 |
python_setup |
1861 |
|
1862 |
# Fix libdir for ocaml bindings install, bug #559134 |
1863 |
- eapply "${FILESDIR}"/3.9.1/0001-cmake-Install-OCaml-modules-into-correct-package-loc.patch |
1864 |
+ eapply "${WORKDIR}/${P}-patchset"/0001-cmake-Install-OCaml-modules-into-correct-package-loc.patch |
1865 |
# Do not build/install ocaml docs with USE=-doc, bug #562008 |
1866 |
- eapply "${FILESDIR}"/3.9.1/0002-cmake-Make-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch |
1867 |
+ eapply "${WORKDIR}/${P}-patchset"/0002-cmake-Make-OCaml-docs-dependent-on-LLVM_BUILD_DOCS.patch |
1868 |
|
1869 |
# Make it possible to override Sphinx HTML install dirs |
1870 |
# https://llvm.org/bugs/show_bug.cgi?id=23780 |
1871 |
- eapply "${FILESDIR}"/3.9.1/0003-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch |
1872 |
+ eapply "${WORKDIR}/${P}-patchset"/0003-cmake-Support-overriding-Sphinx-HTML-doc-install-dir.patch |
1873 |
|
1874 |
# Prevent race conditions with parallel Sphinx runs |
1875 |
# https://llvm.org/bugs/show_bug.cgi?id=23781 |
1876 |
- eapply "${FILESDIR}"/3.9.1/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch |
1877 |
+ eapply "${WORKDIR}/${P}-patchset"/0004-cmake-Use-separate-doctrees-to-prevent-races-between.patch |
1878 |
|
1879 |
# Allow custom cmake build types (like 'Gentoo') |
1880 |
- eapply "${FILESDIR}"/3.9.1/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch |
1881 |
+ eapply "${WORKDIR}/${P}-patchset"/0006-cmake-Remove-the-CMAKE_BUILD_TYPE-assertion.patch |
1882 |
|
1883 |
# Fix llvm-config for shared linking and sane flags |
1884 |
# https://bugs.gentoo.org/show_bug.cgi?id=565358 |
1885 |
- eapply "${FILESDIR}"/3.9.1/llvm-config-r1.patch |
1886 |
+ eapply "${WORKDIR}/${P}-patchset"/llvm-config-r1.patch |
1887 |
|
1888 |
# Restore SOVERSIONs for shared libraries |
1889 |
# https://bugs.gentoo.org/show_bug.cgi?id=578392 |
1890 |
- eapply "${FILESDIR}"/3.9.1/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch |
1891 |
+ eapply "${WORKDIR}/${P}-patchset"/0008-cmake-Reintroduce-ldconfig-compatible-SOVERSIONs-on-.patch |
1892 |
|
1893 |
# Revert commit breaking AMDGPU |
1894 |
# https://bugs.gentoo.org/show_bug.cgi?id=603858 |
1895 |
- eapply "${FILESDIR}"/3.9.1/0009-Revert-AMDGPU-Fix-an-interaction-between-WQM-and-pol.patch |
1896 |
+ eapply "${WORKDIR}/${P}-patchset"/0009-Revert-AMDGPU-Fix-an-interaction-between-WQM-and-pol.patch |
1897 |
|
1898 |
# support building llvm against musl-libc |
1899 |
- use elibc_musl && eapply "${FILESDIR}"/9999/musl-fixes.patch |
1900 |
+ use elibc_musl && eapply "${WORKDIR}/${P}-patchset"/musl-fixes.patch |
1901 |
|
1902 |
# disable use of SDK on OSX, bug #568758 |
1903 |
sed -i -e 's/xcrun/false/' utils/lit/lit/util.py || die |
1904 |
@@ -203,16 +204,16 @@ src_prepare() { |
1905 |
|
1906 |
if use clang; then |
1907 |
# Automatically select active system GCC's libraries, bugs #406163 and #417913 |
1908 |
- eapply "${FILESDIR}"/3.9.1/clang/gcc-config.patch |
1909 |
+ eapply "${WORKDIR}/${P}-patchset"/clang/gcc-config.patch |
1910 |
|
1911 |
- eapply "${FILESDIR}"/3.9.1/clang/darwin_prefix-include-paths.patch |
1912 |
+ eapply "${WORKDIR}/${P}-patchset"/clang/darwin_prefix-include-paths.patch |
1913 |
eprefixify tools/clang/lib/Frontend/InitHeaderSearch.cpp |
1914 |
|
1915 |
- eapply "${FILESDIR}"/3.8.1/compiler-rt/darwin-default-sysroot.patch |
1916 |
+ eapply "${WORKDIR}/${P}-patchset"/compiler-rt/darwin-default-sysroot.patch |
1917 |
|
1918 |
pushd "${S}"/tools/clang >/dev/null || die |
1919 |
# be able to specify default values for -stdlib and -rtlib at build time |
1920 |
- eapply "${FILESDIR}"/3.9.1/clang/default-libs.patch |
1921 |
+ eapply "${WORKDIR}/${P}-patchset"/clang/default-libs.patch |
1922 |
popd >/dev/null || die |
1923 |
|
1924 |
sed -i -e "s^@EPREFIX@^${EPREFIX}^" \ |
1925 |
@@ -220,13 +221,13 @@ src_prepare() { |
1926 |
|
1927 |
# Install clang runtime into /usr/lib/clang |
1928 |
# https://llvm.org/bugs/show_bug.cgi?id=23792 |
1929 |
- eapply "${FILESDIR}"/3.9.1/clang/0001-Install-clang-runtime-into-usr-lib-without-suffix.patch |
1930 |
- eapply "${FILESDIR}"/3.9.1/compiler-rt/0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch |
1931 |
+ eapply "${WORKDIR}/${P}-patchset"/clang/0001-Install-clang-runtime-into-usr-lib-without-suffix.patch |
1932 |
+ eapply "${WORKDIR}/${P}-patchset"/compiler-rt/0001-cmake-Install-compiler-rt-into-usr-lib-without-suffi.patch |
1933 |
|
1934 |
# Make it possible to override CLANG_LIBDIR_SUFFIX |
1935 |
# (that is used only to find LLVMgold.so) |
1936 |
# https://llvm.org/bugs/show_bug.cgi?id=23793 |
1937 |
- eapply "${FILESDIR}"/3.9.1/clang/0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch |
1938 |
+ eapply "${WORKDIR}/${P}-patchset"/clang/0002-cmake-Make-CLANG_LIBDIR_SUFFIX-overridable.patch |
1939 |
|
1940 |
# Fix git-clang-format shebang, bug #562688 |
1941 |
python_fix_shebang tools/clang/tools/clang-format/git-clang-format |
1942 |
@@ -247,7 +248,7 @@ src_prepare() { |
1943 |
sed -e 's/add_subdirectory(readline)/#&/' \ |
1944 |
-i tools/lldb/scripts/Python/modules/CMakeLists.txt || die |
1945 |
# Do not install bundled six module |
1946 |
- eapply "${FILESDIR}"/3.9.1/lldb/six.patch |
1947 |
+ eapply "${WORKDIR}/${P}-patchset"/lldb/six.patch |
1948 |
fi |
1949 |
|
1950 |
# User patches |