Bash script to build LFS
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

139 lines
4.0 KiB

#!/usr/bin/env bash
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 || return 1
../configure --prefix=/usr \
LD=ld \
--enable-languages=c,c++ \
--enable-default-pie \
--enable-default-ssp \
--enable-host-pie \
--enable-targets=all \
--disable-multilib \
--disable-bootstrap \
--disable-fixincludes \
--with-system-zlib
make || return 1
ulimit -s -H unlimited
chown -Rv tester .
:>/tmp/gcc_make_check.log
su tester -c "PATH=$PATH make -k check" | tee /tmp/gcc_make_check.log
grep ^FAIL /tmp/gcc_make_check.log | cut -d' ' -f 2 | while IFS= read -r failure
do
case ${failure} in
gcc.target/i386/auto-init-padding-9.c|\
gcc.target/i386/builtin-memmove-12.c|\
gcc.target/i386/builtin-memmove-13.c|\
gcc.target/i386/memcpy-pr120683-*.c|\
gcc.target/i386/memset-pr120683-*.c|\
gcc.target/i386/pr111657-1.c|\
gcc.target/i386/pr115102.c|\
gcc.target/i386/pr116896.c|\
gcc.target/i386/pr120881-2a.c|\
gcc.target/i386/pr122343-4a.c|\
g++.target/i386/mv-symbols*.C|\
g++.target/i386/mvc-symbols*.C|\
g++.target/i386/pr112824-2.C|\
g++.target/i386/pr116896-1.C\
)
echo "--- ${failure} : Known to fail"
continue
;;
gcc.dg/lto/toplevel-simple-asm-1|\
gcc.dg/ipa/pr122458.c|\
gcc.dg/plugin/crash-test-nested-ice.c|\
gcc.dg/plugin/crash-test-nested-write-through-null.c|\
gcc.dg/lto/toplevel-extended-asm-1|\
gcc.target/i386/memset-pr70308-1a.c|\
gcc.target/i386/memset-pr70308-1b.c|\
gcc.target/i386/pr61599-1.c|\
gcc.target/i386/xchg-4.c|\
g++.target/i386/memset-pr108585-1a.C|\
g++.target/i386/memset-pr108585-1b.C|\
libgomp.c/../libgomp.c-c++-common/metadirective-4.c|\
libgomp.c++/../libgomp.c-c++-common/metadirective-4.c\
)
echo "--- ${failure} : failure"
continue
;;
30_threads/future/members/poll.cc)
echo "--- ${failure} : failure"
continue
;;
gcc.dg/20021014-1.c|\
gcc.dg/aru-2.c|\
gcc.dg/hierarchical-discriminator-vect-version.c|\
gcc.dg/nest.c|\
gcc.dg/pr32450.c|\
gcc.dg/pr43643.c|\
gcc.dg/pr86058.c|\
gcc.dg/tree-ssa/pr122629-1.c|\
gcc.misc-tests/gcov-22.c|\
gcc.target/i386/387-9.c|\
gcc.target/i386/avx512fp16-13.c|\
gcc.target/i386/mvc10.c|\
gcc.target/i386/pr121062-2.c|\
gcc.target/i386/pr121062-6.c|\
gcc.target/i386/pr121934-2b.c|\
gcc.target/i386/pr122343-*.c|\
gcc.target/i386/pr92080-??.c|\
gcc.target/i386/pr92080-?.c|\
gcc.target/i386/pr94913-2.c|\
gcc.target/i386/sseregparm-3.c|\
g++.dg/opt/pr100852.C|\
g++.dg/template/friend88.C|\
g++.dg/lto/pr87906\
)
echo "--- ${failure} : failure on x86"
continue
;;
*)
echo "Failed on FAIL ${failure}"
exit 1
;;
esac
done
../contrib/test_summary
make install || return 1
chown -v -R root:root "$(gcc -print-file-name=include)"{,-fixed}
ln -svr /usr/bin/cpp /usr/lib
ln -sv gcc.1 /usr/share/man/man1/cc.1
ln -sfvr "$(gcc -print-prog-name=liblto_plugin.so)" /usr/lib/bfd-plugins/
echo 'int main(){}' | cc -x c - -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib' || return 1
grep -E -o '/usr/lib.*/S?crt[1in].*succeeded' dummy.log || return 1
grep -B4 '^ /usr/include' dummy.log || return 1
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|; |\n|g' || return 1
grep "/lib.*/libc.so.6 " dummy.log || return 1
grep found dummy.log || return 1
mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-load/usr/lib