Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-util/b2/files/, dev-util/b2/
Date: Sat, 03 Sep 2022 21:53:38
Message-Id: 1662242005.75588ea638ff1269cc7c880027c0dd797e85cfd3.soap@gentoo
1 commit: 75588ea638ff1269cc7c880027c0dd797e85cfd3
2 Author: David Seifert <soap <AT> gentoo <DOT> org>
3 AuthorDate: Sat Sep 3 21:53:25 2022 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Sat Sep 3 21:53:25 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75588ea6
7
8 dev-util/b2: new package, add 4.9.2
9
10 Signed-off-by: David Seifert <soap <AT> gentoo.org>
11
12 dev-util/b2/Manifest | 1 +
13 dev-util/b2/b2-4.9.2.ebuild | 64 +++++++++
14 .../files/b2-4.9.2-add-none-feature-options.patch | 22 +++
15 .../files/b2-4.9.2-darwin-gentoo-toolchain.patch | 16 +++
16 .../b2/files/b2-4.9.2-disable_python_rpath.patch | 11 ++
17 .../files/b2-4.9.2-no-implicit-march-flags.patch | 148 +++++++++++++++++++++
18 dev-util/b2/files/b2-4.9.2-odr.patch | 54 ++++++++
19 .../b2/files/b2-4.9.2-respect-user-flags.patch | 11 ++
20 dev-util/b2/files/site-config.jam | 11 ++
21 dev-util/b2/metadata.xml | 11 ++
22 10 files changed, 349 insertions(+)
23
24 diff --git a/dev-util/b2/Manifest b/dev-util/b2/Manifest
25 new file mode 100644
26 index 000000000000..1879967af9e4
27 --- /dev/null
28 +++ b/dev-util/b2/Manifest
29 @@ -0,0 +1 @@
30 +DIST b2-4.9.2.tar.gz 975882 BLAKE2B 83c2ef85c9f1ae20922541ca8c344316f1660ee069426e3a9907c0a19e1c94db470c67d0c29a1f31788eddb86ab414ab06b9713f8ea53d974d1d8f0ca29f4aa5 SHA512 eab180770608b863dcf6a5fbc626e1733cf4353cf62f4189bd28258a03591fdb7853f5dddb4d3dad60f1bb06db5415025b792a30c2c65f7b1278f61e33f903e3
31
32 diff --git a/dev-util/b2/b2-4.9.2.ebuild b/dev-util/b2/b2-4.9.2.ebuild
33 new file mode 100644
34 index 000000000000..87941672b2d5
35 --- /dev/null
36 +++ b/dev-util/b2/b2-4.9.2.ebuild
37 @@ -0,0 +1,64 @@
38 +# Copyright 1999-2022 Gentoo Authors
39 +# Distributed under the terms of the GNU General Public License v2
40 +
41 +EAPI=8
42 +
43 +inherit flag-o-matic toolchain-funcs
44 +
45 +MY_PV="$(ver_rs 1- _)"
46 +
47 +DESCRIPTION="A system for large project software construction, simple to use and powerful"
48 +HOMEPAGE="https://www.bfgroup.xyz/b2/"
49 +SRC_URI="https://github.com/bfgroup/b2/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
50 +S="${WORKDIR}/${P}/src"
51 +
52 +LICENSE="Boost-1.0"
53 +SLOT="0"
54 +#KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
55 +IUSE="examples"
56 +RESTRICT="test"
57 +
58 +RDEPEND="!dev-util/boost-build"
59 +
60 +PATCHES=(
61 + "${FILESDIR}"/${PN}-4.9.2-disable_python_rpath.patch
62 + "${FILESDIR}"/${PN}-4.9.2-darwin-gentoo-toolchain.patch
63 + "${FILESDIR}"/${PN}-4.9.2-add-none-feature-options.patch
64 + "${FILESDIR}"/${PN}-4.9.2-respect-user-flags.patch
65 + "${FILESDIR}"/${PN}-4.9.2-no-implicit-march-flags.patch
66 + "${FILESDIR}"/${PN}-4.9.2-odr.patch
67 +)
68 +
69 +src_configure() {
70 + # need to enable LFS explicitly for 64-bit offsets on 32-bit hosts (#761100)
71 + append-lfs-flags
72 +}
73 +
74 +src_compile() {
75 + cd engine || die
76 + ${CONFIG_SHELL:-${BASH}} ./build.sh cxx --cxx="$(tc-getCXX)" --cxxflags="${CXXFLAGS}" -d+2 --without-python || die "building b2 failed"
77 +}
78 +
79 +src_test() {
80 + # Forget tests, b2 is a lost cause
81 + :
82 +}
83 +
84 +src_install() {
85 + dobin engine/b2
86 +
87 + insinto /usr/share/b2/src
88 + doins -r "${FILESDIR}/site-config.jam" \
89 + bootstrap.jam build-system.jam ../example/user-config.jam \
90 + build kernel options tools util
91 +
92 + find "${ED}"/usr/share/b2/src -iname '*.py' -delete || die
93 +
94 + dodoc ../notes/{changes,release_procedure,build_dir_option,relative_source_paths}.txt
95 +
96 + if use examples; then
97 + docinto examples
98 + dodoc -r ../example/.
99 + docompress -x /usr/share/doc/${PF}/examples
100 + fi
101 +}
102
103 diff --git a/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch b/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch
104 new file mode 100644
105 index 000000000000..620dea0af51b
106 --- /dev/null
107 +++ b/dev-util/b2/files/b2-4.9.2-add-none-feature-options.patch
108 @@ -0,0 +1,22 @@
109 +--- a/tools/features/debug-feature.jam
110 ++++ b/tools/features/debug-feature.jam
111 +@@ -18,7 +18,7 @@ common usage is to build release variant with debugging information.
112 + |# # end::doc[]
113 +
114 + feature.feature debug-symbols
115 +- : on off
116 ++ : on off none
117 + : propagated ;
118 +
119 + #| tag::prof-doc[]
120 +--- a/tools/features/optimization-feature.jam
121 ++++ b/tools/features/optimization-feature.jam
122 +@@ -16,7 +16,7 @@ smaller binary.
123 + |# # end::doc[]
124 +
125 + feature.feature optimization
126 +- : off speed space minimal debug
127 ++ : off none speed space minimal debug
128 + : propagated ;
129 +
130 + #| tag::inline-doc[]
131
132 diff --git a/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch b/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch
133 new file mode 100644
134 index 000000000000..8de98014dbdc
135 --- /dev/null
136 +++ b/dev-util/b2/files/b2-4.9.2-darwin-gentoo-toolchain.patch
137 @@ -0,0 +1,16 @@
138 +Avoid adding all kinds of things to the toolchain's flags that within
139 +Gentoo (Prefix) we really shouldn't, such as sysroot, deployment target,
140 +arch, etc.
141 +
142 +--- a/tools/darwin.jam
143 ++++ b/tools/darwin.jam
144 +@@ -240,6 +240,9 @@
145 + }
146 + }
147 +
148 ++ # leave compiler flags etc. up to the toolchain
149 ++ return $(version-feature) ;
150 ++
151 + if $(version-feature)
152 + {
153 + if $(.debug-configuration)
154
155 diff --git a/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch b/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch
156 new file mode 100644
157 index 000000000000..b7b47cc93a47
158 --- /dev/null
159 +++ b/dev-util/b2/files/b2-4.9.2-disable_python_rpath.patch
160 @@ -0,0 +1,11 @@
161 +--- a/tools/python.jam
162 ++++ b/tools/python.jam
163 +@@ -1000,7 +1000,7 @@
164 + # linux).
165 + : $(usage-requirements)
166 + <testing.launcher>$(set-PYTHONPATH)
167 +- <library-path>$(libraries) <dll-path>$(dll-path) <library>python.lib
168 ++ <library-path>$(libraries) <library>python.lib
169 + ;
170 + }
171 +
172
173 diff --git a/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch b/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch
174 new file mode 100644
175 index 000000000000..2845d6e52f84
176 --- /dev/null
177 +++ b/dev-util/b2/files/b2-4.9.2-no-implicit-march-flags.patch
178 @@ -0,0 +1,148 @@
179 +--- a/tools/gcc.jam
180 ++++ b/tools/gcc.jam
181 +@@ -1131,145 +1131,11 @@ local rule cpu-flags ( toolset variable : architecture : instruction-set + :
182 + # x86 and compatible
183 + # The 'native' option appeared in gcc 4.2 so we cannot safely use it as default.
184 + # Use i686 instead for 32-bit.
185 +-toolset.flags gcc OPTIONS <architecture>x86/<address-model>32/<instruction-set> : -march=i686 ;
186 +-cpu-flags gcc OPTIONS : x86 : native : -march=native ;
187 +-cpu-flags gcc OPTIONS : x86 : i486 : -march=i486 ;
188 +-cpu-flags gcc OPTIONS : x86 : i586 : -march=i586 ;
189 +-cpu-flags gcc OPTIONS : x86 : i686 : -march=i686 ;
190 +-cpu-flags gcc OPTIONS : x86 : pentium : -march=pentium ;
191 +-cpu-flags gcc OPTIONS : x86 : pentium-mmx : -march=pentium-mmx ;
192 +-cpu-flags gcc OPTIONS : x86 : pentiumpro : -march=pentiumpro ;
193 +-cpu-flags gcc OPTIONS : x86 : pentium2 : -march=pentium2 ;
194 +-cpu-flags gcc OPTIONS : x86 : pentium3 : -march=pentium3 ;
195 +-cpu-flags gcc OPTIONS : x86 : pentium3m : -march=pentium3m ;
196 +-cpu-flags gcc OPTIONS : x86 : pentium-m : -march=pentium-m ;
197 +-cpu-flags gcc OPTIONS : x86 : pentium4 : -march=pentium4 ;
198 +-cpu-flags gcc OPTIONS : x86 : pentium4m : -march=pentium4m ;
199 +-cpu-flags gcc OPTIONS : x86 : prescott : -march=prescott ;
200 +-cpu-flags gcc OPTIONS : x86 : nocona : -march=nocona ;
201 +-cpu-flags gcc OPTIONS : x86 : core2 : -march=core2 ;
202 +-cpu-flags gcc OPTIONS : x86 : conroe : -march=core2 ;
203 +-cpu-flags gcc OPTIONS : x86 : conroe-xe : -march=core2 ;
204 +-cpu-flags gcc OPTIONS : x86 : conroe-l : -march=core2 ;
205 +-cpu-flags gcc OPTIONS : x86 : allendale : -march=core2 ;
206 +-cpu-flags gcc OPTIONS : x86 : wolfdale : -march=core2 -msse4.1 ;
207 +-cpu-flags gcc OPTIONS : x86 : merom : -march=core2 ;
208 +-cpu-flags gcc OPTIONS : x86 : merom-xe : -march=core2 ;
209 +-cpu-flags gcc OPTIONS : x86 : kentsfield : -march=core2 ;
210 +-cpu-flags gcc OPTIONS : x86 : kentsfield-xe : -march=core2 ;
211 +-cpu-flags gcc OPTIONS : x86 : yorksfield : -march=core2 ;
212 +-cpu-flags gcc OPTIONS : x86 : penryn : -march=core2 ;
213 +-cpu-flags gcc OPTIONS : x86 : corei7 : -march=corei7 ;
214 +-cpu-flags gcc OPTIONS : x86 : nehalem : -march=corei7 ;
215 +-cpu-flags gcc OPTIONS : x86 : corei7-avx : -march=corei7-avx ;
216 +-cpu-flags gcc OPTIONS : x86 : sandy-bridge : -march=corei7-avx ;
217 +-cpu-flags gcc OPTIONS : x86 : core-avx-i : -march=core-avx-i ;
218 +-cpu-flags gcc OPTIONS : x86 : ivy-bridge : -march=core-avx-i ;
219 +-cpu-flags gcc OPTIONS : x86 : haswell : -march=core-avx-i -mavx2 -mfma -mbmi -mbmi2 -mlzcnt ;
220 +-cpu-flags gcc OPTIONS : x86 : broadwell : -march=broadwell ;
221 +-cpu-flags gcc OPTIONS : x86 : skylake : -march=skylake ;
222 +-cpu-flags gcc OPTIONS : x86 : skylake-avx512 : -march=skylake-avx512 ;
223 +-cpu-flags gcc OPTIONS : x86 : cannonlake : -march=skylake-avx512 -mavx512vbmi -mavx512ifma -msha ;
224 +-cpu-flags gcc OPTIONS : x86 : icelake-client : -march=icelake-client ;
225 +-cpu-flags gcc OPTIONS : x86 : icelake-server : -march=icelake-server ;
226 +-cpu-flags gcc OPTIONS : x86 : cascadelake : -march=skylake-avx512 -mavx512vnni ;
227 +-cpu-flags gcc OPTIONS : x86 : cooperlake : -march=cooperlake ;
228 +-cpu-flags gcc OPTIONS : x86 : tigerlake : -march=tigerlake ;
229 +-cpu-flags gcc OPTIONS : x86 : rocketlake : -march=rocketlake ;
230 +-cpu-flags gcc OPTIONS : x86 : alderlake : -march=alderlake ;
231 +-cpu-flags gcc OPTIONS : x86 : sapphirerapids : -march=sapphirerapids ;
232 +-cpu-flags gcc OPTIONS : x86 : k6 : -march=k6 ;
233 +-cpu-flags gcc OPTIONS : x86 : k6-2 : -march=k6-2 ;
234 +-cpu-flags gcc OPTIONS : x86 : k6-3 : -march=k6-3 ;
235 +-cpu-flags gcc OPTIONS : x86 : athlon : -march=athlon ;
236 +-cpu-flags gcc OPTIONS : x86 : athlon-tbird : -march=athlon-tbird ;
237 +-cpu-flags gcc OPTIONS : x86 : athlon-4 : -march=athlon-4 ;
238 +-cpu-flags gcc OPTIONS : x86 : athlon-xp : -march=athlon-xp ;
239 +-cpu-flags gcc OPTIONS : x86 : athlon-mp : -march=athlon-mp ;
240 + ##
241 +-cpu-flags gcc OPTIONS : x86 : k8 : -march=k8 ;
242 +-cpu-flags gcc OPTIONS : x86 : opteron : -march=opteron ;
243 +-cpu-flags gcc OPTIONS : x86 : athlon64 : -march=athlon64 ;
244 +-cpu-flags gcc OPTIONS : x86 : athlon-fx : -march=athlon-fx ;
245 +-cpu-flags gcc OPTIONS : x86 : k8-sse3 : -march=k8-sse3 ;
246 +-cpu-flags gcc OPTIONS : x86 : opteron-sse3 : -march=opteron-sse3 ;
247 +-cpu-flags gcc OPTIONS : x86 : athlon64-sse3 : -march=athlon64-sse3 ;
248 +-cpu-flags gcc OPTIONS : x86 : amdfam10 : -march=amdfam10 ;
249 +-cpu-flags gcc OPTIONS : x86 : barcelona : -march=barcelona ;
250 +-cpu-flags gcc OPTIONS : x86 : bdver1 : -march=bdver1 ;
251 +-cpu-flags gcc OPTIONS : x86 : bdver2 : -march=bdver2 ;
252 +-cpu-flags gcc OPTIONS : x86 : bdver3 : -march=bdver3 ;
253 +-cpu-flags gcc OPTIONS : x86 : bdver4 : -march=bdver4 ;
254 +-cpu-flags gcc OPTIONS : x86 : btver1 : -march=btver1 ;
255 +-cpu-flags gcc OPTIONS : x86 : btver2 : -march=btver2 ;
256 +-cpu-flags gcc OPTIONS : x86 : znver1 : -march=znver1 ;
257 +-cpu-flags gcc OPTIONS : x86 : znver2 : -march=znver2 ;
258 +-cpu-flags gcc OPTIONS : x86 : znver3 : -march=znver3 ;
259 +-cpu-flags gcc OPTIONS : x86 : winchip-c6 : -march=winchip-c6 ;
260 +-cpu-flags gcc OPTIONS : x86 : winchip2 : -march=winchip2 ;
261 +-cpu-flags gcc OPTIONS : x86 : c3 : -march=c3 ;
262 +-cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
263 +-cpu-flags gcc OPTIONS : x86 : c7 : -march=c7 ;
264 + ##
265 +-cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
266 + # Sparc
267 +-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
268 +-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
269 +-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
270 +-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
271 +-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
272 +-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
273 +-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
274 +-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
275 +-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
276 +-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
277 +-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
278 +-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
279 +-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
280 +-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;
281 + # RS/6000 & PowerPC
282 +-cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ;
283 +-cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ;
284 +-cpu-flags gcc OPTIONS : power : 601 : -mcpu=601 ;
285 +-cpu-flags gcc OPTIONS : power : 602 : -mcpu=602 ;
286 +-cpu-flags gcc OPTIONS : power : 603 : -mcpu=603 ;
287 +-cpu-flags gcc OPTIONS : power : 603e : -mcpu=603e ;
288 +-cpu-flags gcc OPTIONS : power : 604 : -mcpu=604 ;
289 +-cpu-flags gcc OPTIONS : power : 604e : -mcpu=604e ;
290 +-cpu-flags gcc OPTIONS : power : 620 : -mcpu=620 ;
291 +-cpu-flags gcc OPTIONS : power : 630 : -mcpu=630 ;
292 +-cpu-flags gcc OPTIONS : power : 740 : -mcpu=740 ;
293 +-cpu-flags gcc OPTIONS : power : 7400 : -mcpu=7400 ;
294 +-cpu-flags gcc OPTIONS : power : 7450 : -mcpu=7450 ;
295 +-cpu-flags gcc OPTIONS : power : 750 : -mcpu=750 ;
296 +-cpu-flags gcc OPTIONS : power : 801 : -mcpu=801 ;
297 +-cpu-flags gcc OPTIONS : power : 821 : -mcpu=821 ;
298 +-cpu-flags gcc OPTIONS : power : 823 : -mcpu=823 ;
299 +-cpu-flags gcc OPTIONS : power : 860 : -mcpu=860 ;
300 +-cpu-flags gcc OPTIONS : power : 970 : -mcpu=970 ;
301 +-cpu-flags gcc OPTIONS : power : 8540 : -mcpu=8540 ;
302 +-cpu-flags gcc OPTIONS : power : power : -mcpu=power ;
303 +-cpu-flags gcc OPTIONS : power : power2 : -mcpu=power2 ;
304 +-cpu-flags gcc OPTIONS : power : power3 : -mcpu=power3 ;
305 +-cpu-flags gcc OPTIONS : power : power4 : -mcpu=power4 ;
306 +-cpu-flags gcc OPTIONS : power : power5 : -mcpu=power5 ;
307 +-cpu-flags gcc OPTIONS : power : powerpc : -mcpu=powerpc ;
308 +-cpu-flags gcc OPTIONS : power : powerpc64 : -mcpu=powerpc64 ;
309 +-cpu-flags gcc OPTIONS : power : rios : -mcpu=rios ;
310 +-cpu-flags gcc OPTIONS : power : rios1 : -mcpu=rios1 ;
311 +-cpu-flags gcc OPTIONS : power : rios2 : -mcpu=rios2 ;
312 +-cpu-flags gcc OPTIONS : power : rsc : -mcpu=rsc ;
313 +-cpu-flags gcc OPTIONS : power : rs64a : -mcpu=rs64 ;
314 +-cpu-flags gcc OPTIONS : s390x : z196 : -march=z196 ;
315 +-cpu-flags gcc OPTIONS : s390x : zEC12 : -march=zEC12 ;
316 +-cpu-flags gcc OPTIONS : s390x : z13 : -march=z13 ;
317 +-cpu-flags gcc OPTIONS : s390x : z14 : -march=z14 ;
318 +-cpu-flags gcc OPTIONS : s390x : z15 : -march=z15 ;
319 + # ARM
320 +-cpu-flags gcc OPTIONS : arm : cortex-a9+vfpv3 : -mcpu=cortex-a9 -mfpu=vfpv3 -mfloat-abi=hard ;
321 +-cpu-flags gcc OPTIONS : arm : cortex-a53 : -mcpu=cortex-a53 ;
322 +-cpu-flags gcc OPTIONS : arm : cortex-r5 : -mcpu=cortex-r5 ;
323 +-cpu-flags gcc OPTIONS : arm : cortex-r5+vfpv3-d16 : -mcpu=cortex-r5 -mfpu=vfpv3-d16 -mfloat-abi=hard ;
324 + # AIX variant of RS/6000 & PowerPC
325 + toolset.flags gcc AROPTIONS <address-model>64/<target-os>aix : "-X64" ;
326 +
327
328 diff --git a/dev-util/b2/files/b2-4.9.2-odr.patch b/dev-util/b2/files/b2-4.9.2-odr.patch
329 new file mode 100644
330 index 000000000000..62cbca189640
331 --- /dev/null
332 +++ b/dev-util/b2/files/b2-4.9.2-odr.patch
333 @@ -0,0 +1,54 @@
334 +Avoid ODR violations by giving "_stack" internal linkage
335 +https://bugs.gentoo.org/858320
336 +
337 +--- a/engine/function.cpp
338 ++++ b/engine/function.cpp
339 +@@ -213,11 +213,11 @@
340 + } JAM_FUNCTION;
341 +
342 +
343 ++namespace
344 ++{
345 + typedef struct _stack STACK;
346 + typedef STACK* stack_ptr;
347 +
348 +-namespace
349 +-{
350 + template <typename T>
351 + using remove_cref_t
352 + = typename std::remove_const<
353 +@@ -260,7 +260,6 @@
354 + typename select_last_impl<(sizeof...(A) == 1), type_list<A...> >
355 + ::template type<A...>;
356 + #endif
357 +-}
358 +
359 + struct _stack
360 + {
361 +@@ -439,6 +438,8 @@
362 + cleanups_size += n;
363 + }
364 +
365 ++}
366 ++
367 + static STACK * stack_global()
368 + {
369 + static _stack singleton;
370 +--- a/engine/make1.cpp
371 ++++ b/engine/make1.cpp
372 +@@ -86,6 +86,7 @@
373 + #define T_STATE_MAKE1B 1 /* make1b() should be called */
374 + #define T_STATE_MAKE1C 2 /* make1c() should be called */
375 +
376 ++namespace {
377 + typedef struct _state state;
378 + struct _state
379 + {
380 +@@ -94,6 +95,7 @@
381 + TARGET * parent; /* parent argument necessary for MAKE1A */
382 + int32_t curstate; /* current state */
383 + };
384 ++}
385 +
386 + static void make1a( state * const );
387 + static void make1b( state * const );
388
389 diff --git a/dev-util/b2/files/b2-4.9.2-respect-user-flags.patch b/dev-util/b2/files/b2-4.9.2-respect-user-flags.patch
390 new file mode 100644
391 index 000000000000..b0de4f0e885f
392 --- /dev/null
393 +++ b/dev-util/b2/files/b2-4.9.2-respect-user-flags.patch
394 @@ -0,0 +1,11 @@
395 +--- a/engine/build.sh
396 ++++ b/engine/build.sh
397 +@@ -496,7 +496,7 @@ modules/set.cpp \
398 + if test_true ${B2_DEBUG_OPT} ; then B2_CXXFLAGS="${B2_CXXFLAGS_DEBUG}"
399 + else B2_CXXFLAGS="${B2_CXXFLAGS_RELEASE} -DNDEBUG"
400 + fi
401 +- ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${B2_CXXFLAGS} ${B2_SOURCES} -o b2 )
402 ++ ( B2_VERBOSE_OPT=${TRUE} echo_run ${B2_CXX} ${CPPFLAGS} ${B2_CXXFLAGS} ${LDFLAGS} ${B2_SOURCES} -o b2 )
403 + }
404 +
405 + if test_true ${B2_VERBOSE_OPT} ; then
406
407 diff --git a/dev-util/b2/files/site-config.jam b/dev-util/b2/files/site-config.jam
408 new file mode 100644
409 index 000000000000..6afe52684ccc
410 --- /dev/null
411 +++ b/dev-util/b2/files/site-config.jam
412 @@ -0,0 +1,11 @@
413 +# Copyright 1999-2012 Gentoo Foundation
414 +# Distributed under the Boost Software License, Version 1.0.
415 +# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
416 +
417 +# Define two new variants to be used when building boost (or separate boost-libs)
418 +# on Gentoo. The two variants make use of Gentoo-specific optimization and debug-symbols
419 +# values "none" which are not part of the official boost distribution.
420 +# DO NOT RELY ON THE FOLLOWING VARIANTS TO BE PRESENT ON OTHER OS!
421 +variant gentoorelease : release : <optimization>none <debug-symbols>none <runtime-link>shared ;
422 +variant gentoodebug : debug : <optimization>none <debug-symbols>on <runtime-link>shared ;
423 +
424
425 diff --git a/dev-util/b2/metadata.xml b/dev-util/b2/metadata.xml
426 new file mode 100644
427 index 000000000000..97a8de7cc239
428 --- /dev/null
429 +++ b/dev-util/b2/metadata.xml
430 @@ -0,0 +1,11 @@
431 +<?xml version="1.0" encoding="UTF-8"?>
432 +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
433 +<pkgmetadata>
434 + <maintainer type="person">
435 + <email>soap@g.o</email>
436 + <name>David Seifert</name>
437 + </maintainer>
438 + <upstream>
439 + <remote-id type="github">bfgroup/b2</remote-id>
440 + </upstream>
441 +</pkgmetadata>