Gentoo Archives: gentoo-commits

From: Thomas Deutschmann <whissi@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/genkernel:master commit in: patches/boost-build/1.70.0/, /, defaults/, gkbuilds/, ...
Date: Fri, 30 Aug 2019 21:41:35
Message-Id: 1567197694.9dea735590ebfff278710148fa8743777a18c4bd.whissi@gentoo
1 commit: 9dea735590ebfff278710148fa8743777a18c4bd
2 Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
3 AuthorDate: Fri Aug 30 16:26:34 2019 +0000
4 Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
5 CommitDate: Fri Aug 30 20:41:34 2019 +0000
6 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=9dea7355
7
8 Add support for LVM thin provisioning
9
10 Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>
11
12 defaults/software.sh | 28 ++++++++
13 gen_initramfs.sh | 5 ++
14 gkbuilds/boost-build.gkbuild | 68 ++++++++++++++++++
15 gkbuilds/boost.gkbuild | 80 +++++++++++++++++++++
16 gkbuilds/expat.gkbuild | 18 +++++
17 gkbuilds/lvm.gkbuild | 7 ++
18 gkbuilds/thin-provisioning-tools.gkbuild | 33 +++++++++
19 .../boost-build-1.50.0-respect-c_ld-flags.patch | 53 ++++++++++++++
20 .../1.70.0/boost-build-1.55.0-ppc-aix.patch | 13 ++++
21 ...boost-build-1.62.0-sparc-no-default-flags.patch | 47 ++++++++++++
22 ...ost-build-1.66.0-add-none-feature-options.patch | 26 +++++++
23 ...thin-provisioning-tools-0.7.0-build-fixes.patch | 34 +++++++++
24 ...n-provisioning-tools-0.8.5-libaio-0.3.112.patch | 84 ++++++++++++++++++++++
25 13 files changed, 496 insertions(+)
26
27 diff --git a/defaults/software.sh b/defaults/software.sh
28 index ec4dc78..363013f 100644
29 --- a/defaults/software.sh
30 +++ b/defaults/software.sh
31 @@ -9,6 +9,20 @@
32 # - This file should not override previously defined variables, as their values may
33 # originate from user changes to /etc/genkernel.conf .
34
35 +GKPKG_BOOST_PN="boost"
36 +GKPKG_BOOST_PV="${GKPKG_BOOST_PV:-VERSION_BOOST}"
37 +GKPKG_BOOST_DEPS="boost-build"
38 +GKPKG_BOOST_SRCTAR="${GKPKG_BOOST_SRCTAR:-${DISTDIR}/boost_${GKPKG_BOOST_PV//./_}.tar.bz2}"
39 +GKPKG_BOOST_SRCDIR="${GKPKG_BOOST_SRCDIR:-boost_${GKPKG_BOOST_PV//./_}}"
40 +GKPKG_BOOST_BINPKG="${GKPKG_BOOST_BINPKG:-%%CACHE%%/boost-${GKPKG_BOOST_PV}-%%ARCH%%.tar.xz}"
41 +
42 +GKPKG_BOOST_BUILD_PN="boost-build"
43 +GKPKG_BOOST_BUILD_PV="${GKPKG_BOOST_PV}"
44 +GKPKG_BOOST_BUILD_DEPS=""
45 +GKPKG_BOOST_BUILD_SRCTAR="${GKPKG_BOOST_SRCTAR}"
46 +GKPKG_BOOST_BUILD_SRCDIR="${GKPKG_BOOST_SRCDIR}"
47 +GKPKG_BOOST_BUILD_BINPKG="${GKPKG_BOOST_BUILD_BINPKG:-%%CACHE%%/boost-build-${GKPKG_BOOST_BUILD_PV}.tar.xz}"
48 +
49 GKPKG_BTRFS_PROGS_PN="btrfs-progs"
50 GKPKG_BTRFS_PROGS_PV="${GKPKG_BTRFS_PROGS_PV:-VERSION_BTRFS_PROGS}"
51 GKPKG_BTRFS_PROGS_DEPS="util-linux zlib zstd lzo"
52 @@ -51,6 +65,13 @@ GKPKG_EUDEV_SRCTAR="${GKPKG_EUDEV_SRCTAR:-${DISTDIR}/eudev-${GKPKG_EUDEV_PV}.tar
53 GKPKG_EUDEV_SRCDIR="${GKPKG_EUDEV_SRCDIR:-eudev-${GKPKG_EUDEV_PV}}"
54 GKPKG_EUDEV_BINPKG="${GKPKG_EUDEV_BINPKG:-%%CACHE%%/eudev-${GKPKG_EUDEV_PV}-%%ARCH%%.tar.xz}"
55
56 +GKPKG_EXPAT_PN="expat"
57 +GKPKG_EXPAT_PV="${GKPKG_EXPAT_PV:-VERSION_EXPAT}"
58 +GKPKG_EXPAT_DEPS=""
59 +GKPKG_EXPAT_SRCTAR="${GKPKG_EXPAT_SRCTAR:-${DISTDIR}/expat-${GKPKG_EXPAT_PV}.tar.xz}"
60 +GKPKG_EXPAT_SRCDIR="${GKPKG_EXPAT_SRCDIR:-expat-${GKPKG_EXPAT_PV}}"
61 +GKPKG_EXPAT_BINPKG="${GKPKG_EXPAT_BINPKG:-%%CACHE%%/expat-${GKPKG_EXPAT_PV}-%%ARCH%%.tar.xz}"
62 +
63 GKPKG_E2FSPROGS_PN="e2fsprogs"
64 GKPKG_E2FSPROGS_PV="${GKPKG_E2FSPROGS_PV:-VERSION_E2FSPROGS}"
65 GKPKG_E2FSPROGS_DEPS="util-linux"
66 @@ -149,6 +170,13 @@ GKPKG_STRACE_SRCTAR="${GKPKG_STRACE_SRCTAR:-${DISTDIR}/strace-${GKPKG_STRACE_PV}
67 GKPKG_STRACE_SRCDIR="${GKPKG_STRACE_SRCDIR:-strace-${GKPKG_STRACE_PV}}"
68 GKPKG_STRACE_BINPKG="${GKPKG_STRACE_BINPKG:-%%CACHE%%/strace-${GKPKG_STRACE_PV}-%%ARCH%%.tar.xz}"
69
70 +GKPKG_THIN_PROVISIONING_TOOLS_PN="thin-provisioning-tools"
71 +GKPKG_THIN_PROVISIONING_TOOLS_PV="${GKPKG_THIN_PROVISIONING_TOOLS_PV:-VERSION_THIN_PROVISIONING_TOOLS}"
72 +GKPKG_THIN_PROVISIONING_TOOLS_DEPS="boost libaio expat"
73 +GKPKG_THIN_PROVISIONING_TOOLS_SRCTAR="${GKPKG_THIN_PROVISIONING_TOOLS_SRCTAR:-${DISTDIR}/thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}.tar.gz}"
74 +GKPKG_THIN_PROVISIONING_TOOLS_SRCDIR="${GKPKG_THIN_PROVISIONING_TOOLS_SRCDIR:-thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}}"
75 +GKPKG_THIN_PROVISIONING_TOOLS_BINPKG="${GKPKG_THIN_PROVISIONING_TOOLS_BINPKG:-%%CACHE%%/thin-provisioning-tools-${GKPKG_THIN_PROVISIONING_TOOLS_PV}-%%ARCH%%.tar.xz}"
76 +
77 GKPKG_UNIONFS_FUSE_PN="unionfs-fuse"
78 GKPKG_UNIONFS_FUSE_PV="${GKPKG_UNIONFS_FUSE_PV:-VERSION_UNIONFS_FUSE}"
79 GKPKG_UNIONFS_FUSE_DEPS="fuse"
80
81 diff --git a/gen_initramfs.sh b/gen_initramfs.sh
82 index 23ed9dc..e007fde 100755
83 --- a/gen_initramfs.sh
84 +++ b/gen_initramfs.sh
85 @@ -578,10 +578,12 @@ append_lvm() {
86 fi
87
88 populate_binpkg ${PN}
89 + populate_binpkg thin-provisioning-tools
90
91 mkdir "${TDIR}" || gen_die "Failed to create '${TDIR}'!"
92
93 unpack "$(get_gkpkg_binpkg "${PN}")" "${TDIR}"
94 + unpack "$(get_gkpkg_binpkg "thin-provisioning-tools")" "${TDIR}"
95
96 cd "${TDIR}" || gen_die "Failed to chdir to '${TDIR}'!"
97
98 @@ -630,6 +632,9 @@ append_lvm() {
99 -e '/^[[:space:]]*monitoring/s,=.*,= 0,g' \
100 -e '/^[[:space:]]*external_device_info_source/s,=.*,= "none",g' \
101 -e '/^[[:space:]]*units/s,=.*"r",= "h",g' \
102 + -e '/^[[:space:]]*thin_repair_executable/s,=.*,= /usr/sbin/thin_repair,g' \
103 + -e '/^[[:space:]]*thin_dump_executable/s,=.*,= /usr/sbin/thin_dump,g' \
104 + -e '/^[[:space:]]*thin_check_executable/s,=.*,= /usr/sbin/thin_check,g' \
105 "${TDIR}"/etc/lvm/lvm.conf \
106 || gen_die 'Could not sed lvm.conf!'
107 fi
108
109 diff --git a/gkbuilds/boost-build.gkbuild b/gkbuilds/boost-build.gkbuild
110 new file mode 100644
111 index 0000000..17673c1
112 --- /dev/null
113 +++ b/gkbuilds/boost-build.gkbuild
114 @@ -0,0 +1,68 @@
115 +# Copyright 1999-2019 Gentoo Authors
116 +# Distributed under the terms of the GNU General Public License v2
117 +
118 +MY_PV="${PV//./_}"
119 +S="${WORKDIR}/boost_${MY_PV}/tools/build/src"
120 +QA_IGNORE_DYNAMICALLY_LINKED_PROGRAM='(bjam|b2)$'
121 +
122 +src_prepare() {
123 + default
124 +
125 + # Force regeneration
126 + rm engine/jambase.c \
127 + || die "Failed to remove 'engine/jambase.c'!"
128 +
129 + # This patch allows us to fully control optimization
130 + # and stripping flags when bjam is used as build-system
131 + # We simply extend the optimization and debug-symbols feature
132 + # with empty dummies called 'none'
133 + sed -i \
134 + -e 's/\(off speed space\)/\1 none/' \
135 + -e 's/\(debug-symbols : on off\)/\1 none/' \
136 + tools/builtin.jam \
137 + || die "sed failed"
138 +}
139 +
140 +src_compile() {
141 + cd engine || die "Failed to chdir to '${S}/engine'!"
142 +
143 + local myargs=(
144 + ./build.sh
145 + cc
146 + -d+2
147 + --without-python
148 + )
149 +
150 + CC=$(tc-getBUILD_CC) gkexec "${myargs[*]}"
151 +}
152 +
153 +src_install() {
154 + mkdir -p "${D}"/usr/bin \
155 + || die "Failed to create '${D}/usr/bin'!"
156 +
157 + cp --target-directory="${D}/usr/bin" engine/bin.*/{bjam,b2} \
158 + || die "Failed to install 'engine/bin.*/{bjam,b2}' to '${D}/usr/bin'!"
159 +
160 + mkdir -p "${D}"/usr/share/boost-build \
161 + || die "Failed to create '${D}/usr/share/boost-build'!"
162 +
163 + cp \
164 + --recursive \
165 + --target-directory="${D}/usr/share/boost-build" \
166 + ../boost-build.jam \
167 + bootstrap.jam \
168 + build-system.jam \
169 + ../example/user-config.jam \
170 + build \
171 + kernel \
172 + options \
173 + tools \
174 + util \
175 + || die "Failed to copy *.jam files to '${D}/usr/share/boost-build'!"
176 +
177 + find "${D}/usr/share/boost-build" -iname "*.py" -delete \
178 + || die "Failed to remove python files"
179 +
180 + echo 'variant gentoorelease : release : <optimization>none <debug-symbols>none <runtime-link>shared ;' > "${D}/usr/share/boost-build/site-config.jam" \
181 + || die "Failed to create '${D}/usr/share/boost-build/site-config.jam'!"
182 +}
183
184 diff --git a/gkbuilds/boost.gkbuild b/gkbuilds/boost.gkbuild
185 new file mode 100644
186 index 0000000..8b1012b
187 --- /dev/null
188 +++ b/gkbuilds/boost.gkbuild
189 @@ -0,0 +1,80 @@
190 +# Copyright 1999-2019 Gentoo Authors
191 +# Distributed under the terms of the GNU General Public License v2
192 +
193 +create_user-config.jam() {
194 + local user_config_jam="${S}"/user-config.jam
195 + if [[ -s ${user_config_jam} ]]; then
196 + return
197 + fi
198 +
199 + local compiler compiler_version compiler_executable="$(tc-getCXX)"
200 + compiler="gcc"
201 + compiler_version="$(gcc-version)"
202 +
203 + cat > "${user_config_jam}" <<- __EOF__ || die
204 + using ${compiler} : ${compiler_version} : ${compiler_executable} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;
205 + __EOF__
206 +}
207 +
208 +ejam() {
209 + create_user-config.jam
210 +
211 + local myargs=(
212 + b2
213 + "--user-config=${S}/user-config.jam"
214 + --without-python
215 + "$@"
216 + )
217 +
218 + gkexec "${myargs[*]}"
219 +}
220 +
221 +src_configure() {
222 + # Workaround for too many parallel processes requested, bug #506064
223 + [[ "$(makeopts_jobs)" -gt 64 ]] && MAKEOPTS="${MAKEOPTS} -j64"
224 +
225 + OPTIONS=(
226 + gentoorelease
227 + "-j$(makeopts_jobs)"
228 + -q
229 + -d+2
230 + pch=off
231 + --disable-icu boost.locale.icu=off
232 + --without-mpi
233 + --without-locale
234 + --without-context --without-coroutine --without-fiber
235 + --without-stacktrace
236 + --boost-build="${BROOT}"/usr/share/boost-build
237 + --prefix="/usr"
238 + --layout=system
239 + --no-cmake-config
240 + threading=multi
241 + link=shared,static
242 + # this seems to be the only way to disable compression algorithms
243 + # https://www.boost.org/doc/libs/1_70_0/libs/iostreams/doc/installation.html#boost-build
244 + -sNO_BZIP2=1
245 + -sNO_LZMA=1
246 + -sNO_ZLIB=1
247 + -sNO_ZSTD=1
248 + )
249 +
250 + # bug 298489
251 + if [[ "${CHOST}" == powerpc* ]]; then
252 + [[ $(gcc-version) > 4.3 ]] && append-flags -mno-altivec
253 + fi
254 +
255 + # Use C++14 globally as of 1.62
256 + append-cxxflags -std=c++14
257 +}
258 +
259 +src_compile() {
260 + ejam "${OPTIONS[@]}" || die "Compilation of Boot libraries failed!"
261 +}
262 +
263 +src_install() {
264 + ejam \
265 + "${OPTIONS[@]}" \
266 + --includedir="${D}/usr/include" \
267 + --libdir="${D}/usr/lib" \
268 + install || die "Installation of Boost libraries failed!"
269 +}
270
271 diff --git a/gkbuilds/expat.gkbuild b/gkbuilds/expat.gkbuild
272 new file mode 100644
273 index 0000000..e280846
274 --- /dev/null
275 +++ b/gkbuilds/expat.gkbuild
276 @@ -0,0 +1,18 @@
277 +# Copyright 1999-2019 Gentoo Authors
278 +# Distributed under the terms of the GNU General Public License v2
279 +
280 +src_configure() {
281 + local myconf=(
282 + --enable-static
283 + )
284 +
285 + gkconf "${myconf[@]}"
286 +}
287 +
288 +src_install() {
289 + default
290 +
291 + rm -rf \
292 + "${D}"/usr/bin \
293 + "${D}"/usr/share
294 +}
295
296 diff --git a/gkbuilds/lvm.gkbuild b/gkbuilds/lvm.gkbuild
297 index 05fd087..9cedead 100644
298 --- a/gkbuilds/lvm.gkbuild
299 +++ b/gkbuilds/lvm.gkbuild
300 @@ -27,6 +27,13 @@ src_configure() {
301 --disable-udev_rules
302 )
303
304 + local texec
305 + for texec in check dump repair restore
306 + do
307 + myconf+=( --with-thin-${texec}=/usr/sbin/thin_${texec} )
308 + myconf+=( --with-cache-${texec}=/usr/sbin/cache_${texec} )
309 + done
310 +
311 gkconf "${myconf[@]}"
312 }
313
314
315 diff --git a/gkbuilds/thin-provisioning-tools.gkbuild b/gkbuilds/thin-provisioning-tools.gkbuild
316 new file mode 100644
317 index 0000000..64500c9
318 --- /dev/null
319 +++ b/gkbuilds/thin-provisioning-tools.gkbuild
320 @@ -0,0 +1,33 @@
321 +# Copyright 1999-2019 Gentoo Authors
322 +# Distributed under the terms of the GNU General Public License v2
323 +
324 +src_prepare() {
325 + default
326 + gkautoreconf
327 +}
328 +
329 +src_configure() {
330 + append-ldflags -static
331 +
332 + local myconf=(
333 + --with-optimisation=''
334 + --disable-testing
335 + )
336 +
337 + gkconf "${myconf[@]}"
338 +}
339 +
340 +src_compile() {
341 + gkmake
342 +}
343 +
344 +src_install() {
345 + local MYMAKEOPTS=( "DESTDIR=${D}" )
346 + MYMAKEOPTS+=( "DATADIR=${D}/usr/share" )
347 + MYMAKEOPTS+=( "install" )
348 +
349 + gkmake "${MYMAKEOPTS[@]}"
350 +
351 + rm -rf \
352 + "${D}"/usr/share
353 +}
354
355 diff --git a/patches/boost-build/1.70.0/boost-build-1.50.0-respect-c_ld-flags.patch b/patches/boost-build/1.70.0/boost-build-1.50.0-respect-c_ld-flags.patch
356 new file mode 100644
357 index 0000000..8775583
358 --- /dev/null
359 +++ b/patches/boost-build/1.70.0/boost-build-1.50.0-respect-c_ld-flags.patch
360 @@ -0,0 +1,53 @@
361 +--- a/engine/build.jam
362 ++++ b/engine/build.jam
363 +@@ -3,7 +3,7 @@
364 + #~ (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
365 +
366 + # Clean env vars of any "extra" empty values.
367 +-for local v in ARGV CC CFLAGS LIBS
368 ++for local v in ARGV CC CFLAGS LDFLAGS LIBS
369 + {
370 + local values ;
371 + for local x in $($(v))
372 +@@ -179,10 +179,10 @@
373 + if ! $(CC) { CC = cc ; }
374 + toolset cc $(CC) : "-o " : -D
375 + : $(CFLAGS)
376 +- [ opt --release : -s -O ]
377 ++ [ opt --release : ]
378 + [ opt --debug : -g ]
379 + -I$(--python-include) -I$(--extra-include)
380 +- : $(LIBS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
381 ++ : $(LDFLAGS) $(LIBS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
382 + ## Comeau C/C++ 4.x
383 + toolset como como : "-o " : -D
384 + : --c
385 +@@ -201,11 +201,11 @@
386 + ## MacOSX Darwin, using GCC 2.9.x, 3.x
387 + toolset darwin cc : "-o " : -D
388 + :
389 +- [ opt --release : -Wl,-x -O3 -finline-functions ]
390 ++ [ opt --release : -Wl,-x -finline-functions ]
391 + [ opt --debug : -g -O0 -fno-inline -pg ]
392 + [ opt --profile : -Wl,-x -O3 -finline-functions -g -pg ]
393 + -I$(--python-include) -I$(--extra-include)
394 +- : -L$(--python-lib[1]) -l$(--python-lib[2]) ;
395 ++ : $(LDFLAGS) -L$(--python-lib[1]) -l$(--python-lib[2]) ;
396 + ## GCC 2.x, 3.x, 4.x
397 + toolset gcc gcc : "-o " : -D
398 + : -pedantic -fno-strict-aliasing
399 +--- a/engine/build.sh
400 ++++ b/engine/build.sh
401 +@@ -224,9 +224,9 @@
402 + cc)
403 + if test -z "$CC" ; then CC=cc ; fi
404 + BOOST_JAM_CC=$CC
405 +- BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM $CFLAGS $LIBS"
406 +- BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE $CFLAGS $LIBS"
407 +- BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC $CFLAGS $LIBS"
408 ++ BOOST_JAM_OPT_JAM="$BOOST_JAM_OPT_JAM $CFLAGS $LDFLAGS $LIBS"
409 ++ BOOST_JAM_OPT_MKJAMBASE="$BOOST_JAM_OPT_MKJAMBASE $CFLAGS $LDFLAGS $LIBS"
410 ++ BOOST_JAM_OPT_YYACC="$BOOST_JAM_OPT_YYACC $CFLAGS $LDFLAGS $LIBS"
411 + ;;
412 +
413 + qcc)
414
415 diff --git a/patches/boost-build/1.70.0/boost-build-1.55.0-ppc-aix.patch b/patches/boost-build/1.70.0/boost-build-1.55.0-ppc-aix.patch
416 new file mode 100644
417 index 0000000..d8b6a5a
418 --- /dev/null
419 +++ b/patches/boost-build/1.70.0/boost-build-1.55.0-ppc-aix.patch
420 @@ -0,0 +1,13 @@
421 +https://svn.boost.org/trac/boost/ticket/10122
422 +
423 +--- a/engine/mem.h
424 ++++ b/engine/mem.h
425 +@@ -8,6 +8,8 @@
426 + #ifndef BJAM_MEM_H
427 + #define BJAM_MEM_H
428 +
429 ++#include "jam.h"
430 ++
431 + #ifdef OPT_BOEHM_GC
432 +
433 + /* Use Boehm GC memory allocator. */
434
435 diff --git a/patches/boost-build/1.70.0/boost-build-1.62.0-sparc-no-default-flags.patch b/patches/boost-build/1.70.0/boost-build-1.62.0-sparc-no-default-flags.patch
436 new file mode 100644
437 index 0000000..a3f450b
438 --- /dev/null
439 +++ b/patches/boost-build/1.70.0/boost-build-1.62.0-sparc-no-default-flags.patch
440 @@ -0,0 +1,47 @@
441 +--- a/tools/gcc.py 2018-09-07 17:44:59.668796217 +0200
442 ++++ b/tools/gcc.py 2018-09-07 17:45:56.378794314 +0200
443 +@@ -811,20 +811,6 @@
444 + # Sparc
445 + flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>32'], ['-m32'])
446 + flags('gcc', 'OPTIONS', ['<architecture>sparc/<address-model>64'], ['-m64'])
447 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v7', ['-mcpu=v7'], default=True)
448 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'cypress', ['-mcpu=cypress'])
449 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v8', ['-mcpu=v8'])
450 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'supersparc', ['-mcpu=supersparc'])
451 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclite', ['-mcpu=sparclite'])
452 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'hypersparc', ['-mcpu=hypersparc'])
453 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclite86x', ['-mcpu=sparclite86x'])
454 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'f930', ['-mcpu=f930'])
455 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'f934', ['-mcpu=f934'])
456 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'sparclet', ['-mcpu=sparclet'])
457 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'tsc701', ['-mcpu=tsc701'])
458 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'v9', ['-mcpu=v9'])
459 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'ultrasparc', ['-mcpu=ultrasparc'])
460 +-cpu_flags('gcc', 'OPTIONS', 'sparc', 'ultrasparc3', ['-mcpu=ultrasparc3'])
461 + # RS/6000 & PowerPC
462 + flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>32'], ['-m32'])
463 + flags('gcc', 'OPTIONS', ['<architecture>power/<address-model>64'], ['-m64'])
464 +--- a/tools/gcc.jam 2018-09-07 17:45:12.168795797 +0200
465 ++++ b/tools/gcc.jam 2018-09-07 17:46:25.498793337 +0200
466 +@@ -1134,21 +1134,6 @@
467 + cpu-flags gcc OPTIONS : x86 : c3-2 : -march=c3-2 ;
468 + ##
469 + cpu-flags gcc OPTIONS : x86 : atom : -march=atom ;
470 +-# Sparc
471 +-cpu-flags gcc OPTIONS : sparc : v7 : -mcpu=v7 : default ;
472 +-cpu-flags gcc OPTIONS : sparc : cypress : -mcpu=cypress ;
473 +-cpu-flags gcc OPTIONS : sparc : v8 : -mcpu=v8 ;
474 +-cpu-flags gcc OPTIONS : sparc : supersparc : -mcpu=supersparc ;
475 +-cpu-flags gcc OPTIONS : sparc : sparclite : -mcpu=sparclite ;
476 +-cpu-flags gcc OPTIONS : sparc : hypersparc : -mcpu=hypersparc ;
477 +-cpu-flags gcc OPTIONS : sparc : sparclite86x : -mcpu=sparclite86x ;
478 +-cpu-flags gcc OPTIONS : sparc : f930 : -mcpu=f930 ;
479 +-cpu-flags gcc OPTIONS : sparc : f934 : -mcpu=f934 ;
480 +-cpu-flags gcc OPTIONS : sparc : sparclet : -mcpu=sparclet ;
481 +-cpu-flags gcc OPTIONS : sparc : tsc701 : -mcpu=tsc701 ;
482 +-cpu-flags gcc OPTIONS : sparc : v9 : -mcpu=v9 ;
483 +-cpu-flags gcc OPTIONS : sparc : ultrasparc : -mcpu=ultrasparc ;
484 +-cpu-flags gcc OPTIONS : sparc : ultrasparc3 : -mcpu=ultrasparc3 ;
485 + # RS/6000 & PowerPC
486 + cpu-flags gcc OPTIONS : power : 403 : -mcpu=403 ;
487 + cpu-flags gcc OPTIONS : power : 505 : -mcpu=505 ;
488
489 diff --git a/patches/boost-build/1.70.0/boost-build-1.66.0-add-none-feature-options.patch b/patches/boost-build/1.70.0/boost-build-1.66.0-add-none-feature-options.patch
490 new file mode 100644
491 index 0000000..fd86c9e
492 --- /dev/null
493 +++ b/patches/boost-build/1.70.0/boost-build-1.66.0-add-none-feature-options.patch
494 @@ -0,0 +1,26 @@
495 +diff --git a/tools/features/debug-feature.jam b/tools/features/debug-feature.jam
496 +index 04958f9a..38b6acf1 100644
497 +--- a/tools/features/debug-feature.jam
498 ++++ b/tools/features/debug-feature.jam
499 +@@ -8,7 +8,7 @@
500 + import feature ;
501 +
502 + feature.feature debug-symbols
503 +- : on off
504 ++ : on off none
505 + : propagated ;
506 +
507 + feature.feature profiling
508 +diff --git a/tools/features/optimization-feature.jam b/tools/features/optimization-feature.jam
509 +index 761f76f1..fb2a5dec 100644
510 +--- a/tools/features/optimization-feature.jam
511 ++++ b/tools/features/optimization-feature.jam
512 +@@ -8,7 +8,7 @@
513 + import feature ;
514 +
515 + feature.feature optimization
516 +- : off speed space
517 ++ : off none speed space
518 + : propagated ;
519 +
520 + feature.feature inlining
521
522 diff --git a/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.7.0-build-fixes.patch b/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.7.0-build-fixes.patch
523 new file mode 100644
524 index 0000000..df0831f
525 --- /dev/null
526 +++ b/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.7.0-build-fixes.patch
527 @@ -0,0 +1,34 @@
528 +--- thin-provisioning-tools-0.7.0/Makefile.in
529 ++++ thin-provisioning-tools-0.7.0/Makefile.in
530 +@@ -142,9 +142,9 @@
531 +
532 + TOP_DIR:=@top_srcdir@
533 + TOP_BUILDDIR:=@top_builddir@
534 +-CFLAGS+=-g -Wall -O3 -fPIC
535 ++CFLAGS+=-fPIC
536 + CFLAGS+=@LFS_FLAGS@
537 +-CXXFLAGS+=-g -Wall -fPIC -fno-strict-aliasing -std=c++11
538 ++CXXFLAGS+=-fPIC -fno-strict-aliasing -std=c++11
539 +
540 + ifeq ("@DEVTOOLS@", "yes")
541 + CXXFLAGS+=-DDEV_TOOLS
542 +--- thin-provisioning-tools-0.7.0/unit-tests/Makefile.in
543 ++++ thin-provisioning-tools-0.7.0/unit-tests/Makefile.in
544 +@@ -25,7 +25,7 @@
545 + -Wno-unused-local-typedefs
546 +
547 + GMOCK_LIBS=\
548 +- -Llib -lpdata -lgmock -lpthread -laio
549 ++ -Llib -lpdata -lgmock -lpthread -laio -lgtest
550 +
551 + GMOCK_DEPS=\
552 + $(wildcard $(GMOCK_DIR)/googlemock/include/*.h) \
553 +@@ -83,7 +83,7 @@
554 + sed 's,\([^ :]*\)\.o[ :]*,\1.o \1.gmo $* : Makefile ,g' < $*.$$$$ > $*.d; \
555 + $(RM) $*.$$$$
556 +
557 +-unit-tests/unit_tests: $(TEST_OBJECTS) lib/libgmock.a lib/libpdata.a
558 ++unit-tests/unit_tests: $(TEST_OBJECTS) lib/libpdata.a
559 + @echo " [LD] $<"
560 + $(V)g++ $(CXXFLAGS) $(LDFLAGS) -o $@ $(TEST_OBJECTS) $(LIBS) $(GMOCK_LIBS) $(LIBEXPAT)
561 +
562
563 diff --git a/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.8.5-libaio-0.3.112.patch b/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.8.5-libaio-0.3.112.patch
564 new file mode 100644
565 index 0000000..af31b90
566 --- /dev/null
567 +++ b/patches/thin-provisioning-tools/0.8.5/thin-provisioning-tools-0.8.5-libaio-0.3.112.patch
568 @@ -0,0 +1,84 @@
569 +From 6332962ee866f5289de87ab70cd3db863298982c Mon Sep 17 00:00:00 2001
570 +From: Joe Thornber <ejt@××××××.com>
571 +Date: Wed, 5 Jun 2019 15:02:05 +0100
572 +Subject: [PATCH] [ft-lib/bcache] rename raise() -> raise_()
573 +
574 +Name clash with signal.h on Debian and Gentoo.
575 +---
576 + ft-lib/bcache.c | 16 ++++++++--------
577 + 1 file changed, 8 insertions(+), 8 deletions(-)
578 +
579 +diff --git a/ft-lib/bcache.c b/ft-lib/bcache.c
580 +index 0dca5031..ee5b6c59 100644
581 +--- a/ft-lib/bcache.c
582 ++++ b/ft-lib/bcache.c
583 +@@ -31,7 +31,7 @@ static void warn(const char *fmt, ...)
584 + }
585 +
586 + // FIXME: raise a condition somehow?
587 +-static void raise(const char *fmt, ...)
588 ++static void raise_(const char *fmt, ...)
589 + {
590 + va_list ap;
591 +
592 +@@ -51,7 +51,7 @@ static inline struct list_head *list_pop(struct list_head *head)
593 + struct list_head *l;
594 +
595 + if (head->next == head)
596 +- raise("list is empty\n");
597 ++ raise_("list is empty\n");
598 +
599 + l = head->next;
600 + list_del(l);
601 +@@ -98,7 +98,7 @@ static struct cb_set *cb_set_create(unsigned nr)
602 + static void cb_set_destroy(struct cb_set *cbs)
603 + {
604 + if (!list_empty(&cbs->allocated))
605 +- raise("async io still in flight");
606 ++ raise_("async io still in flight");
607 +
608 + free(cbs->vec);
609 + free(cbs);
610 +@@ -713,13 +713,13 @@ struct bcache *bcache_simple(const char *path, unsigned nr_cache_blocks)
611 + uint64_t s;
612 +
613 + if (fd < 0) {
614 +- raise("couldn't open cache file");
615 ++ raise_("couldn't open cache file");
616 + return NULL;
617 + }
618 +
619 + r = fstat(fd, &info);
620 + if (r < 0) {
621 +- raise("couldn't stat cache file");
622 ++ raise_("couldn't stat cache file");
623 + return NULL;
624 + }
625 +
626 +@@ -751,7 +751,7 @@ void bcache_destroy(struct bcache *cache)
627 + static void check_index(struct bcache *cache, block_address index)
628 + {
629 + if (index >= cache->nr_data_blocks)
630 +- raise("block out of bounds (%llu >= %llu)",
631 ++ raise_("block out of bounds (%llu >= %llu)",
632 + (unsigned long long) index,
633 + (unsigned long long) cache->nr_data_blocks);
634 + }
635 +@@ -802,7 +802,7 @@ static struct block *lookup_or_read_block(struct bcache *cache,
636 + // FIXME: this is insufficient. We need to also catch a read
637 + // lock of a write locked block. Ref count needs to distinguish.
638 + if (b->ref_count && (flags & (GF_DIRTY | GF_ZERO)))
639 +- raise("concurrent write lock attempt");
640 ++ raise_("concurrent write lock attempt");
641 +
642 + if (test_flags(b, BF_IO_PENDING)) {
643 + miss(cache, flags);
644 +@@ -858,7 +858,7 @@ struct block *get_block(struct bcache *cache, block_address index, unsigned flag
645 + return b;
646 + }
647 +
648 +- raise("couldn't get block");
649 ++ raise_("couldn't get block");
650 + return NULL;
651 + }
652 +