Unable to build coreboot 2

When I run ./build_coreboot.sh it exits with the message

Building GCC v6.3.0 for target ... failed. Check 'build-i386-elf-GCC/build.log'.
make[2]: *** [Makefile:26: build_gcc] Error 1
make[1]: *** [Makefile:48: build-i386] Error 2
make: *** [util/crossgcc/Makefile.inc:46: crossgcc-i386] Error 2

build-i386-elf-GCC/build.log ends with

make: *** [Makefile:4108: all-gcc] Error 2
/bin/bash ../gcc-6.3.0/mkinstalldirs /home/me/Downloads/building-coreboot/coreboot/util/crossgcc/xgcc /home/me/Downloads/building-coreboot/coreboot/util/crossgcc/xgcc
/bin/bash: line 3: cd: i386-elf/libgcc: No such file or directory
make: *** [Makefile:10796: install-target-libgcc] Error 1

Any ideas?

I’m able to clone and build coreboot toolchain just fine.

$ git clone https://review.coreboot.org/coreboot
Cloning into 'coreboot'...
remote: Counting objects: 11, done
remote: Total 439577 (delta 0), reused 439577 (delta 0)
Receiving objects: 100% (439577/439577), 108.14 MiB | 1.56 MiB/s, done.
Resolving deltas: 100% (342452/342452), done.
Checking out files: 100% (15699/15699), done.
$ cd coreboot/
$ make crossgcc-i386 CPUS=$(nproc)
Welcome to the coreboot cross toolchain builder v2d22d335dc (2019-03-22)

Building toolchain using 4 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 (downloading from https://ftpmirror.gnu.org/gmp/gmp-6.1.2.tar.xz)... 100%... hash verified (9dc6981197a7d92f339192eea974f5eca48fcffe)
 * mpfr-4.0.2.tar.xz (downloading from https://ftpmirror.gnu.org/mpfr/mpfr-4.0.2.tar.xz)... 100%... hash verified (52c1f2a4c9a202f46cf3275a8d46b562aa584208)
 * mpc-1.1.0.tar.gz (downloading from https://ftpmirror.gnu.org/mpc/mpc-1.1.0.tar.gz)... 100%... hash verified (b019d9e1d27ec5fb99497159d43a3164995de2d0)
 * binutils-2.32.tar.xz (downloading from https://ftpmirror.gnu.org/binutils/binutils-2.32.tar.xz)... 100%... hash verified (cd45a512af1c8a508976c1beb4f5825b3bb89f4d)
 * gcc-8.2.0.tar.xz (downloading from https://ftpmirror.gnu.org/gcc/gcc-8.2.0/gcc-8.2.0.tar.xz)... 100%... hash verified (19926bdb6c4b58891015929853d41aeff019d400)
Downloaded tarballs ... ok
Unpacking and patching ...
 * gmp-6.1.2.tar.xz
   o gmp-6.1.2_freebsd-configure.patch
 * mpfr-4.0.2.tar.xz
 * mpc-1.1.0.tar.gz
 * binutils-2.32.tar.xz
   o binutils-2.32_mips-gold.patch
   o binutils-2.32_no-bfd-doc.patch
 * gcc-8.2.0.tar.xz
   o gcc-8.2.0_ada-musl_workaround.patch
   o gcc-8.2.0_gnat.patch
   o gcc-8.2.0_libgcc.patch
   o gcc-8.2.0_nds32_ite.patch
Unpacked and patched ... ok
Building packages ...
Building GMP v6.1.2 for host ... ok
Building MPFR v4.0.2 for host ... ok
Building MPC v1.1.0 for host ... ok
Building BINUTILS v2.32 for target ... ok
Building GCC v8.2.0 for target ... ok
Packages built ... ok
Copied EDK2 tools template ... ok
Cleaning up temporary files... ok

But running the purism script yields

Welcome to the coreboot cross toolchain builder v1.50 (October 15th, 2017)

Building toolchain using 4 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[2]: *** [Makefile:26: build_gcc] Error 1
make[1]: *** [Makefile:48: build-i386] Error 2
make: *** [util/crossgcc/Makefile.inc:46: crossgcc-i386] Error 2

So it seems to be something that is introduced by this section in the script

git fetch origin
git fetch purism
git fetch purism --tags
# checkout master so we can delete the librem branch
git checkout master
# delete it, in case it's our first run, do || true
git branch -D librem || true
git checkout -b librem "$COREBOOT_TAG"
# need to update submodules after the checkout
git sup

I tried using the version of build_coreboot.sh that was marked as verified, 075bfa7ce16ac33f11c747646b84d5f8d12af20f, same result.

what OS are you building from, and what is the host gcc version? It’s possible your host gcc is failing to build the older gcc 6.3 specified by the tagged version of coreboot used in the build script

Running Debian Buster.

$ gcc --version
gcc (Debian 8.3.0-5) 8.3.0

same here, I’ll see if I can reproduce on a fresh build

edit: yep, same issue here on Buster for me. looks like an issue compiling gcc-6.3 w/gnat support from a host gcc-8.x. Working on a solution