From e6ba0cb2cda119863548899d77bbd909e5858b0c Mon Sep 17 00:00:00 2001 From: Denis Benato Date: Thu, 12 Dec 2024 02:16:09 +0100 Subject: [PATCH] Reorganize stuff --- build.sh | 767 +++++++++++++++++++++++++++---------------------------- 1 file changed, 373 insertions(+), 394 deletions(-) diff --git a/build.sh b/build.sh index 2c830a7..02c10f2 100755 --- a/build.sh +++ b/build.sh @@ -56,56 +56,64 @@ if [ -z "$TARGET_TRIPLET_ARCH" ] || [ -z "$TARGET_TRIPLET_VENDOR" ] || [ -z "$TA exit 1 fi -export LFS_TGT="$TARGET_TRIPLET_ARCH-$TARGET_TRIPLET_VENDOR-$TARGET_TRIPLET_OS-$TARGET_TRIPLET_GNUEABI" - -if [ ! -d "$LFS_TGT" ]; then - export LFS="$(pwd)/out/$LFS_TGT/rootfs" - - echo "Target rootfs set to '$LFS_TGT'. You can override this by setting the LFS_TGT env var." -fi +export TARGET_MACHINE_TRIPLET="$TARGET_TRIPLET_ARCH-$TARGET_TRIPLET_VENDOR-$TARGET_TRIPLET_OS-$TARGET_TRIPLET_GNUEABI" +export LFS="$(pwd)/out/$TARGET_MACHINE_TRIPLET/rootfs" bash version-check.sh export BUILD_MACHINE_TRIPLET=$(gcc -dumpmachine) -export TARGET_MACHINE_TRIPLET=$LFS_TGT # Create the target directory export STEPS_DIR="$LFS/../steps/" -export LFS_BUILD="$LFS/../build/" -export LFS_TOOLS="$LFS/tools" +export TMP_BUILD_DIR="$LFS/../build/" +export CROSS_TOOLS_DIR="$LFS/tools" mkdir -p "$LFS" mkdir -vp "$STEPS_DIR" -mkdir -vp "$LFS_TOOLS" -mkdir -vp "$LFS_BUILD" +mkdir -vp "$CROSS_TOOLS_DIR" +mkdir -vp "$TMP_BUILD_DIR" -export PATH="$LFS_TOOLS/bin/:$PATH" +export PATH="$CROSS_TOOLS_DIR/bin/:$PATH" unset CFLAGS unset LDFLAGS setup_toolchain() { export BUILD_CC=gcc - export CC="$LFS_TGT-gcc" - export CPP="$LFS_TGT-cpp" - export CXX="$LFS_TGT-g++" - export AS="$LFS_TGT-as" - export LD="$LFS_TGT-ld" - export AR="$LFS_TGT-ar" - export NM="$LFS_TGT-nm" - export RANLIB="$LFS_TGT-ranlib" - export STRIP="$LFS_TGT-strip" - export OBJDUMP="$LFS_TGT-objdump" - export READELF="$LFS_TGT-readelf" + export CC="$TARGET_MACHINE_TRIPLET-gcc" + export CPP="$TARGET_MACHINE_TRIPLET-cpp" + export CXX="$TARGET_MACHINE_TRIPLET-g++" + export AS="$TARGET_MACHINE_TRIPLET-as" + export LD="$TARGET_MACHINE_TRIPLET-ld" + export AR="$TARGET_MACHINE_TRIPLET-ar" + export NM="$TARGET_MACHINE_TRIPLET-nm" + export RANLIB="$TARGET_MACHINE_TRIPLET-ranlib" + export STRIP="$TARGET_MACHINE_TRIPLET-strip" + export OBJDUMP="$TARGET_MACHINE_TRIPLET-objdump" + export READELF="$TARGET_MACHINE_TRIPLET-readelf" export CPPFLAGS="" - export CFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$LFS_TOOLS/lib -L$LFS/usr/lib -I$LFS_TOOLS/include -I$LFS_TOOLS/$LFS_TGT/include" - export CXXFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$LFS_TOOLS/lib -L$LFS/usr/lib -I$LFS_TOOLS/include -I$LFS_TOOLS/$LFS_TGT/include -I$LFS_TOOLS/$LFS_TGT/include/c++/14.2.0/ -I$LFS_TOOLS/$LFS_TGT/include/c++/14.2.0/$LFS_TGT" - export LDFLAGS=" -L$LFS/usr/lib -L$LFS_TOOLS/lib" + export CFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$CROSS_TOOLS_DIR/lib -L$LFS/usr/lib -I$CROSS_TOOLS_DIR/include -I$CROSS_TOOLS_DIR/$TARGET_MACHINE_TRIPLET/include" + export CXXFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$CROSS_TOOLS_DIR/lib -L$LFS/usr/lib -I$CROSS_TOOLS_DIR/include -I$CROSS_TOOLS_DIR/$TARGET_MACHINE_TRIPLET/include -I$CROSS_TOOLS_DIR/$TARGET_MACHINE_TRIPLET/include/c++/14.2.0/ -I$CROSS_TOOLS_DIR/$TARGET_MACHINE_TRIPLET/include/c++/14.2.0/$TARGET_MACHINE_TRIPLET" + export LDFLAGS=" -L$LFS/usr/lib -L$CROSS_TOOLS_DIR/lib" export LD_LIBRARY_PATH_old="$LD_LIBRARY_PATH" - export LD_LIBRARY_PATH="$LFS_TOOLS/lib $LFS/usr/lib" - export PKG_CONFIG_LIBDIR="$LFS_TOOLS/lib $LFS/usr/lib" + export LD_LIBRARY_PATH="$CROSS_TOOLS_DIR/lib $LFS/usr/lib" + export PKG_CONFIG_LIBDIR="$CROSS_TOOLS_DIR/lib $LFS/usr/lib" export SYSROOT="$LFS" #unset LD_LIBRARY_PATH + + echo "[binaries]" > meson_cross.txt + echo "c = '$CC'" >> meson_cross.txt + echo "cpp = '$CPP'" >> meson_cross.txt + echo "ar = '$AR'" >> meson_cross.txt + #echo "windres = 'x86_64-w64-mingw32-windres'" >> meson_cross.txt + echo "strip = '$STRIP'" >> meson_cross.txt + echo "exe_wrapper = 'wine64'" >> meson_cross.txt + echo "" >> meson_cross.txt + echo "[host_machine]" >> meson_cross.txt + echo "system = 'linux'" >> meson_cross.txt + echo "cpu_family = '$CPU_FAMILY'" >> meson_cross.txt + echo "cpu = '$CPU'" >> meson_cross.txt + echo "endian = '$TARGET_ENDIANNESS'" >> meson_cross.txt } host_toolchain() { @@ -145,52 +153,52 @@ fi # Build binutils if [ ! -f "$STEPS_DIR/binutils" ]; then - if [ ! -d "$LFS_BUILD/binutils" ]; then + if [ ! -d "$TMP_BUILD_DIR/binutils" ]; then tar -xf "$BASE_DIR/sources/binutils-2.43.tar.zst" - mv "binutils-2.43" "$LFS_BUILD/binutils" + mv "binutils-2.43" "$TMP_BUILD_DIR/binutils" fi - cd "$LFS_BUILD/binutils" + cd "$TMP_BUILD_DIR/binutils" mkdir -vp build cd build - "../configure" \ - --prefix=$LFS_TOOLS \ - --with-sysroot=$LFS \ - --target=$LFS_TGT \ - --with-gnu-as \ - --with-gnu-ld \ - --enable-ld=default \ - --enable-shared \ - --disable-nls \ - --enable-gprofng=no \ - --disable-werror \ - --enable-new-dtags \ - --disable-multilib \ - --disable-libquadmath \ - --disable-libquadmath-support \ - --enable-plugins \ - --enable-deterministic-archives \ + "../configure" \ + --prefix=$CROSS_TOOLS_DIR \ + --with-sysroot=$LFS \ + --target=$TARGET_MACHINE_TRIPLET \ + --with-gnu-as \ + --with-gnu-ld \ + --enable-ld=default \ + --enable-shared \ + --disable-nls \ + --enable-gprofng=no \ + --disable-werror \ + --enable-new-dtags \ + --disable-multilib \ + --disable-libquadmath \ + --disable-libquadmath-support \ + --enable-plugins \ + --enable-deterministic-archives \ --enable-default-hash-style=gnu make -j 32 make -j 32 install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/binutils" + rm -rf "$TMP_BUILD_DIR/binutils" touch "$STEPS_DIR/binutils" fi # Install kernel headers if [ ! -f "$STEPS_DIR/linux-headers" ]; then - if [ ! -d "$LFS_BUILD/linux" ]; then + if [ ! -d "$TMP_BUILD_DIR/linux" ]; then tar -xzf "$BASE_DIR/sources/linux-$LINUX_VERSION.tar.gz" - mv "linux-$LINUX_VERSION" "$LFS_BUILD/linux" + mv "linux-$LINUX_VERSION" "$TMP_BUILD_DIR/linux" fi - cd "$LFS_BUILD/linux" + cd "$TMP_BUILD_DIR/linux" make mrproper make headers_install ARCH="$KERNEL_ARCH" INSTALL_HDR_PATH="$LFS/usr" cd "$BASE_DIR" - #rm -rf "$LFS_BUILD/linux" + #rm -rf "$TMP_BUILD_DIR/linux" touch "$STEPS_DIR/linux-headers" fi @@ -199,17 +207,17 @@ export LDFLAGS="$LDFLAGS -Bstatic " # Build gcc if [ ! -f "$STEPS_DIR/gcc-step1" ]; then - bash unpack-gcc.sh "$LFS_BUILD/" - cd "$LFS_BUILD/gcc/" + bash unpack-gcc.sh "$TMP_BUILD_DIR/" + cd "$TMP_BUILD_DIR/gcc/" mkdir -vp build-step1 cd build-step1 "../configure" \ - --target=$LFS_TGT \ + --target=$TARGET_MACHINE_TRIPLET \ --host=${BUILD_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ - --prefix=$LFS_TOOLS \ + --prefix=$CROSS_TOOLS_DIR \ --with-glibc-version=2.40 \ --with-sysroot=$LFS \ --with-newlib \ @@ -236,20 +244,20 @@ if [ ! -f "$STEPS_DIR/gcc-step1" ]; then make -j 32 install-gcc make check-gcc RUNTESTFLAGS=--target_board=${TARGET_TRIPLET_ARCH}-sim cd "$BASE_DIR" - rm -rf "$LFS_BUILD/gcc/build" # Do not remove the whole gcc directory: we need it for libstdc++ + rm -rf "$TMP_BUILD_DIR/gcc/build" # Do not remove the whole gcc directory: we need it for libstdc++ touch "$STEPS_DIR/gcc-step1" fi # From now on use export BUILD_CC=gcc -export CC="$LFS_TGT-gcc" -export CXX="$LFS_TGT-g++" -export AS="$LFS_TGT-as" -export LD="$LFS_TGT-ld" -export AR="$LFS_TGT-ar" -export RANLIB="$LFS_TGT-ranlib" -export STRIP="$LFS_TGT-strip" -export OBJDUMP="$LFS_TGT-objdump" +export CC="$TARGET_MACHINE_TRIPLET-gcc" +export CXX="$TARGET_MACHINE_TRIPLET-g++" +export AS="$TARGET_MACHINE_TRIPLET-as" +export LD="$TARGET_MACHINE_TRIPLET-ld" +export AR="$TARGET_MACHINE_TRIPLET-ar" +export RANLIB="$TARGET_MACHINE_TRIPLET-ranlib" +export STRIP="$TARGET_MACHINE_TRIPLET-strip" +export OBJDUMP="$TARGET_MACHINE_TRIPLET-objdump" export LDFLAGS=" -Bstatic " # remove hardening options for building libraries export CFLAGS="-U_FORTIFY_SOURCE -O2 -static" @@ -259,11 +267,11 @@ unset LD_LIBRARY_PATH # build glibc if [ ! -f "$STEPS_DIR/glibc" ]; then - if [ ! -d "$LFS_BUILD/glibc" ]; then + if [ ! -d "$TMP_BUILD_DIR/glibc" ]; then tar -xzf "$BASE_DIR/sources/glibc-2.40.tar.gz" - mv "glibc-2.40" "$LFS_BUILD/glibc" + mv "glibc-2.40" "$TMP_BUILD_DIR/glibc" fi - cd "$LFS_BUILD/glibc" + cd "$TMP_BUILD_DIR/glibc" mkdir -vp build cd build @@ -274,25 +282,25 @@ if [ ! -f "$STEPS_DIR/glibc" ]; then echo 'sbindir=/bin' >> configparms echo 'build-programs=no' >> configparms - "../configure" \ - --prefix=/usr \ - --target=$LFS_TGT \ - --host=$LFS_TGT \ - --build=${BUILD_MACHINE_TRIPLET} \ - --with-headers=$LFS/usr/include \ - --with-binutils=$LFS_TOOLS/bin \ - --without-cvs \ - --disable-nls \ - --disable-sanity-checks \ - --enable-kernel=4.19 \ - --disable-debug \ - --disable-profile \ - --without-selinux \ - --without-gd \ - --disable-nscd \ - --enable-hacker-mode \ - libc_cv_slibdir=/usr/lib \ - libc_cv_forced_unwind=yes \ + "../configure" \ + --prefix=/usr \ + --target=$TARGET_MACHINE_TRIPLET \ + --host=$TARGET_MACHINE_TRIPLET \ + --build=${BUILD_MACHINE_TRIPLET} \ + --with-headers=$LFS/usr/include \ + --with-binutils=$CROSS_TOOLS_DIR/bin \ + --without-cvs \ + --disable-nls \ + --disable-sanity-checks \ + --enable-kernel=4.19 \ + --disable-debug \ + --disable-profile \ + --without-selinux \ + --without-gd \ + --disable-nscd \ + --enable-hacker-mode \ + libc_cv_slibdir=/usr/lib \ + libc_cv_forced_unwind=yes \ libc_cv_c_cleanup=yes make install-bootstrap-headers=yes install_root=$LFS install-headers @@ -319,7 +327,7 @@ if [ ! -f "$STEPS_DIR/glibc" ]; then install csu/crtbeginS.o $LFS/usr/lib fi - $LFS_TGT-gcc \ + $TARGET_MACHINE_TRIPLET-gcc \ -nostdlib \ -nostartfiles \ -shared \ @@ -328,7 +336,7 @@ if [ ! -f "$STEPS_DIR/glibc" ]; then touch $LFS/usr/include/gnu/stubs.h cd "$BASE_DIR" - #rm -rf "$LFS_BUILD/glibc" + #rm -rf "$TMP_BUILD_DIR/glibc" touch "$STEPS_DIR/glibc" fi @@ -345,18 +353,18 @@ export CFLAGS="-U_FORTIFY_SOURCE -O2 -static " export LDFLAGS="-U_FORTIFY_SOURCE -O2 -Bstatic " if [ ! -f "$STEPS_DIR/gcc-step2" ]; then - bash unpack-gcc.sh "$LFS_BUILD/" - cd "$LFS_BUILD/gcc" + bash unpack-gcc.sh "$TMP_BUILD_DIR/" + cd "$TMP_BUILD_DIR/gcc" mkdir -vp build-step2 cd build-step2 # ../configure is already done "../configure" \ - --target=$LFS_TGT \ + --target=$TARGET_MACHINE_TRIPLET \ --host=${BUILD_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ - --prefix=$LFS_TOOLS \ + --prefix=$CROSS_TOOLS_DIR \ --with-glibc-version=2.40 \ --with-sysroot=$LFS \ --enable-c99 \ @@ -381,30 +389,19 @@ if [ ! -f "$STEPS_DIR/gcc-step2" ]; then make -j 32 install cd "$BASE_DIR" - #rm -rf "$LFS_BUILD/gcc/build" # Do not remove the whole gcc directory: we need it for libstdc++ + #rm -rf "$TMP_BUILD_DIR/gcc/build" # Do not remove the whole gcc directory: we need it for libstdc++ touch "$STEPS_DIR/gcc-step2" fi -#export CC="$LFS_TGT-gcc" -#export CXX="$LFS_TGT-g++" -#export AS="$LFS_TGT-as" -#export LD="$LFS_TGT-ld" -#export AR="$LFS_TGT-ar" -#export RANLIB="$LFS_TGT-ranlib" -## remove hardening options for building libraries -#export CFLAGS="-U_FORTIFY_SOURCE -O2" -#export CPPFLAGS="-U_FORTIFY_SOURCE -O2" -#export LD_LIBRARY_PATH_old="$LD_LIBRARY_PATH" -#unset LD_LIBRARY_PATH unset CFLAGS unset LDFLAGS if [ ! -f "$STEPS_DIR/glibc-step2" ]; then - if [ ! -d "$LFS_BUILD/glibc/build" ]; then - echo "'$LFS_BUILD/glibc/build' is supposed to exist. Error." + if [ ! -d "$TMP_BUILD_DIR/glibc/build" ]; then + echo "'$TMP_BUILD_DIR/glibc/build' is supposed to exist. Error." exit 1 fi - cd "$LFS_BUILD/glibc/build" + cd "$TMP_BUILD_DIR/glibc/build" # Configuration is done already @@ -415,34 +412,26 @@ if [ ! -f "$STEPS_DIR/glibc-step2" ]; then make -j 32 install_root=$LFS install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/glibc" + rm -rf "$TMP_BUILD_DIR/glibc" touch "$STEPS_DIR/glibc-step2" fi -#unset CC -#unset CXX -#unset LD -#unset AS -#unset AR -#unset RANLIB -#unset OBJDUMP -#export LD_LIBRARY_PATH="$LD_LIBRARY_PATH_old" export CFLAGS="-U_FORTIFY_SOURCE -O2 -static " export LDFLAGS="-U_FORTIFY_SOURCE -O2 -Bstatic " # build the rest of gcc if [ ! -f "$STEPS_DIR/gcc-step3" ]; then - bash unpack-gcc.sh "$LFS_BUILD/" - cd "$LFS_BUILD/gcc/" + bash unpack-gcc.sh "$TMP_BUILD_DIR/" + cd "$TMP_BUILD_DIR/gcc/" mkdir -vp build-step3 cd build-step3 "../configure" \ - --target=$LFS_TGT \ + --target=$TARGET_MACHINE_TRIPLET \ --host=${BUILD_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ - --prefix=$LFS_TOOLS \ + --prefix=$CROSS_TOOLS_DIR \ --with-glibc-version=2.40 \ --with-sysroot=$LFS \ --enable-c99 \ @@ -464,23 +453,23 @@ if [ ! -f "$STEPS_DIR/gcc-step3" ]; then #make -j 32 DESTDIR="$LFS" install-target-libgcc cd "$BASE_DIR" - #rm -rf "$LFS_BUILD/gcc" + #rm -rf "$TMP_BUILD_DIR/gcc" touch "$STEPS_DIR/gcc-step3" fi if [ ! -f "$STEPS_DIR/gcc-final" ]; then - bash unpack-gcc.sh "$LFS_BUILD/" - cd "$LFS_BUILD/gcc" + bash unpack-gcc.sh "$TMP_BUILD_DIR/" + cd "$TMP_BUILD_DIR/gcc" mkdir -vp build-final cd build-final # ../configure is already done "../configure" \ - --target=$LFS_TGT \ + --target=$TARGET_MACHINE_TRIPLET \ --host=${BUILD_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ - --prefix=$LFS_TOOLS \ + --prefix=$CROSS_TOOLS_DIR \ --with-glibc-version=2.40 \ --with-sysroot=$LFS \ --enable-c99 \ @@ -504,7 +493,7 @@ if [ ! -f "$STEPS_DIR/gcc-final" ]; then make -j 32 install cd "$BASE_DIR" - #rm -rf "$LFS_BUILD/gcc/build" + #rm -rf "$TMP_BUILD_DIR/gcc/build" touch "$STEPS_DIR/gcc-final" fi @@ -516,62 +505,54 @@ fi setup_toolchain # test the cross toolchain -which -- $LFS_TGT-as || echo $LFS_TGT-as is not in the PATH +which -- $TARGET_MACHINE_TRIPLET-as || echo $TARGET_MACHINE_TRIPLET-as is not in the PATH -echo ' -#include - -atomic_uint test; - -int main(){ - return 0; -} -' | "$CC" $CFLAGS -std=c11 -xc -latomic - +"$CC" $CFLAGS -std=c11 -xc -latomic testvec.c "$READELF" -l a.out | grep ld-linux rm -v a.out -#cat test_compiler.cpp | "$CXX" $CPPFLAGS -xc++ - -#"$LFS_TGT-readelf" -l a.out -#rm -v a.out +"$CXX" $CPPFLAGS -xc++ test_compiler.cpp +"$TARGET_MACHINE_TRIPLET-readelf" -l a.out +rm -v a.out # build m4 if [ ! -f "$STEPS_DIR/m4" ]; then - if [ ! -d "$LFS_BUILD/m4" ]; then + if [ ! -d "$TMP_BUILD_DIR/m4" ]; then tar -xzf "$BASE_DIR/sources/m4-1.4.19.tar.gz" - mv "m4-1.4.19" "$LFS_BUILD/m4" + mv "m4-1.4.19" "$TMP_BUILD_DIR/m4" fi - cd "$LFS_BUILD/m4" + cd "$TMP_BUILD_DIR/m4" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET echo "rootsbindir=/usr/sbin" > configparms "../configure" \ --prefix=/usr \ --build=${BUILD_MACHINE_TRIPLET} \ - --host=$LFS_TGT + --host=$TARGET_MACHINE_TRIPLET make -j 32 make DESTDIR=$LFS install - "$LFS_TGT-strip" --strip-unneeded $LFS/usr/bin/m4 + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded $LFS/usr/bin/m4 cd "$BASE_DIR" - rm -rf "$LFS_BUILD/m4" + rm -rf "$TMP_BUILD_DIR/m4" touch "$STEPS_DIR/m4" fi # build attr if [ ! -f "$STEPS_DIR/attr" ]; then - if [ ! -d "$LFS_BUILD/attr" ]; then + if [ ! -d "$TMP_BUILD_DIR/attr" ]; then tar -xzf "$BASE_DIR/sources/attr-2.5.2.tar.gz" - mv "attr-2.5.2" "$LFS_BUILD/attr" + mv "attr-2.5.2" "$TMP_BUILD_DIR/attr" fi - cd "$LFS_BUILD/attr" + cd "$TMP_BUILD_DIR/attr" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET echo "rootsbindir=/usr/bin" > configparms @@ -579,26 +560,26 @@ if [ ! -f "$STEPS_DIR/attr" ]; then --prefix=/usr \ --with-sysroot=${LFS} \ --disable-static \ - --host=$LFS_TGT + --host=$TARGET_MACHINE_TRIPLET make -j 32 make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/attr" + rm -rf "$TMP_BUILD_DIR/attr" touch "$STEPS_DIR/attr" fi # build zlib if [ ! -f "$STEPS_DIR/zlib" ]; then - if [ ! -d "$LFS_BUILD/zlib" ]; then + if [ ! -d "$TMP_BUILD_DIR/zlib" ]; then tar -xzf "$BASE_DIR/sources/zlib-1.3.1.tar.gz" - mv "zlib-1.3.1" "$LFS_BUILD/zlib" + mv "zlib-1.3.1" "$TMP_BUILD_DIR/zlib" fi - cd "$LFS_BUILD/zlib" + cd "$TMP_BUILD_DIR/zlib" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET export CFLAGS_old="$CFLAGS" export CFLAGS+=" -ffat-lto-objects" @@ -613,23 +594,23 @@ if [ ! -f "$STEPS_DIR/zlib" ]; then export CFLAGS="$CFLAGS_old" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/zlib" + rm -rf "$TMP_BUILD_DIR/zlib" touch "$STEPS_DIR/zlib" fi # build openssl if [ ! -f "$STEPS_DIR/openssl" ]; then - if [ ! -d "$LFS_BUILD/openssl" ]; then + if [ ! -d "$TMP_BUILD_DIR/openssl" ]; then tar -xf "$BASE_DIR/sources/openssl-3.4.0.tar.gz" - mv "openssl-3.4.0" "$LFS_BUILD/openssl" - cd "$LFS_BUILD/openssl" + mv "openssl-3.4.0" "$TMP_BUILD_DIR/openssl" + cd "$TMP_BUILD_DIR/openssl" cp $BASE_DIR/sources/openssl-ca-dir.patch . patch -Np1 -i "./openssl-ca-dir.patch" fi - cd "$LFS_BUILD/openssl" + cd "$TMP_BUILD_DIR/openssl" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # TODO: # enable-ec_nistp_64_gcc_128 "../Configure" \ @@ -643,27 +624,27 @@ if [ ! -f "$STEPS_DIR/openssl" ]; then make -j 32 DESTDIR="$LFS" MANDIR=/usr/share/man MANSUFFIX=ssl install_sw install_ssldirs install_man_docs cd "$BASE_DIR" - rm -rf "$LFS_BUILD/openssl" + rm -rf "$TMP_BUILD_DIR/openssl" touch "$STEPS_DIR/openssl" fi # build libxcrypt if [ ! -f "$STEPS_DIR/libxcrypt" ]; then - if [ ! -d "$LFS_BUILD/libxcrypt" ]; then + if [ ! -d "$TMP_BUILD_DIR/libxcrypt" ]; then tar -xf "$BASE_DIR/sources/libxcrypt-4.4.36.tar.xz" - mv "libxcrypt-4.4.36" "$LFS_BUILD/libxcrypt" + mv "libxcrypt-4.4.36" "$TMP_BUILD_DIR/libxcrypt" fi - cd "$LFS_BUILD/libxcrypt" + cd "$TMP_BUILD_DIR/libxcrypt" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ --disable-static \ --enable-hashes=strong,glibc \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-obsolete-api=no \ --disable-failure-tokens \ @@ -673,15 +654,15 @@ if [ ! -f "$STEPS_DIR/libxcrypt" ]; then make -j 32 DESTDIR=$LFS install #cd .. - #mkdir -vp build-compat-$LFS_TGT - #cd build-compat-$LFS_TGT + #mkdir -vp build-compat-$TARGET_MACHINE_TRIPLET + #cd build-compat-$TARGET_MACHINE_TRIPLET #"../configure" \ # --prefix=/usr \ # --disable-static \ # --enable-hashes=strong,glibc \ # --with-sysroot=${LFS} \ - # --host=${LFS_TGT} \ + # --host=${TARGET_MACHINE_TRIPLET} \ # --build=${BUILD_MACHINE_TRIPLET} \ # --enable-obsolete-api=glibc \ # --disable-failure-tokens \ @@ -690,38 +671,36 @@ if [ ! -f "$STEPS_DIR/libxcrypt" ]; then # DO NOT MAKE: check archlinux package! cd "$BASE_DIR" - rm -rf "$LFS_BUILD/libxcrypt" + rm -rf "$TMP_BUILD_DIR/libxcrypt" touch "$STEPS_DIR/libxcrypt" fi # build ncurses # TODO: fix symlink!!! if [ ! -f "$STEPS_DIR/ncurses" ]; then - if [ ! -d "$LFS_BUILD/ncurses" ]; then + if [ ! -d "$TMP_BUILD_DIR/ncurses" ]; then tar -xzf "$BASE_DIR/sources/ncurses.tar.gz" - mv "ncurses-6.3" "$LFS_BUILD/ncurses" + mv "ncurses-6.3" "$TMP_BUILD_DIR/ncurses" fi - cd "$LFS_BUILD/ncurses" + cd "$TMP_BUILD_DIR/ncurses" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # --with-cxx-binding no c++? # --with-cxx-shared no c++? - # --without-normal will make readline error - # --disable-stripping # this must go away + # --disable-stripping does not work for all architectures because the system strip is used "../configure" \ --prefix=/usr \ --sysconfdir=/etc \ --localstatedir=/var \ --libdir=/usr/lib \ --sbindir=/usr/bin \ - --mandir=/usr/share/man \ - --with-manpage-format=normal \ - --disable-stripping \ + --without-manpages \ --with-shared \ --without-normal \ - --host=${LFS_TGT} \ + --disable-stripping \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --without-debug \ --enable-pc-files \ @@ -739,8 +718,8 @@ if [ ! -f "$STEPS_DIR/ncurses" ]; then cd .. - mkdir -vp build-widec-$LFS_TGT - cd build-widec-$LFS_TGT + mkdir -vp build-widec-$TARGET_MACHINE_TRIPLET + cd build-widec-$TARGET_MACHINE_TRIPLET # --with-cxx-binding no c++? # --with-cxx-shared no c++? @@ -754,10 +733,10 @@ if [ ! -f "$STEPS_DIR/ncurses" ]; then --sbindir=/usr/bin \ --mandir=/usr/share/man \ --with-manpage-format=normal \ - --disable-stripping \ --with-shared \ --without-normal \ - --host=${LFS_TGT} \ + --disable-stripping \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --without-debug \ --enable-pc-files \ @@ -775,26 +754,26 @@ if [ ! -f "$STEPS_DIR/ncurses" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/ncurses" + rm -rf "$TMP_BUILD_DIR/ncurses" touch "$STEPS_DIR/ncurses" fi # build readline (depends on libncurses) if [ ! -f "$STEPS_DIR/readline" ]; then - if [ ! -d "$LFS_BUILD/readline" ]; then + if [ ! -d "$TMP_BUILD_DIR/readline" ]; then tar -xf "$BASE_DIR/sources/readline-8.2.13.tar.gz" - mv "readline-8.2.13" "$LFS_BUILD/readline" + mv "readline-8.2.13" "$TMP_BUILD_DIR/readline" fi - cd "$LFS_BUILD/readline" + cd "$TMP_BUILD_DIR/readline" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET - # --with-curses \ "../configure" \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --prefix=/usr \ + --with-curses \ --enable-static=no \ --cache-file=config.cache @@ -802,20 +781,20 @@ if [ ! -f "$STEPS_DIR/readline" ]; then make -j 32 DESTDIR=$LFS install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/readline" + rm -rf "$TMP_BUILD_DIR/readline" touch "$STEPS_DIR/readline" fi # build bash if [ ! -f "$STEPS_DIR/bash" ]; then - if [ ! -d "$LFS_BUILD/bash" ]; then + if [ ! -d "$TMP_BUILD_DIR/bash" ]; then tar -xzf "$BASE_DIR/sources/bash-5.2.tar.gz" - mv "bash-5.2" "$LFS_BUILD/bash" + mv "bash-5.2" "$TMP_BUILD_DIR/bash" fi - cd "$LFS_BUILD/bash" + cd "$TMP_BUILD_DIR/bash" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET _bashconfig=(-DDEFAULT_PATH_VALUE=\'\"/usr/local/sbin:/usr/local/bin:/usr/bin\"\' -DSTANDARD_UTILS_PATH=\'\"/usr/bin\"\' @@ -827,7 +806,7 @@ if [ ! -f "$STEPS_DIR/bash" ]; then "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --without-bash-malloc \ --enable-threads \ @@ -840,23 +819,22 @@ if [ ! -f "$STEPS_DIR/bash" ]; then export CFLAGS="$CFLAGS_old" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/bash" + rm -rf "$TMP_BUILD_DIR/bash" touch "$STEPS_DIR/bash" fi # build bzip2 if [ ! -f "$STEPS_DIR/bzip2" ]; then - if [ ! -d "$LFS_BUILD/bzip2" ]; then + if [ ! -d "$TMP_BUILD_DIR/bzip2" ]; then tar -xzf "$BASE_DIR/sources/bzip2-1.0.8.tar.gz" - mv "bzip2-1.0.8" "$LFS_BUILD/bzip2" + mv "bzip2-1.0.8" "$TMP_BUILD_DIR/bzip2" fi - cd "$LFS_BUILD/bzip2" + cd "$TMP_BUILD_DIR/bzip2" - #make make CC="${CC} ${CFLAGS}" AR="${AR}" RANLIB="${RANLIB}" LD="${LD} ${LDFLAGS}" -j 32 PREFIX="$LFS/usr" install if [ -f "$LFS/bin/bzip2" ]; then - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/bzip2" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/bzip2" else echo "Where is the bzip2 executable? It was there for bash 1.0.8!" exit 1 @@ -866,24 +844,24 @@ if [ ! -f "$STEPS_DIR/bzip2" ]; then rm -rf "$LFS/man" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/bzip2" + rm -rf "$TMP_BUILD_DIR/bzip2" touch "$STEPS_DIR/bzip2" fi # build check if [ ! -f "$STEPS_DIR/check" ]; then - if [ ! -d "$LFS_BUILD/check" ]; then + if [ ! -d "$TMP_BUILD_DIR/check" ]; then tar -xzf "$BASE_DIR/sources/check-0.15.2.tar.gz" - mv "check-0.15.2" "$LFS_BUILD/check" + mv "check-0.15.2" "$TMP_BUILD_DIR/check" fi - cd "$LFS_BUILD/check" + cd "$TMP_BUILD_DIR/check" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --libdir=/lib @@ -891,25 +869,25 @@ if [ ! -f "$STEPS_DIR/check" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/check" + rm -rf "$TMP_BUILD_DIR/check" touch "$STEPS_DIR/check" fi # build coreutils if [ ! -f "$STEPS_DIR/coreutils" ]; then - if [ ! -d "$LFS_BUILD/coreutils" ]; then + if [ ! -d "$TMP_BUILD_DIR/coreutils" ]; then tar -xzf "$BASE_DIR/sources/coreutils-9.5.tar.gz" - mv "coreutils-9.5" "$LFS_BUILD/coreutils" + mv "coreutils-9.5" "$TMP_BUILD_DIR/coreutils" fi - cd "$LFS_BUILD/coreutils" + cd "$TMP_BUILD_DIR/coreutils" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ --libexecdir=/usr/lib \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-install-program=hostname \ --cache-file=config.cache @@ -918,24 +896,24 @@ if [ ! -f "$STEPS_DIR/coreutils" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/coreutils" + rm -rf "$TMP_BUILD_DIR/coreutils" touch "$STEPS_DIR/coreutils" fi # build diffutils if [ ! -f "$STEPS_DIR/diffutils" ]; then - if [ ! -d "$LFS_BUILD/diffutils" ]; then + if [ ! -d "$TMP_BUILD_DIR/diffutils" ]; then tar -xf "$BASE_DIR/sources/diffutils-3.10.tar.xz" - mv "diffutils-3.10" "$LFS_BUILD/diffutils" + mv "diffutils-3.10" "$TMP_BUILD_DIR/diffutils" fi - cd "$LFS_BUILD/diffutils" + cd "$TMP_BUILD_DIR/diffutils" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=$LFS \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-install-program=hostname \ --cache-file=config.cache @@ -944,24 +922,24 @@ if [ ! -f "$STEPS_DIR/diffutils" ]; then make -j 32 install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/diffutils" + rm -rf "$TMP_BUILD_DIR/diffutils" touch "$STEPS_DIR/diffutils" fi # build libseccomp if [ ! -f "$STEPS_DIR/libseccomp" ]; then - if [ ! -d "$LFS_BUILD/libseccomp" ]; then + if [ ! -d "$TMP_BUILD_DIR/libseccomp" ]; then tar -xf "$BASE_DIR/sources/libseccomp-2.5.5.tar.gz" - mv "libseccomp-2.5.5" "$LFS_BUILD/libseccomp" + mv "libseccomp-2.5.5" "$TMP_BUILD_DIR/libseccomp" fi - cd "$LFS_BUILD/libseccomp" + cd "$TMP_BUILD_DIR/libseccomp" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-static=no \ --cache-file=config.cache @@ -970,27 +948,27 @@ if [ ! -f "$STEPS_DIR/libseccomp" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/libseccomp" + rm -rf "$TMP_BUILD_DIR/libseccomp" touch "$STEPS_DIR/libseccomp" fi # build file if [ ! -f "$STEPS_DIR/file" ]; then - if [ ! -d "$LFS_BUILD/file" ]; then + if [ ! -d "$TMP_BUILD_DIR/file" ]; then tar -xf "$BASE_DIR/sources/file-5.46.tar.gz" - mv "file-5.46" "$LFS_BUILD/file" + mv "file-5.46" "$TMP_BUILD_DIR/file" fi - cd "$LFS_BUILD/file" + cd "$TMP_BUILD_DIR/file" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ --libdir=/usr/lib \ --datadir=/usr/share/file \ --with-sysroot=$LFS \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-libseccomp \ --cache-file=config.cache @@ -999,27 +977,27 @@ if [ ! -f "$STEPS_DIR/file" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/file" + rm -rf "$TMP_BUILD_DIR/file" touch "$STEPS_DIR/file" fi # build findutils if [ ! -f "$STEPS_DIR/findutils" ]; then - if [ ! -d "$LFS_BUILD/findutils" ]; then + if [ ! -d "$TMP_BUILD_DIR/findutils" ]; then tar -xf "$BASE_DIR/sources/findutils-4.10.0.tar.xz" - mv "findutils-4.10.0" "$LFS_BUILD/findutils" + mv "findutils-4.10.0" "$TMP_BUILD_DIR/findutils" fi - cd "$LFS_BUILD/findutils" + cd "$TMP_BUILD_DIR/findutils" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET echo "gl_cv_func_wcwidth_works=yes" > config.cache echo "ac_cv_func_fnmatch_gnu=yes" >> config.cache "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --cache-file=config.cache @@ -1027,26 +1005,26 @@ if [ ! -f "$STEPS_DIR/findutils" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/findutils" + rm -rf "$TMP_BUILD_DIR/findutils" touch "$STEPS_DIR/findutils" fi # build gawk if [ ! -f "$STEPS_DIR/gawk" ]; then - if [ ! -d "$LFS_BUILD/gawk" ]; then + if [ ! -d "$TMP_BUILD_DIR/gawk" ]; then tar -xf "$BASE_DIR/sources/gawk-5.3.1.tar.xz" - mv "gawk-5.3.1" "$LFS_BUILD/gawk" + mv "gawk-5.3.1" "$TMP_BUILD_DIR/gawk" fi - cd "$LFS_BUILD/gawk" + cd "$TMP_BUILD_DIR/gawk" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ --libexecdir=/usr/lib \ --sysconfdir=/etc \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --without-libsigsegv \ --cache-file=config.cache @@ -1057,24 +1035,24 @@ if [ ! -f "$STEPS_DIR/gawk" ]; then "$STRIP" --strip-unneeded "$LFS/bin/gawk" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/gawk" + rm -rf "$TMP_BUILD_DIR/gawk" touch "$STEPS_DIR/gawk" fi # build grep if [ ! -f "$STEPS_DIR/grep" ]; then - if [ ! -d "$LFS_BUILD/grep" ]; then + if [ ! -d "$TMP_BUILD_DIR/grep" ]; then tar -xf "$BASE_DIR/sources/grep-3.11.tar.xz" - mv "grep-3.11" "$LFS_BUILD/grep" + mv "grep-3.11" "$TMP_BUILD_DIR/grep" fi - cd "$LFS_BUILD/grep" + cd "$TMP_BUILD_DIR/grep" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --without-included-regex \ --cache-file=config.cache @@ -1085,24 +1063,24 @@ if [ ! -f "$STEPS_DIR/grep" ]; then "$STRIP" --strip-unneeded "$LFS/bin/grep" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/grep" + rm -rf "$TMP_BUILD_DIR/grep" touch "$STEPS_DIR/grep" fi # build gzip if [ ! -f "$STEPS_DIR/gzip" ]; then - if [ ! -d "$LFS_BUILD/gzip" ]; then + if [ ! -d "$TMP_BUILD_DIR/gzip" ]; then tar -xf "$BASE_DIR/sources/gzip-1.13.tar.xz" - mv "gzip-1.13" "$LFS_BUILD/gzip" + mv "gzip-1.13" "$TMP_BUILD_DIR/gzip" fi - cd "$LFS_BUILD/gzip" + cd "$TMP_BUILD_DIR/gzip" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=$LFS \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --cache-file=config.cache @@ -1112,24 +1090,24 @@ if [ ! -f "$STEPS_DIR/gzip" ]; then "$STRIP" --strip-unneeded "$LFS/bin/gzip" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/gzip" + rm -rf "$TMP_BUILD_DIR/gzip" touch "$STEPS_DIR/gzip" fi # build make if [ ! -f "$STEPS_DIR/make" ]; then - if [ ! -d "$LFS_BUILD/make" ]; then + if [ ! -d "$TMP_BUILD_DIR/make" ]; then tar -xf "$BASE_DIR/sources/make-4.4.1.tar.gz" - mv "make-4.4.1" "$LFS_BUILD/make" + mv "make-4.4.1" "$TMP_BUILD_DIR/make" fi - cd "$LFS_BUILD/make" + cd "$TMP_BUILD_DIR/make" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --cache-file=config.cache @@ -1137,24 +1115,24 @@ if [ ! -f "$STEPS_DIR/make" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/make" + rm -rf "$TMP_BUILD_DIR/make" touch "$STEPS_DIR/make" fi # build libiconv if [ ! -f "$STEPS_DIR/libiconv" ]; then - if [ ! -d "$LFS_BUILD/libiconv" ]; then + if [ ! -d "$TMP_BUILD_DIR/libiconv" ]; then tar -xf "$BASE_DIR/sources/libiconv-1.17.tar.gz" - mv "libiconv-1.17" "$LFS_BUILD/libiconv" + mv "libiconv-1.17" "$TMP_BUILD_DIR/libiconv" fi - cd "$LFS_BUILD/libiconv" + cd "$TMP_BUILD_DIR/libiconv" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-extra-encodings \ --cache-file=config.cache @@ -1167,24 +1145,24 @@ if [ ! -f "$STEPS_DIR/libiconv" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/libiconv" + rm -rf "$TMP_BUILD_DIR/libiconv" touch "$STEPS_DIR/libiconv" fi # build patch if [ ! -f "$STEPS_DIR/patch" ]; then - if [ ! -d "$LFS_BUILD/patch" ]; then + if [ ! -d "$TMP_BUILD_DIR/patch" ]; then tar -xf "$BASE_DIR/sources/patch-2.7.6.tar.gz" - mv "patch-2.7.6" "$LFS_BUILD/patch" + mv "patch-2.7.6" "$TMP_BUILD_DIR/patch" fi - cd "$LFS_BUILD/patch" + cd "$TMP_BUILD_DIR/patch" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --cache-file=config.cache @@ -1192,50 +1170,50 @@ if [ ! -f "$STEPS_DIR/patch" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/patch" + rm -rf "$TMP_BUILD_DIR/patch" touch "$STEPS_DIR/patch" fi # build sed if [ ! -f "$STEPS_DIR/sed" ]; then - if [ ! -d "$LFS_BUILD/sed" ]; then + if [ ! -d "$TMP_BUILD_DIR/sed" ]; then tar -xf "$BASE_DIR/sources/sed-4.9.tar.xz" - mv "sed-4.9" "$LFS_BUILD/sed" + mv "sed-4.9" "$TMP_BUILD_DIR/sed" fi - cd "$LFS_BUILD/sed" + cd "$TMP_BUILD_DIR/sed" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --cache-file=config.cache make -j 32 make -j 32 DESTDIR="$LFS" install - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/sed" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/sed" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/sed" + rm -rf "$TMP_BUILD_DIR/sed" touch "$STEPS_DIR/sed" fi # build tar if [ ! -f "$STEPS_DIR/tar" ]; then - if [ ! -d "$LFS_BUILD/tar" ]; then + if [ ! -d "$TMP_BUILD_DIR/tar" ]; then tar -xf "$BASE_DIR/sources/tar-1.35.tar.xz" - mv "tar-1.35" "$LFS_BUILD/tar" + mv "tar-1.35" "$TMP_BUILD_DIR/tar" fi - cd "$LFS_BUILD/tar" + cd "$TMP_BUILD_DIR/tar" export LDFLAGS_old="$LDFLAGS" export LDFLAGS="$LDFLAGS -liconv" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # cat > config.cache << EOF #gl_cv_func_wcwidth_works=yes @@ -1253,7 +1231,7 @@ if [ ! -f "$STEPS_DIR/tar" ]; then --prefix=/usr \ --sbindir=/usr/bin \ --libexecdir=/usr/lib/tar \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-backup-scripts \ --cache-file=config.cache @@ -1261,27 +1239,27 @@ if [ ! -f "$STEPS_DIR/tar" ]; then make -j 32 make -j 32 DESTDIR="$LFS" install - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/tar" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/tar" export LDFLAGS="$LDFLAGS_old" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/tar" + rm -rf "$TMP_BUILD_DIR/tar" touch "$STEPS_DIR/tar" fi ## build the rest of gcc #if [ ! -f "$STEPS_DIR/gcc-final" ]; then -# bash unpack-gcc.sh "$LFS_BUILD/" -# cd "$LFS_BUILD/gcc/" +# bash unpack-gcc.sh "$TMP_BUILD_DIR/" +# cd "$TMP_BUILD_DIR/gcc/" # -# mkdir -vp build-$LFS_TGT -# cd build-$LFS_TGT +# mkdir -vp build-$TARGET_MACHINE_TRIPLET +# cd build-$TARGET_MACHINE_TRIPLET # # "../configure" \ -# --target=$LFS_TGT \ +# --target=$TARGET_MACHINE_TRIPLET \ # --host=${BUILD_MACHINE_TRIPLET} \ -# --build=${LFS_TGT} \ +# --build=${TARGET_MACHINE_TRIPLET} \ # --prefix=$LFS \ # --with-glibc-version=2.40 \ # --with-sysroot=$LFS \ @@ -1302,25 +1280,25 @@ fi # make -j 32 install # # cd "$BASE_DIR" -# rm -rf "$LFS_BUILD/gcc" +# rm -rf "$TMP_BUILD_DIR/gcc" # touch "$STEPS_DIR/gcc-step3" #fi #exit 0 # build xz-utils if [ ! -f "$STEPS_DIR/xz" ]; then - if [ ! -d "$LFS_BUILD/xz" ]; then + if [ ! -d "$TMP_BUILD_DIR/xz" ]; then tar -xf "$BASE_DIR/sources/xz-5.6.3.tar.xz" - mv "xz-5.6.3" "$LFS_BUILD/xz" + mv "xz-5.6.3" "$TMP_BUILD_DIR/xz" fi - cd "$LFS_BUILD/xz" + cd "$TMP_BUILD_DIR/xz" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --disable-static \ --cache-file=config.cache @@ -1331,31 +1309,31 @@ if [ ! -f "$STEPS_DIR/xz" ]; then # Remove the libtool archive file because it is harmful for cross compilation #rm -v $LFS/usr/lib/liblzma.la - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/xz" - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/xzdec" - "$LFS_TGT-strip" --strip-unneeded "$LFS/bin/xzcat" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/xz" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/xzdec" + "$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded "$LFS/bin/xzcat" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/xz" + rm -rf "$TMP_BUILD_DIR/xz" touch "$STEPS_DIR/xz" fi # build gettext if [ ! -f "$STEPS_DIR/gettext" ]; then - if [ ! -d "$LFS_BUILD/gettext" ]; then + if [ ! -d "$TMP_BUILD_DIR/gettext" ]; then tar -xf "$BASE_DIR/sources/gettext-0.23.tar.gz" - mv "gettext-0.23" "$LFS_BUILD/gettext" + mv "gettext-0.23" "$TMP_BUILD_DIR/gettext" fi - cd "$LFS_BUILD/gettext" + cd "$TMP_BUILD_DIR/gettext" #EMACS="no" autoreconf -fi - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET EMACS="no" "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --disable-shared \ --libdir=/usr/lib \ @@ -1369,27 +1347,27 @@ if [ ! -f "$STEPS_DIR/gettext" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/gettext" + rm -rf "$TMP_BUILD_DIR/gettext" touch "$STEPS_DIR/gettext" fi # build acl if [ ! -f "$STEPS_DIR/acl" ]; then - if [ ! -d "$LFS_BUILD/acl" ]; then + if [ ! -d "$TMP_BUILD_DIR/acl" ]; then tar -xf "$BASE_DIR/sources/acl-2.3.2.tar.xz" - mv "acl-2.3.2" "$LFS_BUILD/acl" + mv "acl-2.3.2" "$TMP_BUILD_DIR/acl" fi - cd "$LFS_BUILD/acl" + cd "$TMP_BUILD_DIR/acl" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --prefix=/usr \ --libexecdir=/usr/lib \ --libdir=/usr/lib \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --disable-static \ --cache-file=config.cache @@ -1398,20 +1376,20 @@ if [ ! -f "$STEPS_DIR/acl" ]; then make -j 32 DESTDIR=$LFS install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/acl" + rm -rf "$TMP_BUILD_DIR/acl" touch "$STEPS_DIR/acl" fi # build pcre2 if [ ! -f "$STEPS_DIR/pcre2" ]; then - if [ ! -d "$LFS_BUILD/pcre2" ]; then + if [ ! -d "$TMP_BUILD_DIR/pcre2" ]; then tar -xf "$BASE_DIR/sources/pcre2-10.44.tar.bz2" - mv "pcre2-10.44" "$LFS_BUILD/pcre2" + mv "pcre2-10.44" "$TMP_BUILD_DIR/pcre2" fi - cd "$LFS_BUILD/pcre2" + cd "$TMP_BUILD_DIR/pcre2" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET export CFLAGS_old="$CFLAGS" export CXXFLAGS_old="$CXXFLAGS" @@ -1422,7 +1400,7 @@ if [ ! -f "$STEPS_DIR/pcre2" ]; then # WARNING: using prefix with LFS is a VERY BIG WORKAROUND!!! "../configure" \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --prefix=${LFS}/usr \ --enable-shared \ @@ -1442,26 +1420,26 @@ if [ ! -f "$STEPS_DIR/pcre2" ]; then export CXXFLAGS="$CXXFLAGS_old" cd "$BASE_DIR" - rm -rf "$LFS_BUILD/pcre2" + rm -rf "$TMP_BUILD_DIR/pcre2" touch "$STEPS_DIR/pcre2" fi # build swig if [ ! -f "$STEPS_DIR/swig" ]; then - if [ ! -d "$LFS_BUILD/swig" ]; then + if [ ! -d "$TMP_BUILD_DIR/swig" ]; then tar -xf "$BASE_DIR/sources/swig-4.3.0.tar.gz" - mv "swig-4.3.0" "$LFS_BUILD/swig" + mv "swig-4.3.0" "$TMP_BUILD_DIR/swig" fi - cd "$LFS_BUILD/swig" + cd "$TMP_BUILD_DIR/swig" "./autogen.sh" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET "../configure" \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --prefix=/usr \ --cache-file=config.cache @@ -1470,17 +1448,17 @@ if [ ! -f "$STEPS_DIR/swig" ]; then make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/swig" + rm -rf "$TMP_BUILD_DIR/swig" touch "$STEPS_DIR/swig" fi # build libcap-ng (needs swig) if [ ! -f "$STEPS_DIR/libcap-ng" ]; then - if [ ! -d "$LFS_BUILD/libcap-ng" ]; then + if [ ! -d "$TMP_BUILD_DIR/libcap-ng" ]; then tar -xf "$BASE_DIR/sources/libcap-ng-0.8.5.tar.gz" - mv "libcap-ng-0.8.5" "$LFS_BUILD/libcap-ng" + mv "libcap-ng-0.8.5" "$TMP_BUILD_DIR/libcap-ng" fi - cd "$LFS_BUILD/libcap-ng" + cd "$TMP_BUILD_DIR/libcap-ng" # this workaround comes straight from archlinux # make stupid autotools happy -_- @@ -1488,13 +1466,13 @@ if [ ! -f "$STEPS_DIR/libcap-ng" ]; then autoreconf -fiv - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # --enable-zos-remote requires libldap "../configure" \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --prefix=/usr \ --without-python \ @@ -1506,32 +1484,28 @@ if [ ! -f "$STEPS_DIR/libcap-ng" ]; then make -j 32 DESTDIR=$LFS install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/libcap-ng" + rm -rf "$TMP_BUILD_DIR/libcap-ng" touch "$STEPS_DIR/libcap-ng" fi # build audit if [ ! -f "$STEPS_DIR/audit-userspace" ]; then - if [ ! -d "$LFS_BUILD/audit-userspace" ]; then + if [ ! -d "$TMP_BUILD_DIR/audit-userspace" ]; then tar -xf "$BASE_DIR/sources/audit-userspace-4.0.2.tar.gz" - mv "audit-userspace-4.0.2" "$LFS_BUILD/audit-userspace" + mv "audit-userspace-4.0.2" "$TMP_BUILD_DIR/audit-userspace" fi - cd "$LFS_BUILD/audit-userspace" - - #CPPFLAGS_old="$CPPFLAGS" - #export CFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$LFS_TOOLS/lib -L$LFS/usr/lib -I$LFS_TOOLS/include -I$LFS_TOOLS/$LFS_TGT/include " - #export CPPFLAGS=" $TARGET_ADDITIONAL_CFLAGS -U_FORTIFY_SOURCE -O2 -L$LFS_TOOLS/lib -L$LFS/usr/lib -I$LFS_TOOLS/include -I$LFS_TOOLS/$LFS_TGT/include " # -I$LFS_TOOLS/$LFS_TGT/include/c++/14.2.0/ -I$LFS_TOOLS/$LFS_TGT/include/c++/14.2.0/$LFS_TGT + cd "$TMP_BUILD_DIR/audit-userspace" autoreconf -fiv - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # --with-arm # --enable-zos-remote requires libldap "../configure" \ --with-sysroot=${LFS} \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-gssapi-krb5=no \ --enable-systemd=no \ @@ -1551,26 +1525,31 @@ if [ ! -f "$STEPS_DIR/audit-userspace" ]; then make -j 32 make -j 32 DESTDIR=$LFS install - #export CPPFLAGS="$CPPFLAGS_old" - cd "$BASE_DIR" - rm -rf "$LFS_BUILD/audit-userspace" + rm -rf "$TMP_BUILD_DIR/audit-userspace" touch "$STEPS_DIR/audit-userspace" fi +for f in "$LFS"/usr/bin/*; do + if "$READELF" -h $f | grep -Fq "Executable"; then + echo "Stripping $f..." + "$STRIP" -s "$f" + fi +done + # Postpone texinfo exit 0 # build texinfo if [ ! -f "$STEPS_DIR/texinfo" ]; then - if [ ! -d "$LFS_BUILD/texinfo" ]; then + if [ ! -d "$TMP_BUILD_DIR/texinfo" ]; then tar -xf "$BASE_DIR/sources/texinfo-7.1.1.tar.xz" - mv "texinfo-7.1.1" "$LFS_BUILD/texinfo" + mv "texinfo-7.1.1" "$TMP_BUILD_DIR/texinfo" fi - cd "$LFS_BUILD/texinfo" + cd "$TMP_BUILD_DIR/texinfo" - mkdir -vp build-$LFS_TGT - cd build-$LFS_TGT + mkdir -vp build-$TARGET_MACHINE_TRIPLET + cd build-$TARGET_MACHINE_TRIPLET # cat > config.cache << EOF #gl_replace_getopt=no @@ -1583,7 +1562,7 @@ if [ ! -f "$STEPS_DIR/texinfo" ]; then PERL=/usr/bin/perl \ "../configure" \ --prefix=/usr \ - --host=${LFS_TGT} \ + --host=${TARGET_MACHINE_TRIPLET} \ --build=${BUILD_MACHINE_TRIPLET} \ --enable-cross-guesses=conservative \ --enable-year2038 \ @@ -1593,21 +1572,21 @@ if [ ! -f "$STEPS_DIR/texinfo" ]; then #make -j 32 DESTDIR="$LFS" install cd "$BASE_DIR" - rm -rf "$LFS_BUILD/texinfo" + rm -rf "$TMP_BUILD_DIR/texinfo" touch "$STEPS_DIR/texinfo" fi -#"$LFS_TGT-strip" --strip-unneeded $LFS/bin/* +#"$TARGET_MACHINE_TRIPLET-strip" --strip-unneeded $LFS/bin/* # build libcap2 #if [ ! -f "$STEPS_DIR/libcap2" ]; then -# if [ ! -d "$LFS_BUILD/libcap2" ]; then +# if [ ! -d "$TMP_BUILD_DIR/libcap2" ]; then # tar -xzf "$BASE_DIR/sources/libcap-2.73.tar.gz" -# mv "libcap2" "$LFS_BUILD/libcap2" +# mv "libcap2" "$TMP_BUILD_DIR/libcap2" # fi -# cd "$LFS_BUILD/libcap2" +# cd "$TMP_BUILD_DIR/libcap2" # # mkdir -vp build # cd build @@ -1617,7 +1596,7 @@ fi # "../configure" \ # --prefix=/usr \ # --disable-static \ -# --target=$LFS_TGT \ +# --target=$TARGET_MACHINE_TRIPLET \ # --host=$(build-aux/config.guess) \ # --build=$(build-aux/config.guess) \ #