Gentoo Archives: gentoo-commits

From: "Michał Górny" <mgorny@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/llvm/files/3.9.1/lldb/, sys-devel/llvm/files/3.9.1/compiler-rt/, ...
Date: Sat, 03 Jun 2017 10:28:11
Message-Id: 1496485674.75f8d3f4c6e73272bb6d4be4273130a1955d187e.mgorny@gentoo
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