#!/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