* since the upgrade to 249.1 in:
  
https://git.openembedded.org/openembedded-core/commit/?id=323ec445dfe22860cd450c303db5ed8fcb4e791c
  the builds with ld-is-gold are failing with:

  [17/21] Generating linuxx64.elf.stub with a custom command
  FAILED: src/boot/efi/linuxx64.elf.stub
  
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-ld
 -o src/boot/efi/linuxx64.elf.stub -T 
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/elf_x86_64_efi.lds
 -shared -Bsymbolic -nostdlib -znocombreloc --build-id=sha1 -L 
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib
 
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o
 src/boot/efi/string-util-fundamental.c.o src/boot/efi/disk.c.o 
src/boot/efi/graphics.c.o src/boot/efi/measure.c.o src/boot/efi/pe.c.o 
src/boot/efi/secure-boot.c.o src/boot/efi/util.c.o src/boot/efi/linux.c.o 
src/boot/efi/splash.c.o src/boot/efi/stub.c.o -lefi -lgnuefi 
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/../lib/x86_64-oe-linux/11.2.0/libgcc.a
  
/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot-native/usr/bin/x86_64-oe-linux/x86_64-oe-linux-ld:
 internal error in segment_precedes, at ../../gold/layout.cc:3721
  [18/21] Generating boot.c.o with a custom command
  ninja: build stopped: subcommand failed.
  WARNING: exit code 1 from a shell command.

  as reported in:
  https://lists.openembedded.org/g/openembedded-core/message/154246

* if someone is using lld or ld.lld in ${LD} then it would fail as well:
  
https://github.com/systemd/systemd/commit/e39288193fcdf3a36dbc49b78e6c9bf86a764e31

* work around this by always using ld.bfd instead of whatever is set in ${LD}

* it needs to be prefixed with ${HOST_PREFIX} to match how LD is constructed:
  $ bitbake-getvar -r systemd-boot LD
  #
  # $LD [2 operations]
  #   exported /OE/build/oe-core/openembedded-core/meta/conf/bitbake.conf:523
  #     [export] "1"
  #   set /OE/build/oe-core/openembedded-core/meta/conf/bitbake.conf:523
  #     "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
  # pre-expansion value:
  #   "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}"
  export LD="x86_64-oe-linux-ld 
--sysroot=/OE/build/oe-core/tmp-glibc/work/core2-64-oe-linux/systemd-boot/249.1-r0/recipe-sysroot
  "

  $ bitbake-getvar -r systemd-boot EFI_LD
  #
  # $EFI_LD
  #   set 
/OE/build/oe-core/openembedded-core/meta/recipes-core/systemd/systemd-boot_249.1.bb:23
  #     "${HOST_PREFIX}ld.bfd"
  EFI_LD="x86_64-oe-linux-ld.bfd"

  otherwise first ld.bfd it will find will be from HOSTTOOLS_NONFATAL and
  fail when host's binutils isn't compatible as in:
  
https://autobuilder.yoctoproject.org/typhoon/#/builders/104/builds/2673/steps/11/logs/stdio

  FAILED: src/boot/efi/linuxx64.elf.stub
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/hosttools/ld.bfd 
-o src/boot/efi/linuxx64.elf.stub -T 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/elf_x86_64_efi.lds
 -shared -Bsymbolic -nostdlib -znocombreloc --build-id=sha1 -L 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib
 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o
 src/boot/efi/string-util-fundamental.c.o src/boot/efi/disk.c.o 
src/boot/efi/graphics.c.o src/boot/efi/measure.c.o src/boot/efi/pe.c.o 
src/boot/efi/secure-boot.c.o src/boot/efi/util.c.o src/boot/efi/linux.c.o 
src/boot/efi/splash.c.o src/boot/efi/stub.c.o -lefi -lgnuefi 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/../lib/x86_64-poky-linux/11.2.0/libgcc.a
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/hosttools/ld.bfd:
 warning: 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o:
 unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010002
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/hosttools/ld.bfd:
 warning: 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o:
 unsupported GNU_PROPERTY_TYPE (5) type: 0xc0010001
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/hosttools/ld.bfd:
 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o:
 unable to initialize decompress status for section .debug_line
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/hosttools/ld.bfd:
 
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o:
 unable to initialize decompress status for section .debug_line
  
/home/pokybuild/yocto-worker/genericx86-64-alt/build/build/tmp/work/core2-64-poky-linux/systemd-boot/249.1-r0/recipe-sysroot/usr/lib/crt0-efi-x86_64.o:
 file not recognized: File format not recognized

Signed-off-by: Martin Jansa <martin.ja...@gmail.com>
---
 meta/recipes-core/systemd/systemd-boot_249.1.bb | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-core/systemd/systemd-boot_249.1.bb 
b/meta/recipes-core/systemd/systemd-boot_249.1.bb
index d767b5bf8d..c93bc3160b 100644
--- a/meta/recipes-core/systemd/systemd-boot_249.1.bb
+++ b/meta/recipes-core/systemd/systemd-boot_249.1.bb
@@ -19,11 +19,14 @@ objcopy = ${@meson_array('OBJCOPY', d)}
 EOF
 }
 
+# need to use ${HOST_PREFIX} here, otherwise ld.bfd could be used from 
HOSTTOOLS_NONFATAL
+EFI_LD = "${HOST_PREFIX}ld.bfd"
+
 EXTRA_OEMESON += "-Defi=true \
                   -Dgnu-efi=true \
                   -Defi-includedir=${STAGING_INCDIR}/efi \
                   -Defi-libdir=${STAGING_LIBDIR} \
-                  -Defi-ld=${@ d.getVar('LD').split()[0]} \
+                  -Defi-ld=${EFI_LD} \
                   -Dman=false \
                   --cross-file ${WORKDIR}/meson-${PN}.cross \
                   "
-- 
2.30.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#154466): 
https://lists.openembedded.org/g/openembedded-core/message/154466
Mute This Topic: https://lists.openembedded.org/mt/84672607/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to