- Rather than using part-by-part build of Binutils, use autogen and full
./configure, make build.
- Enable some other modern features, including the gold linker, threaded
linking and 64-bit linking.
- This allows GCC 12 to build unhindered by binutils.
The motivations for this are complicated, but on musl systems, musl
will use its own libssp implementation, so GCC's libssp is not required.
Not to mention that GCC's libssp implementation is questionable at best.
This is the approach taken by the two major musl distributions - Alpine
Linux and Void Linux.
The main motivations to have this are:
* Detect checksum changes with chroot/bwrap builds
* Avoid removing checksums from `SHA256SUMS.pkgs` when unsing `--update-checksums`
* Find crashes that would otherwise be missed in `builder-hex0`
Fixes https://github.com/fosslinux/live-bootstrap/issues/281.
This is adding a null pointer check to `fill_local_got_entries` in tcc 0.9.27. This is rather a workaround because I am not sure if it is legit for that pointer to be null.
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 is achieved by transplanting 3.0.7's psyntax-pp.scm into 3.0.9
which works flawlessly.
This is required for parallelism, since <3.0.8 is irreproducible when
-jN is used.
The source tarball is provided as part of sysa distfiles and copied to sysc, which resolves the issue of finding a reliable plain HTTP mirror for curl.
Splitted from https://github.com/fosslinux/live-bootstrap/pull/253.
By default, curls downloads the HTML error page and exits with code 0 when a server replies with a HTTP error code (e.g., 404), causing a SHA256 mismatch afterwards.
Adding the `--fail` flag makes curl exit with non-zero error code and print an error like "The requested URL returned error: 404", making it a bit easier to diagnose distfile download issues.
Also replaced `-L` with `--location` for the sake of script readability.
by using find-option -xdev and so: do not try to operate on
e.g. /proc which avoid messages like:
touch: setting times of '/proc/fs/nfsd': Operation not permitted
touch: setting times of '/proc/1': Operation not permitted
closes#264
* get_files produces list without extra ./ between extra subdirectories.
* Emtry directories are also included.
* Simplified src_pkg function.
* Use local variables instead of unsetting global variables in src_apply.
--with-sysroot removal is insufficient.
There is bad behaviour somewhere that causes --with-sysroot=no as the
default, and then sysroot to be set to 'no'. In reality, we should have
literally no sysroot; so set --with-sysroot=
This option is erroneous and only worked by chance.
sysroot is prepended to all library search paths when working correctly,
eg, /usr/lib turns into /usr/usr/lib when --with-sysroot=/usr.
Previously, symlinks to directories were followed early
in the bootstrap. This is incorrect behaviour.
While never actually encountered (hence no checksum changes),
this could be a problem.
Environment variables "pollute" the build environment of packages and
can affect their output.
This change results in the removal of some files from packages that
were not meant to be packaged. It also removes the need for a
workaround in automake 1.10.3 to manually remove such files.
Variables are now saved in an .env file for each system and included
in scripts that need them using the dot operation.
Unlike make 3.80, make 3.82 makes a call to putenv which does not exist
in mes libc so a stub was created for this function.
The checksum for the util-linux package required an update.
When built with original make 3.80 it resulted in an extra file
/usr/share/man/man8/.8 that does not exist when building with 3.82