diff --git a/build-virtio.sh b/build-virtio.sh new file mode 100755 index 0000000..49bceaa --- /dev/null +++ b/build-virtio.sh @@ -0,0 +1,10 @@ +#!/bin/bash +export KERNEL_ARCH="x86_64" +export TARGET_TRIPLET_ARCH="x86_64" +export TARGET_TRIPLET_VENDOR="lfs" +export TARGET_TRIPLET_OS="linux" +export TARGET_TRIPLET_GNUEABI="gnu" + +export TARGET_ADDITIONAL_CFLAGS="-fPIC" + +bash build.sh \ No newline at end of file diff --git a/build.sh b/build.sh index 5f3aaf8..83dcb35 100755 --- a/build.sh +++ b/build.sh @@ -92,8 +92,8 @@ setup_toolchain() { export STRIP="$LFS_TGT-strip" export OBJDUMP="$LFS_TGT-objdump" export READELF="$LFS_TGT-readelf" - export 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=" -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 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" export LDFLAGS=" -L$LFS/usr/lib -L$LFS_TOOLS/lib" export LD_LIBRARY_PATH_old="$LD_LIBRARY_PATH" export LD_LIBRARY_PATH="$LFS_TOOLS/lib $LFS/usr/lib" @@ -459,6 +459,46 @@ if [ ! -f "$STEPS_DIR/gcc-step3" ]; then touch "$STEPS_DIR/gcc-step3" fi +if [ ! -f "$STEPS_DIR/gcc-final" ]; then + bash unpack-gcc.sh "$LFS_BUILD/" + cd "$LFS_BUILD/gcc" + + mkdir -vp build-final + cd build-final + + # ../configure is already done + "../configure" \ + --target=$LFS_TGT \ + --host=${BUILD_MACHINE_TRIPLET} \ + --build=${BUILD_MACHINE_TRIPLET} \ + --prefix=$LFS_TOOLS \ + --with-glibc-version=2.40 \ + --with-sysroot=$LFS \ + --enable-c99 \ + --enable-long-long \ + --enable-default-pie \ + --enable-default-ssp \ + --enable-nls \ + --disable-multilib \ + --enable-libatomic \ + --enable-libmudflap \ + --enable-libgomp \ + --enable-libquadmath \ + --enable-libquadmath-support \ + --enable-libssp \ + --enable-libvtv \ + --enable-libstdcxx \ + --enable-decimal-float \ + --enable-languages=c,c++ + + make -j 32 # if build fails add --disable-libsanitizer + make -j 32 install + + cd "$BASE_DIR" + #rm -rf "$LFS_BUILD/gcc/build" + touch "$STEPS_DIR/gcc-final" +fi + ## finish the host toolchain #host_toolchain #bash "build-host-tools.sh" @@ -1258,7 +1298,7 @@ if [ ! -f "$STEPS_DIR/pcre2" ]; then rm -rf "$LFS_BUILD/pcre2" touch "$STEPS_DIR/pcre2" fi -exit 0 + # build swig if [ ! -f "$STEPS_DIR/swig" ]; then if [ ! -d "$LFS_BUILD/swig" ]; then @@ -1295,6 +1335,10 @@ if [ ! -f "$STEPS_DIR/libcap-ng" ]; then fi cd "$LFS_BUILD/libcap-ng" + # this workaround comes straight from archlinux + # make stupid autotools happy -_- + touch NEWS + autoreconf -fiv mkdir -vp build-$LFS_TGT @@ -1305,7 +1349,7 @@ if [ ! -f "$STEPS_DIR/libcap-ng" ]; then --with-sysroot=${LFS} \ --host=${LFS_TGT} \ --build=${BUILD_MACHINE_TRIPLET} \ - --prefix="/usr" \ + --prefix=/usr \ --without-python \ --without-python3 \ --enable-static=no \