During tonight's Funtoo From Scratch Harvester Hack Live Stream szenesis and I found a major blocker bug for the new sys-devel/binutils-2.39_p5 when end-to-end testing FFS Harvester 2022-11 stage1 toolchain in metro strage2 builds. sys-devel/binutils completed failed its emake compile stage with this error:
make[1]: Leaving directory '/var/tmp/portage/sys-devel/binutils-2.39_p5/work/build'
make: *** [Makefile:1004: all] Error 2
* ERROR: sys-devel/binutils-2.39_p5::core-kit failed (compile phase):
* emake failed
This error was very perplexing and cryptic. The root cause ended up being completely silent to regular configure output shown by emerge. To find it we have to go into the config.log of configure itself within the portage temp build directory of binutils at:
/var/tmp/metro/work/next/stage2-generic_64-next-2022-11-24/var/tmp/portage/sys-devel/binutils-2.39_p5/work/build
Then after scrolling through the log, we found this golden nugget of a error from GCC 12.2.0 itself:
configure:6290: checking for isl 0.15 or later configure:6303: x86_64-pc-linux-gnu-gcc -o conftest -mtune=generic -O2 -pipe -Wl,-O1 -Wl,--sort-common -Wl,--as-needed -lisl -lmpc -lmpfr -lgmp conftest.c -lisl -lgmp >&5 conftest.c:10:10: fatal error: isl/schedule.h: No such file or directory 10 | #include <isl/schedule.h> | ^~~~~~~~~~~~~~~~ compilation terminated. configure:6303: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "" | #define PACKAGE_TARNAME "" | #define PACKAGE_VERSION "" | #define PACKAGE_STRING "" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include <isl/schedule.h> | int | main () | { | isl_options_set_schedule_serialize_sccs (NULL, 0); | ; | return 0; | }
This is genuine toolchain error but more interesting this is a missing BDEPENDS of the new 2.39 binutils. But it only manifests because we are are building FFS stage1s.
For fun we actually went and cross checked our autogen binutils ebuild template against Gentoo's upstream binutils ebuild at: https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-devel/binutils/binutils-2.39-r4.ebuild and they as well DO NOT have dev-libs/isl as a BDEPENDS.
What this means is dev-libs/isl is installed in earlier Gentoo stages but not ours. The proper fix here is to update our bintuils ebuild template to ensure dev-libs/isl is a proper dependency. That in theory should fix it compiling during FFS based metro stage2 builds.
- relates to
-
FFS-16 [toolchain] pthread library from Harvester Glibc 2.36-r6 is not being detected by bintuils-2.39_p5 during ffs based metro stage2 build
- Work Queue