Uploaded image for project: 'Funtoo Linux'
  1. Funtoo Linux
  2. FL-10753

[core-kit] unnecessary isl binutils dependency

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Important (Ebuild) Important (Ebuild)
    • None
    • None
    • Hide
      Build and ffs harvester stage1
      Seed it into metro stage2, configuring metro to use harvester
      Here are the commands (there is obviously many more complicated manual steps) in between:
      git clone ffs repo
      cd ffs
      time ./ci/lxd-baremetal/bin/ffs gnu x86-64bit
      lxc file pull ffs-ss-x86-64bit-gnu-test/var/tmp/ffs_x86_64bit_harvester_2022_11_stage1.tar.xz ./
      cp -v ffs_stage1s/stage1_ffs_x86_64bit_harvester_2022_11.tar.xz /home/mirror/funtoo/next/x86-64bit/generic_64/2022-11-24/stage1-generic_64-next-2022-11-24.tar.xz
      export EGO_SYNC_BASE_URL="git://harvester.funtoo.org/funtoo/tree/{repo}"
      time /root/metro/scripts/ezbuild.sh next x86-64bit generic_64 full
      Show
      Build and ffs harvester stage1 Seed it into metro stage2, configuring metro to use harvester Here are the commands (there is obviously many more complicated manual steps) in between: git clone ffs repo cd ffs time ./ci/lxd-baremetal/bin/ffs gnu x86-64bit lxc file pull ffs-ss-x86-64bit-gnu-test/var/tmp/ffs_x86_64bit_harvester_2022_11_stage1.tar.xz ./ cp -v ffs_stage1s/stage1_ffs_x86_64bit_harvester_2022_11.tar.xz /home/mirror/funtoo/next/x86-64bit/generic_64/2022-11-24/stage1-generic_64-next-2022-11-24.tar.xz export EGO_SYNC_BASE_URL=" git://harvester.funtoo.org/funtoo/tree/ {repo}" time /root/metro/scripts/ezbuild.sh next x86-64bit generic_64 full
    • Harvester Stage2 metro builds using ffs harvester based stage1s are completely blocked
    • The latest harvester binutils does not have the correct dependencies for default configure

      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.

            siris siris
            siris siris
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: