mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

commit a4e0f1238f6294240eeed3bd71384ca16fba7fb0
parent 9da432ab7fc9e456aa939c5499bf931322949202
Author: Jan Pobrislo <ccx@te2000.cz>
Date:   Wed, 17 Dec 2025 10:35:49 +0000

remove copies of old toolchain, enable debug for gcc

Diffstat:
Dtemplates/pkg/busybox:old | 41-----------------------------------------
Dtemplates/pkg/busybox:oldbootstrap | 37-------------------------------------
Mtemplates/pkg/gcc | 2+-
Dtemplates/pkg/gnu-make:old | 127-------------------------------------------------------------------------------
Dtemplates/pkg/gnu-make:oldbootstrap | 110-------------------------------------------------------------------------------
Dtemplates/pkg/musl-cross-make:old | 196-------------------------------------------------------------------------------
Dtemplates/pkg/musl-cross-make:oldbootstrap-0 | 122-------------------------------------------------------------------------------
Dtemplates/pkg/musl-cross-make:oldbootstrap-1 | 158-------------------------------------------------------------------------------
Dtemplates/pkg/oldbootstrap.environment | 5-----
Dtemplates/pkg/oldsystem.environment | 4----
Mvariants/ccx-x86_64/gcc | 2+-
Mvariants/ccx-x86_64/toolchain.environment | 2+-
Mvariants/root-x86_64/gcc | 2+-
Mvariants/root-x86_64/toolchain.environment | 2+-
14 files changed, 5 insertions(+), 805 deletions(-)

diff --git a/templates/pkg/busybox:old b/templates/pkg/busybox:old @@ -1,41 +0,0 @@ -#!/usr/bin/env pthbs-build -#+{{pkg_install_name("musl-cross-make:old")}} -#+{{pkg_install_name("gnu-make:oldbootstrap")}} -#+{{pkg_install_name("busybox:oldbootstrap")}} -#+{{pkg_install_name("nawk:bootstrap")}} -#@sha256:31b8f61d2173fa36d4409e8e91f52088691d6ba4db13efe19ea7ae7512e64275:busybox/.config -#@git:3621595939e43a831d66f6b757d4f410029bff95:busybox - - -# - build script start - - -prefix=/home/ccx/versions/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd 'busybox' - -export CC="$pthbs_build_environment/command/x86_64-linux-musl-gcc" -export CFLAGS="-D_GNU_SOURCE" -export LDFLAGS="-static" - -cat >>.config <<EOF -CONFIG_BUSYBOX_EXEC_PATH="${prefix}/command/busybox" -EOF -make oldconfig -cat .config - - -make V=1 CROSS_COMPILE=x86_64-linux-musl- LDFLAGS=-static HOSTLDFLAGS=-static \ - HOSTCC="$CC -static" CC="$CC -static" HOSTCFLAGS=-D_GNU_SOURCE -j${JOBS:-1} - -mkdir -p "${dest}/command" -cp -a busybox "${dest}/command/" - - - - -cd "${dest}" -echo false | ./command/busybox --list >/dev/null # test if it works -printf "./command/busybox\t./command/%s\n" busybox bbconfig >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/busybox:oldbootstrap b/templates/pkg/busybox:oldbootstrap @@ -1,37 +0,0 @@ -#!/usr/bin/env pthbs-build -#@pragma:nosandbox -#@pragma:nopath -#+{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} -#+{{pkg_install_name("gnu-make:oldbootstrap")}} -#@git:8d7ae80eda7e08ee361f8793683ae58216caf720:busybox -#@sha256:{{files["busybox_bootstrap.config-8d7ae80eda7e"]}}:busybox/.config - -mcm={{versions}}/{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} -make={{versions}}/{{pkg_install_name("gnu-make:oldbootstrap")}} - -export PATH="$mcm/command:$make/command:$PATH" -export CC="$mcm/command/{{triplet}}-gcc" -export CFLAGS="-D_GNU_SOURCE" -export LDFLAGS="-static" - -cd busybox -$make/{{bindir}}/make \ - -j${JOBS:-1} \ - V=1 \ - CROSS_COMPILE={{triplet}}- \ - LDFLAGS=-static \ - HOSTLDFLAGS=-static \ - HOSTCC="$CC -static" \ - CC="$CC -static" \ - HOSTCFLAGS=-D_GNU_SOURCE \ - -mkdir -p "$pthbs_destdir{{versions}}/$pthbs_package/command" -cp -a busybox "$pthbs_destdir{{versions}}/$pthbs_package/command/" -cd "$pthbs_destdir{{versions}}/$pthbs_package" -echo false | ./command/busybox --list >/dev/null # test if it works -./command/busybox --list | awk ' -$0 == "awk" { next } # seems buggy, use nawk instead -$0 == "bbconfig" { next } -{ print "./command/busybox\t./command/" $0 } -' >.install-links.new -mv .install-links.new .install-links diff --git a/templates/pkg/gcc b/templates/pkg/gcc @@ -96,7 +96,7 @@ mkdir "$objdir" cd "$objdir" st='-static --static' -fl="-g0 -O2" +fl="-g -Og" repro="-ffile-prefix-map=${installdir}=" repro="$repro -ffile-prefix-map=${sysroot}=" repro="$repro -ffile-prefix-map=${src}=builddir" diff --git a/templates/pkg/gnu-make:old b/templates/pkg/gnu-make:old @@ -1,127 +0,0 @@ -#!/usr/bin/env pthbs-build -#+{{pkg_install_name("musl-cross-make:old")}} -#+{{pkg_install_name("gnu-make:oldbootstrap")}} -#+{{pkg_install_name("busybox:oldbootstrap")}} -#+{{pkg_install_name("nawk:bootstrap")}} -#@untar:-z:sha256:dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3:. - - -# - build script start - - -autotools_config() { - prefix=/home/ccx/versions/$pthbs_package - ./configure -C \ - --prefix="$prefix" \ - --build="$(${CC:-gcc} -dumpmachine)" \ - --bindir="$prefix/command" \ - --sbindir="$prefix/command" \ - --infodir="$prefix/info" \ - --localedir="$prefix/locale" \ - --mandir="$prefix/man" \ - --libdir="$prefix/library" \ - --docdir="$prefix/doc/gnu-make" \ - --datadir="$prefix/data" \ - --datarootdir="$prefix/data" \ - --localstatedir='/var/pthbs' \ - "$@" - -} - -build_env_static() { - export LD_LIBRARY_PATH="$pthbs_build_environment/library" - export CPATH="$pthbs_build_environment/include" - export LDFLAGS="-static -L$pthbs_build_environment/library $LDFLAGS" -} - -check_static() { - local exe || true - exe=$pthbs_destdir'/home/ccx/versions'/$pthbs_package/$1 - if ! test -f $exe; then - printf '%s\n' "Error: file '$1' doesn't exist!" - exit 1 - fi - local interp_info || true - interp_info=$(readelf --string-dump=.interp "$exe") || exit $? - if test x '!=' "x$interp_info"; then - printf '%s\n' "Error: '$1' is a dynamic binary!" - exit 1 - fi -} - -prefix=/home/ccx/versions/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd 'make-4.4.1' - - -autotools_config --disable-nls - - -make -j${JOBS:-1} -l$((1+${JOBS:-1})) - -make DESTDIR="$pthbs_destdir" install - - - -check_static command/make - - - -cd "$pthbs_destdir/home/ccx/versions/$pthbs_package" -find -type d -o -print | awk -F/ ' -BEGIN { - x["./command/make"]=1 - x["./man/man1/make.1"]=1 -} - -function r1(s) { - sub("^[.]/[^/]*", ".", s) - return s -} -function s1(repl, s) { - sub("^[.]/[^/]*", "./"repl, s) - return s -} -function link(src) { - x[$0]=0 - printf "%s\t%s\n", $0, src - printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" -} -$1!="."{exit 1} - - -$2 == "config" { link($0); next } -$2 == "keys" { link($0); next } -$2 == "zsh" { link($0); next } -$2 == "env" { link($0); next } -$2 == "command" { link($0); next } -$2 == "bin" { link(s1("command", $0)); next } - -$2 == "library.so" { link($0); next } -$2 == "library" { link($0); next } -$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } -$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } - -$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } - -$2 == "man" { link($0); next } -$2 == "info" { link($0); next } -$2 == "doc" { link($0); next } -$2 == "icons" { link($0); next } -$2 == "terminfo" { link($0); next } -$2 == "data" { link($0); next } -$2 == "include" { link($0); next } - -{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } - -END { - for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } - for(fname in x) { - if(x[fname]) { - printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" - exit 3 - } - } -}' >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/gnu-make:oldbootstrap b/templates/pkg/gnu-make:oldbootstrap @@ -1,110 +0,0 @@ -#!/usr/bin/env pthbs-build -#@pragma:nosandbox -#@pragma:nopath -#+{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} -#@untar:-z:sha256:dd16fb1d67bfab79a72f5e8390735c49e3e8e70b4945a15ab1f81ddb78658fb3:. - - -# - build script start - - -autotools_config() { - prefix={{versions}}/$pthbs_package - ./configure -C \ - --prefix="$prefix" \ - --bindir="$prefix/command" \ - --sbindir="$prefix/command" \ - --infodir="$prefix/info" \ - --localedir="$prefix/locale" \ - --mandir="$prefix/man" \ - --libdir="$prefix/library" \ - --docdir="$prefix/doc/gnu-make" \ - --datadir="$prefix/data" \ - --datarootdir="$prefix/data" \ - --localstatedir='/var/pthbs' \ - "$@" - -} - -prefix={{versions}}/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd 'make-4.4.1' - - -mcm={{versions}}/{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} - -export PATH="$mcm/command:$PATH" -export CC="$mcm/command/{{triplet}}-gcc" -export CXX="$mcm/command/{{triplet}}-g++" -export CFLAGS="-D_GNU_SOURCE" -export LDFLAGS="-static" - -autotools_config --disable-nls - - -make -j${JOBS:-1} -l$((1+${JOBS:-1})) - -make DESTDIR="$pthbs_destdir" install - - - - - -cd "$pthbs_destdir{{versions}}/$pthbs_package" -find -type d -o -print | awk -F/ ' -BEGIN { - x["./command/make"]=1 - x["./man/man1/make.1"]=1 -} - -function r1(s) { - sub("^[.]/[^/]*", ".", s) - return s -} -function s1(repl, s) { - sub("^[.]/[^/]*", "./"repl, s) - return s -} -function link(src) { - x[$0]=0 - printf "%s\t%s\n", $0, src - printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" -} -$1!="."{exit 1} - - -$2 == "config" { link($0); next } -$2 == "keys" { link($0); next } -$2 == "zsh" { link($0); next } -$2 == "env" { link($0); next } -$2 == "command" { link($0); next } -$2 == "bin" { link(s1("command", $0)); next } - -$2 == "library.so" { link($0); next } -$2 == "library" { link($0); next } -$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } -$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } - -$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } - -$2 == "man" { link($0); next } -$2 == "info" { link($0); next } -$2 == "doc" { link($0); next } -$2 == "icons" { link($0); next } -$2 == "terminfo" { link($0); next } -$2 == "data" { link($0); next } -$2 == "include" { link($0); next } - -{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } - -END { - for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } - for(fname in x) { - if(x[fname]) { - printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" - exit 3 - } - } -}' >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/musl-cross-make:old b/templates/pkg/musl-cross-make:old @@ -1,196 +0,0 @@ -{%- import "package_sets" as ps -%} -#!/usr/bin/env pthbs-build -#@pragma:nofail_digest -#+{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} -#+{{pkg_install_name("gnu-make:oldbootstrap")}} -#+{{pkg_install_name("busybox:oldbootstrap")}} -#+{{pkg_install_name("nawk:bootstrap")}} -{{ ps.mcm_sources( - gcc="gcc-14.3.0.tar.xz", - linux="linux-6.15.7.tar.xz", - musl="musl-1.2.5.tar.gz", - binutils="binutils-2.44.tar.gz", - gmp="gmp-6.3.0.tar.xz", - mpfr="mpfr-4.2.2.tar.xz", - mpc="mpc-1.3.1.tar.gz" -) }} -#@sha256:4213e75809588e3f32ae0fde8fb11df2dfd6e0e013762ff5ee951c3aadb7ffc0:musl-cross-make/patches/linux-6.15.7/0001-no-rsync-headers.diff -#@sha256:68140a82582ede938159630bca0fb13a93b4bf1cb2e85b08943c26242cf8f3a6:zpipe.c -#@git:{{submodule.current["musl-cross-make"]}}:musl-cross-make - - -# - build script start - -PATH="$pthbs_build_environment/command:$PATH" - -prefix={{versions}}/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd '.' - -# For validating the compiler -printf '%s\n' 'int main(void) { return 0; }' >true.c - -printf '%s\n' >musl-cross-make/config.mak \ - "OUTPUT=${pthbs_destdir%/}{{versions}}/$pthbs_package" \ - "TARGET={{triplet}}" \ - 'GCC_VER=14.3.0' \ - 'LINUX_VER=6.15.7' \ - 'MUSL_VER=1.2.5' \ - 'BINUTILS_VER=2.44' \ - 'GMP_VER=6.3.0' \ - 'MPC_VER=1.3.1' \ - 'MPFR_VER=4.2.2' \ - 'st=-static --static' \ - 'fl=-g0 -O2' \ - "command=$pthbs_build_environment/command" \ - 'COMMON_CONFIG += CFLAGS="${fl} ${st}" CXXFLAGS="${fl} ${st}" FFLAGS="${fl}" LDFLAGS="-s ${st}"' \ - 'COMMON_CONFIG += CC="${command}/{{triplet}}-gcc ${st}" CXX="${command}/{{triplet}}-g++ ${st}"' - - -touch musl-cross-make/sources/* - - -# Patch linker path for dynamic executables -make -C musl-cross-make gcc-14.3.0 -sed -i -e 's|/lib/ld-musl-|{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/ld-musl-|' musl-cross-make/gcc-14.3.0/gcc/config/*/linux*.h -make -j${JOBS:-1} -l$((1+${JOBS:-1})) -C musl-cross-make || exit $? -make -C musl-cross-make install || exit $? - -mv "$dest/{{triplet}}/include" "$dest/" -mv "$dest/bin" "$dest/command" -mv "$dest/{{triplet}}/bin"/* "$dest/command/" - -ln -s ../include "$dest/{{triplet}}/include" -ln -s ./command "$dest/bin" -ln -s ../command "$dest/{{triplet}}/bin" - -dd=$pthbs_destdir/{{versions}}/$pthbs_package - -# Override linker symlink -for linkname in "$dd"'/{{triplet}}/lib/'ld-musl-*so*; do - ln -s -f libc.so "$linkname" -done - -# Validate the compiler -"$dd"'/command/{{triplet}}-gcc' --version -"$dd"'/command/{{triplet}}-gcc' -o true true.c -"$dd"'/command/{{triplet}}-readelf' --string-dump=.interp true >true.linker -grep -F "$pthbs_package" true.linker - -pkgs="gmp mpc mpfr zlib" -#pkgs="$pkgs libbacktrace libcc1 libcpp libdecnumber libiberty lto-plugin" - -for pkg in $pkgs; do - make -C musl-cross-make/build/local/{{triplet}}/obj_gcc/$pkg prefix=/ DESTDIR="$dd" install -done -cp -va musl-cross-make/gcc-*.orig/zlib/zconf.h musl-cross-make/gcc-*.orig/zlib/zlib.h "$dd/include/" -mkdir -p "$dd/library/pkgconfig" -printf '%s\n' > "$dd/library/pkgconfig/zlib.pc" \ - "prefix={{versions}}/$pthbs_package" \ - 'exec_prefix=${prefix}' \ - 'includedir=${prefix}/include' \ - 'libdir=${exec_prefix}/library' \ - '' \ - 'Name: zlib' \ - 'Description: zlib compression library' \ - 'Version: 1.2.11' \ - '' \ - 'Requires:' \ - 'Libs: -L${libdir} -lz' \ - 'Cflags: -I${includedir}' - - -# validate zlib -"$dd"'/command/{{triplet}}-gcc' -I"$dd/include" -L"$dd/lib" -static -o zpipe zpipe.c -lz -./zpipe <true.c >true.c.gz -./zpipe -d <true.c.gz >true.c.2 -cmp -s true.c true.c.2 - - - -cd "$pthbs_destdir{{versions}}/$pthbs_package" -find -type d -o -print | awk -F/ ' -BEGIN { - x["./command/{{triplet}}-g++"]=1 - x["./command/{{triplet}}-gcc"]=1 - x["./include/linux/landlock.h"]=1 - - x["./lib/libgmp.a"]=1 - x["./lib/libmpc.a"]=1 - x["./lib/libmpfr.a"]=1 - x["./lib/libz.a"]=1 - - x["./include/gmp.h"]=1 - x["./include/mpc.h"]=1 - x["./include/mpf2mpfr.h"]=1 - x["./include/mpfr.h"]=1 - x["./include/zlib.h"]=1 - x["./include/zconf.h"]=1 -} - -function r1(s) { - sub("^[.]/[^/]*", ".", s) - return s -} -function s1(repl, s) { - sub("^[.]/[^/]*", "./"repl, s) - return s -} -function link(src) { - x[$0]=0 - printf "%s\t%s\n", $0, src - printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" -} -$1!="."{exit 1} - -$2 == "command" && $3 ~ /^{{triplet}}-/ && ! ( \ - $3 == "{{triplet}}-ar" || \ - $3 == "{{triplet}}-as" || \ - $3 == "{{triplet}}-ld" || \ - $3 == "{{triplet}}-ld.bfd" || \ - $3 == "{{triplet}}-nm" || \ - $3 == "{{triplet}}-objcopy" || \ - $3 == "{{triplet}}-objdump" || \ - $3 == "{{triplet}}-ranlib" || \ - $3 == "{{triplet}}-readelf" || \ - $3 == "{{triplet}}-strip" \ -) { - target=$3 - sub("{{triplet}}-", "", target) - link("./command/" target) -} -$2 == "command" { link($0); next } - -$2 == "config" { link($0); next } -$2 == "keys" { link($0); next } -$2 == "zsh" { link($0); next } -$2 == "env" { link($0); next } - -$2 == "library.so" { link($0); next } -$2 == "library" { link($0); next } -$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } -$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } - -$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } - -$2 == "man" { link($0); next } -$2 == "info" { link($0); next } -$2 == "doc" { link($0); next } -$2 == "icons" { link($0); next } -$2 == "terminfo" { link($0); next } -$2 == "data" { link($0); next } -$2 == "include" { link($0); next } - -{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } - -END { - for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } - for(fname in x) { - if(x[fname]) { - printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" - exit 3 - } - } -}' >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/musl-cross-make:oldbootstrap-0 b/templates/pkg/musl-cross-make:oldbootstrap-0 @@ -1,122 +0,0 @@ -{%- import "package_sets" as ps -%} -#!/usr/bin/env pthbs-build -#@pragma:nosandbox -#@pragma:nopath -{{ ps.mcm_sources( - gcc="gcc-9.4.0.tar.xz", - linux="linux-headers-4.19.88-2.tar.xz", - musl="musl-1.2.5.tar.gz", - binutils="binutils-2.44.tar.gz", - gmp="gmp-6.3.0.tar.xz", - mpfr="mpfr-4.2.2.tar.xz", - mpc="mpc-1.3.1.tar.gz" -) }} -#@git:{{submodule.current["musl-cross-make"]}}:musl-cross-make - - -# - build script start - - -prefix={{versions}}/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd '.' - -# For validating the compiler -printf '%s\n' 'int main(void) { return 0; }' >true.c - -printf '%s\n' >musl-cross-make/config.mak \ - "OUTPUT=${pthbs_destdir%/}{{versions}}/$pthbs_package" \ - "TARGET={{triplet}}" \ - 'GCC_VER=9.4.0' \ - 'MUSL_VER=1.2.5' \ - 'BINUTILS_VER=2.44' \ - 'GMP_VER=6.3.0' \ - 'MPC_VER=1.3.1' \ - 'MPFR_VER=4.2.2' \ - 'fl=-g0 -O2' \ - 'COMMON_CONFIG += CFLAGS="${fl}" CXXFLAGS="${fl}" FFLAGS="${fl}" LDFLAGS="-s"' - -touch musl-cross-make/sources/* - - -# Patch linker path for dynamic executables -make -C musl-cross-make gcc-9.4.0 -sed -i -e 's|/lib/ld-musl-|{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/ld-musl-|' musl-cross-make/gcc-9.4.0/gcc/config/*/linux*.h - -make -j${JOBS:-1} -l$((1+${JOBS:-1})) -C musl-cross-make -make -C musl-cross-make install - -# Override linker symlink -for linkname in "${pthbs_destdir%/}"'{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/'ld-musl-*so*; do - ln -s -f libc.so "$linkname" -done - -# Validate the compiler -"${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-gcc' --version -"${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-gcc' -o true true.c -"${pthbs_destdir%/}"'{{versions}}'"/$pthbs_package/bin/"'{{triplet}}-readelf' --string-dump=.interp true >true.linker -grep -F "$pthbs_package" true.linker - - - - -cd "$pthbs_destdir{{versions}}/$pthbs_package" -find -type d -o -print | awk -F/ ' -BEGIN { - x["./bin/{{triplet}}-g++"]=1 - x["./bin/{{triplet}}-gcc"]=1 -} - -function r1(s) { - sub("^[.]/[^/]*", ".", s) - return s -} -function s1(repl, s) { - sub("^[.]/[^/]*", "./"repl, s) - return s -} -function link(src) { - x[$0]=0 - printf "%s\t%s\n", $0, src - printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" -} -$1!="."{exit 1} - - -$2 == "bin" && $3 ~ /^{{triplet}}-/ { target=$3; sub("{{triplet}}-", "", target); link("./command/" target) } - -$2 == "config" { link($0); next } -$2 == "keys" { link($0); next } -$2 == "zsh" { link($0); next } -$2 == "env" { link($0); next } -$2 == "command" { link($0); next } -$2 == "bin" { link(s1("command", $0)); next } - -$2 == "library.so" { link($0); next } -$2 == "library" { link($0); next } -$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } -$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } - -$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } - -$2 == "man" { link($0); next } -$2 == "info" { link($0); next } -$2 == "doc" { link($0); next } -$2 == "icons" { link($0); next } -$2 == "terminfo" { link($0); next } -$2 == "data" { link($0); next } -$2 == "include" { link($0); next } - -{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } - -END { - for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } - for(fname in x) { - if(x[fname]) { - printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" - exit 3 - } - } -}' >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/musl-cross-make:oldbootstrap-1 b/templates/pkg/musl-cross-make:oldbootstrap-1 @@ -1,158 +0,0 @@ -{%- import "package_sets" as ps -%} -#!/usr/bin/env pthbs-build -#@pragma:nofail_digest -#@pragma:nosandbox -#@pragma:nopath -#+{{pkg_install_name("musl-cross-make:bootstrap-0")}} -#+{{pkg_install_name("nawk:bootstrap")}} -{{ ps.mcm_sources( - gcc="gcc-14.3.0.tar.xz", - linux="linux-6.15.7.tar.xz", - musl="musl-1.2.5.tar.gz", - binutils="binutils-2.44.tar.gz", - gmp="gmp-6.3.0.tar.xz", - mpfr="mpfr-4.2.2.tar.xz", - mpc="mpc-1.3.1.tar.gz" -) }} -#@sha256:4213e75809588e3f32ae0fde8fb11df2dfd6e0e013762ff5ee951c3aadb7ffc0:musl-cross-make/patches/linux-6.15.7/0001-no-rsync-headers.diff -#@git:{{submodule.current["musl-cross-make"]}}:musl-cross-make - - -# - build script start - - -prefix={{versions}}/$pthbs_package -dest=${pthbs_destdir%/}${prefix} -cd '.' - -bootstrap={{versions}}/{{pkg_install_name("musl-cross-make:bootstrap-0")}} -"$bootstrap/bin/{{triplet}}-gcc" --version - -# For validating the compiler -printf '%s\n' 'int main(void) { return 0; }' >true.c - -printf '%s\n' >musl-cross-make/config.mak \ - "OUTPUT=${pthbs_destdir%/}{{versions}}/$pthbs_package" \ - 'GCC_VER=14.3.0' \ - 'LINUX_VER=6.15.7' \ - 'MUSL_VER=1.2.5' \ - 'BINUTILS_VER=2.44' \ - 'GMP_VER=6.3.0' \ - 'MPC_VER=1.3.1' \ - 'MPFR_VER=4.2.2' \ - "TARGET={{triplet}}" \ - 'st=-static --static' \ - 'fl=-g0 -O2' \ - "bbin=$bootstrap/bin" \ - 'COMMON_CONFIG += CFLAGS="${fl}" CXXFLAGS="${fl}" FFLAGS="${fl}" LDFLAGS="-s ${st}"' \ - 'COMMON_CONFIG += CC="${bbin}/{{triplet}}-gcc ${st}" CXX="${bbin}/{{triplet}}-g++ ${st}"' - -touch musl-cross-make/sources/* - - -# Patch linker path for dynamic executables -make -C musl-cross-make gcc-14.3.0 -sed -i -e 's|/lib/ld-musl-|{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/ld-musl-|' musl-cross-make/gcc-14.3.0/gcc/config/*/linux*.h - -export PATH="$pthbs_build_environment/command:$PATH" -make -j${JOBS:-1} -l$((1+${JOBS:-1})) -C musl-cross-make -make -C musl-cross-make install - -mv "$dest/{{triplet}}/include" "$dest/" -mv "$dest/bin" "$dest/command" -mv "$dest/{{triplet}}/bin"/* "$dest/command/" - -ln -s ../include "$dest/{{triplet}}/include" -ln -s ./command "$dest/bin" -ln -s ../command "$dest/{{triplet}}/bin" - -# Override linker symlink -for linkname in "${pthbs_destdir%/}"'{{versions}}/'"$pthbs_package"'/{{triplet}}/lib/'ld-musl-*so*; do - ln -s -f libc.so "$linkname" -done - -# Validate the compiler -"$dest/command/"'{{triplet}}-gcc' --version -"$dest/command/"'{{triplet}}-gcc' -o true true.c -"$dest/command/"'{{triplet}}-readelf' --string-dump=.interp true >true.linker -grep -F "$pthbs_package" true.linker - - - - -cd "$pthbs_destdir{{versions}}/$pthbs_package" - -find -type d -o -print | awk -F/ ' -BEGIN { - x["./command/{{triplet}}-g++"]=1 - x["./command/{{triplet}}-gcc"]=1 - x["./include/linux/landlock.h"]=1 -} - -function r1(s) { - sub("^[.]/[^/]*", ".", s) - return s -} -function s1(repl, s) { - sub("^[.]/[^/]*", "./"repl, s) - return s -} -function link(src) { - x[$0]=0 - printf "%s\t%s\n", $0, src - printf "genlinks >>%s\t%s<<\n", $0, src >>"/dev/stderr" -} -$1!="."{exit 1} - - -$2 == "command" && $3 ~ /^{{triplet}}-/ && ! ( \ - $3 == "{{triplet}}-ar" || \ - $3 == "{{triplet}}-as" || \ - $3 == "{{triplet}}-ld" || \ - $3 == "{{triplet}}-ld.bfd" || \ - $3 == "{{triplet}}-nm" || \ - $3 == "{{triplet}}-objcopy" || \ - $3 == "{{triplet}}-objdump" || \ - $3 == "{{triplet}}-ranlib" || \ - $3 == "{{triplet}}-readelf" || \ - $3 == "{{triplet}}-strip" \ -) { - target=$3 - sub("{{triplet}}-", "", target) - link("./command/" target) -} -$2 == "command" { link($0); next } - -$2 == "config" { link($0); next } -$2 == "keys" { link($0); next } -$2 == "zsh" { link($0); next } -$2 == "env" { link($0); next } - -$2 == "library.so" { link($0); next } -$2 == "library" { link($0); next } -$2 == "lib" && $NF ~ /\.l?a$/ { link(s1("library", $0)); next } -$2 == "lib" && $NF ~ /\.so(\..*)?$/ { link(s1("library.so", $0)); next } - -$2 == "share" && $3 ~ /^(info|man|doc|icons|terminfo)$/ { link(r1($0)); next } - -$2 == "man" { link($0); next } -$2 == "info" { link($0); next } -$2 == "doc" { link($0); next } -$2 == "icons" { link($0); next } -$2 == "terminfo" { link($0); next } -$2 == "data" { link($0); next } -$2 == "include" { link($0); next } - -{ printf "genlinks ##%s## skipped\n", $0 >>"/dev/stderr" } - -END { - for(fname in x) { printf "DEBUG: x[\"%s\"]=\"%s\"\n", fname, x[fname] >"/dev/stderr" } - for(fname in x) { - if(x[fname]) { - printf "ERROR: missing expected file \"%s\"\n", fname >"/dev/stderr" - exit 3 - } - } -}' >.install-links.new -mv .install-links.new .install-links - -{# extra line for matching hash #} diff --git a/templates/pkg/oldbootstrap.environment b/templates/pkg/oldbootstrap.environment @@ -1,5 +0,0 @@ -#!/usr/bin/env pthbs-build -#+{{pkg_install_name("busybox:oldbootstrap")}} -#+{{pkg_install_name("nawk:bootstrap")}} -#+{{pkg_install_name("gnu-make:oldbootstrap")}} -#+{{pkg_install_name("musl-cross-make:oldbootstrap-1")}} diff --git a/templates/pkg/oldsystem.environment b/templates/pkg/oldsystem.environment @@ -1,4 +0,0 @@ -#!/usr/bin/env pthbs-build -#+{{pkg_install_name("musl-cross-make:old")}} -#+{{pkg_install_name("busybox:old")}} -#+{{pkg_install_name("gnu-make:old")}} diff --git a/variants/ccx-x86_64/gcc b/variants/ccx-x86_64/gcc @@ -114,7 +114,7 @@ mkdir "$objdir" cd "$objdir" st='-static --static' -fl="-g0 -O2" +fl="-g -Og" repro="-ffile-prefix-map=${installdir}=" repro="$repro -ffile-prefix-map=${sysroot}=" repro="$repro -ffile-prefix-map=${src}=builddir" diff --git a/variants/ccx-x86_64/toolchain.environment b/variants/ccx-x86_64/toolchain.environment @@ -1,4 +1,4 @@ #!/usr/bin/env pthbs-build #+musl.ab3439f0d135622f4b857997ecbda84ac545422db148012987cca66241aaf7f6 -#+gcc.f4f25b94088ba9f9c3edcf36eefed2e23b797250fe5ed05d506428863c7d7c61 +#+gcc.3509e997587c11845daf5ff0477b7b79be35a94a7b3f7c7f3a498b9762e31cfb #+binutils.e27b3c2c7968d0c9ecd3f1be245f3ae14f44e4eeb82cd538cfc0f96f1afc4ef0 \ No newline at end of file diff --git a/variants/root-x86_64/gcc b/variants/root-x86_64/gcc @@ -114,7 +114,7 @@ mkdir "$objdir" cd "$objdir" st='-static --static' -fl="-g0 -O2" +fl="-g -Og" repro="-ffile-prefix-map=${installdir}=" repro="$repro -ffile-prefix-map=${sysroot}=" repro="$repro -ffile-prefix-map=${src}=builddir" diff --git a/variants/root-x86_64/toolchain.environment b/variants/root-x86_64/toolchain.environment @@ -1,4 +1,4 @@ #!/usr/bin/env pthbs-build #+musl.1358b81a27c11cc51948ea8c8732f646d6f02ed63f255e63e3633fe9ae023664 -#+gcc.4a9f7536c6d9acbc119c41f57b8647e7f9a21b155773080657a9e2dc331d3525 +#+gcc.7d2bfe5f799351d5ce74e22b3ffc93c950e3b5774a1e45d776cc90750ad88f6c #+binutils.06634a7c6783445d52e5e45894b0c379f5be4df44124169e50096929bef7b5ee \ No newline at end of file