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