Initial commit of LFS notes and scripts.
This commit is contained in:
68
lfs-scripts/gcc.sh
Normal file
68
lfs-scripts/gcc.sh
Normal file
@@ -0,0 +1,68 @@
|
||||
# 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}
|
||||
Reference in New Issue
Block a user