Improve build script

This commit is contained in:
Denis Benato 2024-12-08 17:00:20 +01:00
parent ce0af65a6d
commit a0d1308b0f
2 changed files with 62 additions and 40 deletions

View file

@ -69,18 +69,19 @@ export BUILD_MACHINE_TRIPLET=$(gcc -dumpmachine)
export TARGET_MACHINE_TRIPLET=$LFS_TGT
# Create the target directory
mkdir -p "$LFS"
export STEPS_DIR="$LFS/../steps/"
mkdir -vp "$STEPS_DIR"
export LFS_BUILD="$LFS/../build/"
export LFS_TOOLS="$LFS/tools"
mkdir -p "$LFS"
mkdir -vp "$STEPS_DIR"
mkdir -vp "$LFS_TOOLS"
mkdir -vp "$LFS_BUILD"
export PATH="$LFS_TOOLS/bin/:$PATH"
export LFS_BUILD="$LFS/../"
unset CFLAGS
unset LDFLAGS
# Create a directory layout
if [ ! -d "$LFS/etc" ]; then
@ -90,9 +91,9 @@ if [ ! -d "$LFS/etc" ]; then
ln -sv usr/$i $LFS/$i
done
case $ARCH in
x86_64) mkdir -pv $LFS/lib64 ;;
esac
#case $ARCH in
# x86_64) mkdir -pv $LFS/lib64 ;;
#esac
fi
# Build binutils
@ -146,9 +147,12 @@ if [ ! -f "$STEPS_DIR/linux-headers" ]; then
touch "$STEPS_DIR/linux-headers"
fi
export CFLAGS="$CFLAGS -static "
export LDFLAGS="$LDFLAGS -Bstatic "
# Build gcc
if [ ! -f "$STEPS_DIR/gcc-step1" ]; then
bash unpack-gcc.sh
bash unpack-gcc.sh "$LFS_BUILD/"
cd "$LFS_BUILD/gcc/"
# # On x86_64 hosts, set the default directory name for 64-bit libraries to “lib”
@ -159,8 +163,8 @@ if [ ! -f "$STEPS_DIR/gcc-step1" ]; then
# ;;
# esac
mkdir -vp build
cd build
mkdir -vp build-step1
cd build-step1
"../configure" \
--target=$LFS_TGT \
@ -207,9 +211,10 @@ export AR="$LFS_TGT-ar"
export RANLIB="$LFS_TGT-ranlib"
export STRIP="$LFS_TGT-strip"
export OBJDUMP="$LFS_TGT-objdump"
export LDFLAGS=" -Bstatic "
# remove hardening options for building libraries
export CFLAGS="-U_FORTIFY_SOURCE -O2"
export CPPFLAGS="-U_FORTIFY_SOURCE -O2"
export CFLAGS="-U_FORTIFY_SOURCE -O2 -static"
export CPPFLAGS="-U_FORTIFY_SOURCE -O2 -static"
export LD_LIBRARY_PATH_old="$LD_LIBRARY_PATH"
unset LD_LIBRARY_PATH
@ -303,17 +308,15 @@ unset RANLIB
unset STRIP
unset OBJDUMP
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH_old"
export CFLAGS="-static "
export LDFLAGS="-Bstatic "
if [ ! -f "$STEPS_DIR/gcc-step2" ]; then
#if [ ! -d "$LFS_BUILD/gcc/build" ]; then
# echo "'$LFS_BUILD/gcc/build' directory is supposed to exist. Error."
# exit 1
#fi
#cd "$LFS_BUILD/gcc/build"
bash unpack-gcc.sh "$LFS_BUILD/"
cd "$LFS_BUILD/gcc"
mkdir -vp build
cd build
mkdir -vp build-step2
cd build-step2
# ../configure is already done
"../configure" \
@ -360,6 +363,8 @@ fi
#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
@ -389,15 +394,17 @@ fi
#unset RANLIB
#unset OBJDUMP
#export LD_LIBRARY_PATH="$LD_LIBRARY_PATH_old"
export CFLAGS="-static "
export LDFLAGS="-Bstatic "
# build the rest of gcc
if [ ! -f "$STEPS_DIR/gcc-step3" ]; then
if [ ! -d "$LFS_BUILD/gcc/build" ]; then
echo "'$LFS_BUILD/gcc/build' directory is supposed to exist. Error."
exit 1
fi
cd "$LFS_BUILD/gcc/build"
bash unpack-gcc.sh "$LFS_BUILD/"
cd "$LFS_BUILD/gcc/"
mkdir -vp build-step3
cd build-step3
"../configure" \
--target=$LFS_TGT \
--host=${BUILD_MACHINE_TRIPLET} \

View file

@ -1,18 +1,35 @@
if [ ! -d "$LFS_BUILD/gcc" ]; then
export GCC_SOURCE_DIR=$1
if [ ! -d "$GCC_SOURCE_DIR/gcc" ]; then
tar -xzf "$BASE_DIR/sources/gcc-14.2.0.tar.gz"
mv "gcc-14.2.0" "$LFS_BUILD/gcc"
mv "gcc-14.2.0" "$GCC_SOURCE_DIR/gcc"
fi
cd "$GCC_SOURCE_DIR/gcc/"
if [ ! -d "mpfr" ]; then
tar -xf "$BASE_DIR/sources/mpfr-4.2.1.tar.xz"
mv -v mpfr-4.2.1 mpfr
fi
if [ ! -d "gmp" ]; then
tar -xf "$BASE_DIR/sources/gmp-6.3.0.tar.xz"
mv -v gmp-6.3.0 gmp
fi
if [ ! -d "mpc" ]; then
tar -xf "$BASE_DIR/sources/mpc-1.3.1.tar.gz"
mv -v mpc-1.3.1 mpc
fi
if [ ! -d "isl" ]; then
tar -xf "$BASE_DIR/sources/isl-0.27.tar.gz"
mv -v isl-0.27 isl
fi
if [ ! -d "cloog" ]; then
tar -xf "$BASE_DIR/sources/cloog-0.18.4.tar.gz"
mv -v cloog-0.18.4 cloog
fi
cd "$LFS_BUILD/gcc/"
tar -xf "$BASE_DIR/sources/mpfr-4.2.1.tar.xz"
mv -v mpfr-4.2.1 mpfr
tar -xf "$BASE_DIR/sources/gmp-6.3.0.tar.xz"
mv -v gmp-6.3.0 gmp
tar -xf "$BASE_DIR/sources/mpc-1.3.1.tar.gz"
mv -v mpc-1.3.1 mpc
tar -xf "$BASE_DIR/sources/isl-0.27.tar.gz"
mv -v isl-0.27 isl
tar -xf "$BASE_DIR/sources/cloog-0.18.4.tar.gz"
mv -v cloog-0.18.4 cloog
# On x86_64 hosts, set the default directory name for 64-bit libraries to “lib”
#case $(uname -m) in
@ -21,5 +38,3 @@ mv -v cloog-0.18.4 cloog
# -i.orig gcc/config/i386/t-linux64
#;;
#esac
cd "$BASE_DIR"