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} \