Introduce parallelism

By using --cores argument to rootfs.py, JOBS= is set in the
live-bootstrap environment, and -j${JOBS} is used on builds. This speeds
larger packages up significantly.

A fair number of packages do not build properly with parallelism. Most
of these, at least for now, are disabled with -j1.
This commit is contained in:
fosslinux 2023-04-10 15:30:16 +10:00
parent f2a0d74bfb
commit d98f97e214
74 changed files with 146 additions and 95 deletions

View file

@ -15,7 +15,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {

View file

@ -11,7 +11,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true DESTDIR="${DESTDIR}"
make "${MAKEJOBS}" MAKEINFO=true DESTDIR="${DESTDIR}"
}
src_install() {

View file

@ -47,7 +47,7 @@ src_compile() {
--disable-shared \
--enable-timeout=15
touch doc/agdoc.texi # build later
make CFLAGS=-Wno-error
make -j1 CFLAGS=-Wno-error
# Fix non-reproducible man-page
awk '{gsub("\\(/tmp/.*", "", $7); print}' agen5/autogen.1 > autogen.1

View file

@ -15,7 +15,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {

View file

@ -47,6 +47,10 @@ src_configure() {
bash_cv_dev_fd=whacky
}
src_compile() {
make -j1 PREFIX="${PREFIX}"
}
src_install() {
install -D bash "${DESTDIR}${PREFIX}/bin/bash"
# Work around weird symlink bug

View file

@ -89,7 +89,7 @@ src_configure() {
src_compile() {
make -C bfd headers
for dir in libiberty bfd opcodes libctf binutils gas gprof ld; do
make -C $dir tooldir=${PREFIX} CFLAGS="-std=c99"
make "${MAKEJOBS}" -C $dir tooldir=${PREFIX} CFLAGS="-std=c99"
done
}

View file

@ -26,7 +26,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make -j1 MAKEINFO=true
}
src_install() {

View file

@ -27,7 +27,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make -j1 MAKEINFO=true
}
src_install() {

View file

@ -42,7 +42,7 @@ src_configure() {
}
src_compile() {
make PREFIX="${PREFIX}" MAKEINFO="true"
make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true"
}
src_install() {

View file

@ -22,7 +22,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {

View file

@ -11,6 +11,6 @@ src_configure() {
./configure \
--prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--disable-shared \
--disable-shared \
CFLAGS='-D_GNU_SOURCE -DNO_GETCONTEXT -DSEARCH_FOR_DATA_START -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR'
}

View file

@ -125,15 +125,15 @@ src_compile() {
ln -s . build/build-i386-unknown-linux-musl
for dir in libiberty libcpp libdecnumber gcc; do
# We have makeinfo now but it is not happy with gcc .info files, so skip it
make -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include" \
make "${MAKEJOBS}" -C build/$dir LIBGCC2_INCLUDES=-I"${PREFIX}/include" \
STMP_FIXINC= GMPLIBS="-lmpc -lmpfr -lgmp" MAKEINFO=true
done
# host_subdir is necessary because we have slightly different build directory layout
make -C build/libgcc PATH="${PATH}:../gcc" CC=../gcc/xgcc \
make "${MAKEJOBS}" -C build/libgcc PATH="${PATH}:../gcc" CC=../gcc/xgcc \
host_subdir=build CFLAGS="-I../gcc/include -I/${PREFIX}/include"
make -C build/libstdc++-v3 PATH="${PATH}:${PWD}/build/gcc" \
make "${MAKEJOBS}" -C build/libstdc++-v3 PATH="${PATH}:${PWD}/build/gcc" \
CXXFLAGS="-I${PWD}/build/gcc/include -I ${PREFIX}/include"
}

View file

@ -21,7 +21,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true CFLAGS="-I${PWD}/libtextstyle/lib"
make "${MAKEJOBS}" MAKEINFO=true CFLAGS="-I${PWD}/libtextstyle/lib"
}
src_install() {

View file

@ -23,7 +23,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true DESTDIR="${DESTDIR}"
make "${MAKEJOBS}" MAKEINFO=true DESTDIR="${DESTDIR}"
}
src_install() {

View file

@ -21,6 +21,8 @@ export SOURCE_DATE_EPOCH=0
# shellcheck source=sysa/helpers.sh
. "${SOURCES}/helpers.sh"
MAKEJOBS="-j${JOBS}"
echo
echo "Installing packages into sysc"
@ -75,6 +77,7 @@ SOURCES=${SOURCES}
DESTDIR=${DESTDIR}
DISTFILES=${DISTFILES}
SRCDIR=${SRCDIR}
MAKEJOBS=${MAKEJOBS}
EOF
exec ./run.sh

View file

@ -14,7 +14,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {

View file

@ -35,7 +35,7 @@ src_configure() {
}
src_compile() {
make AUTOM4TE=autom4te-2.69 MAKEINFO=true
make "${MAKEJOBS}" AUTOM4TE=autom4te-2.69 MAKEINFO=true
}
src_install() {

View file

@ -21,7 +21,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO="true"
make "${MAKEJOBS}" MAKEINFO="true"
}
src_install() {

View file

@ -17,7 +17,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true DESTDIR="${DESTDIR}"
make "${MAKEJOBS}" MAKEINFO=true DESTDIR="${DESTDIR}"
}
src_install() {

View file

@ -20,7 +20,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true DESTDIR="${DESTDIR}"
make "${MAKEJOBS}" MAKEINFO=true DESTDIR="${DESTDIR}"
}
src_install() {

View file

@ -13,7 +13,7 @@ src_configure() {
}
src_compile() {
make CROSS_COMPILE=
make "${MAKEJOBS}" CROSS_COMPILE=
}
src_install() {

View file

@ -16,7 +16,7 @@ src_configure() {
}
src_compile() {
make MAKEINFO=true
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {

View file

@ -36,11 +36,11 @@ src_configure() {
src_compile() {
# Build pgen
pushd Parser
make pgen
make -j1 pgen
popd
# Regen graminit.c and graminit.h
pushd Grammar
make graminit.c
make -j1 graminit.c
popd
# Regenerate some Python scripts using the other regenerated files
@ -56,7 +56,7 @@ src_compile() {
mv Lib/token.py.new Lib/token.py
# Now build the main program
make
make -j1
}
src_install() {

View file

@ -35,11 +35,11 @@ src_configure() {
src_compile() {
# Build pgen
pushd Parser
make pgen
make -j1 pgen
popd
# Regen graminit.c and graminit.h
pushd Grammar
make graminit.c
make -j1 graminit.c
popd
# Regenerate some Python scripts using the other regenerated files
@ -55,7 +55,7 @@ src_compile() {
mv Lib/token.py.new Lib/token.py
# Now build the main program
make
make -j1
}
src_install() {

View file

@ -46,9 +46,9 @@ src_configure() {
src_compile() {
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -59,7 +59,7 @@ src_compile() {
python token.py
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -47,9 +47,9 @@ src_configure() {
src_compile() {
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -60,7 +60,7 @@ src_compile() {
python token.py
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -58,9 +58,9 @@ src_compile() {
# Temporarily break include cycle
patch -Np0 -i graminit-regen.patch
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -73,7 +73,7 @@ src_compile() {
# Undo change
patch -Np0 -R -i graminit-regen.patch
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -52,9 +52,9 @@ src_compile() {
# Temporarily break include cycle
patch -Np0 -i graminit-regen.patch
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -67,7 +67,7 @@ src_compile() {
# Undo change
patch -Np0 -R -i graminit-regen.patch
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -57,9 +57,9 @@ src_compile() {
# Temporarily break include cycle
patch -Np0 -i graminit-regen.patch
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -72,7 +72,7 @@ src_compile() {
# Undo change
patch -Np0 -R -i graminit-regen.patch
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -69,7 +69,7 @@ src_compile() {
# We have to choose the order ourselves because the Makefile is extremely lax about the order
# First of all, do everything that doesn't use any C
rm Modules/_blake2/blake2s_impl.c
make regen-opcode \
make "${MAKEJOBS}" regen-opcode \
regen-opcode-targets \
regen-typeslots \
regen-token \
@ -82,17 +82,17 @@ src_compile() {
regen-global-objects
# Do the freeze regen process
make regen-frozen
make regen-deepfreeze
make regen-global-objects
make "${MAKEJOBS}" regen-frozen
make "${MAKEJOBS}" regen-deepfreeze
make "${MAKEJOBS}" regen-global-objects
make CPPFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
# Regen Python/stdlib_module_names.h (you must have an existing build first)
make regen-stdlib-module-names
make "${MAKEJOBS}" regen-stdlib-module-names
# Now rebuild with proper stdlib_module_names.h
make CPPFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -55,9 +55,9 @@ src_configure() {
src_compile() {
# Build pgen
make Parser/pgen
make "${MAKEJOBS}" Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -69,7 +69,7 @@ src_compile() {
python token.py
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make -j1 CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -58,9 +58,9 @@ src_configure() {
src_compile() {
# Build pgen
make Parser/pgen
make -j1 Parser/pgen
# Regen graminit.c and graminit.h
make Include/graminit.h
make "${MAKEJOBS}" Include/graminit.h
# Regenerate some Python scripts using the other regenerated files
# Must move them out to avoid using Lib/ module files which are
@ -72,7 +72,7 @@ src_compile() {
python token.py
# Now build the main program
make CFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -53,9 +53,9 @@ src_configure() {
src_compile() {
# Regenerations
rm Modules/_blake2/blake2s_impl.c
make regen-all
make "${MAKEJOBS}" regen-all
make CPPFLAGS="-U__DATE__ -U__TIME__"
make "${MAKEJOBS}" CPPFLAGS="-U__DATE__ -U__TIME__"
}
src_install() {

View file

@ -27,7 +27,7 @@ src_configure() {
}
src_compile() {
make PREFIX="${PREFIX}" MAKEINFO="true"
make "${MAKEJOBS}" PREFIX="${PREFIX}" MAKEINFO="true"
}
src_install() {