Problem in building the toolchain with gcc-8.1

Hello everyone, I currently having a problem build the toolchain from a freshly checkout coreboot repository. I've tried to build with different options: For example with all platforms and only with i386 support. Multi core (CPUS=4) and with a single core. Here an example build: Building toolchain using 1 thread(s). Target architecture is i386-elf Found compatible Ada compiler, enabling Ada support by default. Downloading and verifing tarballs ... * gmp-6.1.2.tar.xz (cached)... hash verified (9dc6981197a7d92f339192eea974f5eca48fcffe) * mpfr-3.1.5.tar.xz (cached)... hash verified (c0fab77c6da4cb710c81cc04092fb9bea11a9403) * mpc-1.0.3.tar.gz (cached)... hash verified (b8be66396c726fdc36ebb0f692ed8a8cca3bcc66) * binutils-2.29.1.tar.xz (cached)... hash verified (172244a349d07ec205c39c0321cbc354c125e78e) * gcc-6.3.0.tar.bz2 (cached)... hash verified (928ab552666ee08eed645ff20ceb49d139205dea) Downloaded tarballs ... ok Unpacking and patching ... * gmp-6.1.2.tar.xz o gmp-6.1.2_freebsd-configure.patch * mpfr-3.1.5.tar.xz * mpc-1.0.3.tar.gz * binutils-2.29.1.tar.xz o binutils-2.29.1_mips-gold.patch o binutils-2.29.1_no-bfd-doc.patch * gcc-6.3.0.tar.bz2 o gcc-6.3.0_ada-musl_workaround.patch o gcc-6.3.0_ada-raise.patch o gcc-6.3.0_elf_biarch.patch o gcc-6.3.0_gnat.patch o gcc-6.3.0_libgcc.patch o gcc-6.3.0_memmodel.patch o gcc-6.3.0_nds32_ite.patch o gcc-6.3.0_no-p-var.patch o gcc-6.3.0_pointer_integer.patch o gcc-6.3.0_riscv.patch Unpacked and patched ... ok Building packages ... Building GMP v6.1.2 for host ... ok Building MPFR v3.1.5 for host ... ok Building MPC v1.0.3 for host ... ok Building BINUTILS v2.29.1 for target ... ok Building GCC v6.3.0 for target ... failed. Check 'build-i386-elf-GCC/build.log'. make[3]: *** [Makefile:26: build_gcc] Error 1 make[2]: *** [Makefile:48: build-i386] Error 2 make[1]: *** [Makefile:16: all_without_gdb] Error 2 make: *** [util/crossgcc/Makefile.inc:37: crossgcc] Error 2 I also tried to do this with clang, with similar result. Here is the log from clang: [ 52%] Building CXX object projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o /home/akendo/src/coreboot/util/crossgcc/llvm-4.0.0.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: In function 'int __s$ nitizer::TracerThread(void*)': /home/akendo/src/coreboot/util/crossgcc/llvm-4.0.0.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:278:22: error: aggreg$ te 'sigaltstack handler_stack' has incomplete type and cannot be defined struct sigaltstack handler_stack; ^~~~~~~~~~~~~ make[2]: *** [projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/build.make:255: projects/compiler-rt/lib/sanitizer_common/$ MakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:14006: projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 ./buildgcc: line 840: cd: /home/akendo/src/coreboot/util/crossgcc/xgcc/lib/clang/4.0.0/lib: No such file or directory A look into the build log from GCC seems to disclose a similar error: make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/libdecnumber' make[1]: Entering directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/fixincludes' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/fixincludes' make[1]: Entering directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/gcc' gnatgcc -c -O2 -fomit-frame-pointer -m64 -gnatpg -gnatwG -W -Wall -nostdinc -I- -I. -Iada/generated -Iada -I../../gcc-6.3.0/gcc/ada -I../../gcc-6.3.0/gcc/ada/gcc-interface ../../gcc-6.3.0/gcc/ada/aspects.adb -o ada/aspects.o aspects.adb:38:29: warning: use clause for package "HTable" has no effect make[1]: *** [../../gcc-6.3.0/gcc/ada/gcc-interface/Make-lang.in:119: ada/aspects.o] Error 1 make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/gcc' make: *** [Makefile:4108: all-gcc] Error 2 /bin/sh ../gcc-6.3.0/mkinstalldirs /home/akendo/src/coreboot/util/crossgcc/xgcc /home/akendo/src/coreboot/util/crossgcc/xgcc /bin/sh: line 3: cd: i386-elf/libgcc: No such file or directory make: *** [Makefile:10796: install-target-libgcc] Error 1 I'm using ArchLinux with a Linux kernel 4.16.13-1 and gcc 8.1.0-1, gcc-ada 8.1.0-1 I checkout the git code in different version (4.8, 4.8.1, latest master commit). I quite sure that's the problem is the compiler. However I do not know how to fix this in the moment. I added the compressed logs from the i386-elf build. Hope this can help. Thank you for reading. best regards, akendo

We're currently working on upgrading our toolchain to gcc 8.1. Feel free to try out https://review.coreboot.org/c/coreboot/+/25997 Regards, Patrick Am Di., 5. Juni 2018 um 13:00 Uhr schrieb Akendo <akendo@akendo.eu>:
Hello everyone,
I currently having a problem build the toolchain from a freshly checkout coreboot repository. I've tried to build with different options: For example with all platforms and only with i386 support. Multi core (CPUS=4) and with a single core. Here an example build:
Building toolchain using 1 thread(s).
Target architecture is i386-elf
Found compatible Ada compiler, enabling Ada support by default.
Downloading and verifing tarballs ... * gmp-6.1.2.tar.xz (cached)... hash verified (9dc6981197a7d92f339192eea974f5eca48fcffe)
* mpfr-3.1.5.tar.xz (cached)... hash verified (c0fab77c6da4cb710c81cc04092fb9bea11a9403)
* mpc-1.0.3.tar.gz (cached)... hash verified (b8be66396c726fdc36ebb0f692ed8a8cca3bcc66)
* binutils-2.29.1.tar.xz (cached)... hash verified (172244a349d07ec205c39c0321cbc354c125e78e)
* gcc-6.3.0.tar.bz2 (cached)... hash verified (928ab552666ee08eed645ff20ceb49d139205dea)
Downloaded tarballs ... ok Unpacking and patching ... * gmp-6.1.2.tar.xz o gmp-6.1.2_freebsd-configure.patch * mpfr-3.1.5.tar.xz * mpc-1.0.3.tar.gz * binutils-2.29.1.tar.xz o binutils-2.29.1_mips-gold.patch o binutils-2.29.1_no-bfd-doc.patch * gcc-6.3.0.tar.bz2 o gcc-6.3.0_ada-musl_workaround.patch o gcc-6.3.0_ada-raise.patch o gcc-6.3.0_elf_biarch.patch o gcc-6.3.0_gnat.patch o gcc-6.3.0_libgcc.patch o gcc-6.3.0_memmodel.patch o gcc-6.3.0_nds32_ite.patch o gcc-6.3.0_no-p-var.patch o gcc-6.3.0_pointer_integer.patch o gcc-6.3.0_riscv.patch Unpacked and patched ... ok Building packages ... Building GMP v6.1.2 for host ... ok Building MPFR v3.1.5 for host ... ok Building MPC v1.0.3 for host ... ok Building BINUTILS v2.29.1 for target ... ok Building GCC v6.3.0 for target ... failed. Check 'build-i386-elf-GCC/build.log'.
make[3]: *** [Makefile:26: build_gcc] Error 1 make[2]: *** [Makefile:48: build-i386] Error 2 make[1]: *** [Makefile:16: all_without_gdb] Error 2 make: *** [util/crossgcc/Makefile.inc:37: crossgcc] Error 2
I also tried to do this with clang, with similar result.
Here is the log from clang:
[ 52%] Building CXX object projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o
/home/akendo/src/coreboot/util/crossgcc/llvm-4.0.0.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc: In function 'int __s$ nitizer::TracerThread(void*)': /home/akendo/src/coreboot/util/crossgcc/llvm-4.0.0.src/projects/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc:278:22: error: aggreg$ te 'sigaltstack handler_stack' has incomplete type and cannot be defined struct sigaltstack handler_stack; ^~~~~~~~~~~~~ make[2]: *** [projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/build.make:255: projects/compiler-rt/lib/sanitizer_common/$ MakeFiles/RTSanitizerCommonLibc.x86_64.dir/sanitizer_stoptheworld_linux_libcdep.cc.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:14006: projects/compiler-rt/lib/sanitizer_common/CMakeFiles/RTSanitizerCommonLibc.x86_64.dir/all] Error 2 make: *** [Makefile:152: all] Error 2 ./buildgcc: line 840: cd: /home/akendo/src/coreboot/util/crossgcc/xgcc/lib/clang/4.0.0/lib: No such file or directory
A look into the build log from GCC seems to disclose a similar error:
make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/libdecnumber' make[1]: Entering directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/fixincludes' make[1]: Nothing to be done for 'all'. make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/fixincludes' make[1]: Entering directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/gcc' gnatgcc -c -O2 -fomit-frame-pointer -m64 -gnatpg -gnatwG -W -Wall -nostdinc -I- -I. -Iada/generated -Iada -I../../gcc-6.3.0/gcc/ada -I../../gcc-6.3.0/gcc/ada/gcc-interface ../../gcc-6.3.0/gcc/ada/aspects.adb -o ada/aspects.o aspects.adb:38:29: warning: use clause for package "HTable" has no effect make[1]: *** [../../gcc-6.3.0/gcc/ada/gcc-interface/Make-lang.in:119: ada/aspects.o] Error 1 make[1]: Leaving directory '/home/akendo/src/coreboot/util/crossgcc/build-i386-elf-GCC/gcc' make: *** [Makefile:4108: all-gcc] Error 2 /bin/sh ../gcc-6.3.0/mkinstalldirs /home/akendo/src/coreboot/util/crossgcc/xgcc /home/akendo/src/coreboot/util/crossgcc/xgcc /bin/sh: line 3: cd: i386-elf/libgcc: No such file or directory make: *** [Makefile:10796: install-target-libgcc] Error 1
I'm using ArchLinux with a Linux kernel 4.16.13-1 and gcc 8.1.0-1, gcc-ada 8.1.0-1
I checkout the git code in different version (4.8, 4.8.1, latest master commit). I quite sure that's the problem is the compiler. However I do not know how to fix this in the moment.
I added the compressed logs from the i386-elf build. Hope this can help. Thank you for reading.
best regards, akendo -- coreboot mailing list: coreboot@coreboot.org https://mail.coreboot.org/mailman/listinfo/coreboot
-- Google Germany GmbH, ABC-Str. 19, 20354 Hamburg Registergericht und -nummer: Hamburg, HRB 86891, Sitz der Gesellschaft: Hamburg Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
participants (2)
-
Akendo
-
Patrick Georgi