# Set the package we're building. package="gcc-14.2.0" extension=".tar.xz" # Decompress the source. echo "Unpacking ${package}${extension} ..." tar xvf ${package}${extension} # Enter the unpacked sources. echo "Entering ${package} directory ..." cd ${package} # LFS commands. case $(uname -m) in x86_64) sed -e '/m64=/s/lib64/lib/' \ -i.orig gcc/config/i386/t-linux64 ;; esac mkdir -v build cd build ../configure --prefix=/usr \ LD=ld \ --enable-languages=c,c++ \ --enable-default-pie \ --enable-default-ssp \ --enable-host-pie \ --disable-multilib \ --disable-bootstrap \ --disable-fixincludes \ --with-system-zlib make ulimit -s -H unlimited sed -e '/cpython/d' -i ../gcc/testsuite/gcc.dg/plugin/plugin.exp sed -e 's/no-pic /&-no-pie /' -i ../gcc/testsuite/gcc.target/i386/pr113689-1.c sed -e 's/300000/(1|300000)/' -i ../libgomp/testsuite/libgomp.c-c++-common/pr109062.c sed -e 's/{ target nonpic } //' \ -e '/GOTPCREL/d' -i ../gcc/testsuite/gcc.target/i386/fentryname3.c chown -R tester . su tester -c "PATH=$PATH make -k check" ../contrib/test_summary make install chown -v -R root:root \ /usr/lib/gcc/$(gcc -dumpmachine)/14.2.0/include{,-fixed} ln -svr /usr/bin/cpp /usr/lib ln -sv gcc.1 /usr/share/man/man1/cc.1ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/14.2.0/liblto_plugin.so \ /usr/lib/bfd-plugins/ echo 'int main(){}' > dummy.c cc dummy.c -v -Wl,--verbose &> dummy.log readelf -l a.out | grep ': /lib' sleep 10 grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log sleep 10 grep -B4 '^ /usr/include' dummy.log sleep 10 grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' sleep 10 rm -v dummy.c a.out dummy.log mkdir -pv /usr/share/gdb/auto-load/usr/lib mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib # Exit sources directory. echo "Exiting ${package} directory ..." cd .. # Remove the directory of source files. echo "Removing ${package} directory ..." rm -rf ${package}