From 24befb2ffd6bb10946ef43aa7aa9b2b1b671596a Mon Sep 17 00:00:00 2001 From: Aditya Date: Wed, 11 Jan 2023 14:38:35 +0530 Subject: [PATCH] Add 8.26 - Build gcc --- scripts/chapter8/8.26-gcc.sh | 74 ++++++++++++++++++++++++++++++++++++ scripts/main.sh | 12 ++++++ 2 files changed, 86 insertions(+) create mode 100644 scripts/chapter8/8.26-gcc.sh diff --git a/scripts/chapter8/8.26-gcc.sh b/scripts/chapter8/8.26-gcc.sh new file mode 100644 index 0000000..d9fa57c --- /dev/null +++ b/scripts/chapter8/8.26-gcc.sh @@ -0,0 +1,74 @@ +#!/bin/bash + +cd /sources +tar xf gcc-12.2.0.tar.xz +cd gcc-12.2.0 + +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++ \ + --disable-multilib \ + --disable-bootstrap \ + --with-system-zlib + +if [ $? -ne 0 ] +then + exit 1 +fi + +make -j5 + +if [ $? -ne 0 ] +then + exit 1 +fi + +ulimit -s 32768 + +chown -Rv tester . +su tester -c "PATH=$PATH make -k check" + +../contrib/test_summary + +make install + +chown -v -R root:root \ + /usr/lib/gcc/$(gcc -dumpmachine)/12.2.0/include{,-fixed} + +ln -svr /usr/bin/cpp /usr/lib + +ln -sfv ../../libexec/gcc/$(gcc -dumpmachine)/12.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' + +grep -o '/usr/lib.*/crt[1in].*succeeded' dummy.log + +grep -B4 '^ /usr/include' dummy.log + +grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' + +grep "/lib.*/libc.so.6 " dummy.log + +grep found dummy.log + +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 + +cd /sources +rm -rf gcc-12.2.0 + diff --git a/scripts/main.sh b/scripts/main.sh index 940de7b..805bc32 100644 --- a/scripts/main.sh +++ b/scripts/main.sh @@ -846,3 +846,15 @@ then stop_script "chapter8/8.25-shadow.sh" fi +# Chapter 8.26 +# ============ +echo "Building gcc" +su -c "bash $SCRIPT/chapter8/8.26-gcc.sh" + +# Exit on error +check_exit_code +if [ $exit_status -ne 0 ] +then + stop_script "chapter8/8.26-gcc.sh" +fi +