From 89ce67d8e41cc50a9b9ee225c054729f9cee7cdc Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Thu, 6 Feb 2025 14:48:07 +0000 Subject: [PATCH] recipes: Drop ld-is-gold support Gold hasn't seen development in some time and is being dropped from binutils releases. Drop the small number of special cases for it we were carrying. This patch also turns off gold in the binutils recipe. (From OE-Core rev: a4addb9ab63011e7c604fc5daff95559e7d214e7) Signed-off-by: Richard Purdie --- meta/recipes-bsp/u-boot/u-boot.inc | 6 +----- meta/recipes-devtools/binutils/binutils.inc | 20 +------------------ .../recipes-devtools/rust/libstd-rs_1.81.0.bb | 5 ----- meta/recipes-devtools/rust/rust_1.81.0.bb | 5 ----- meta/recipes-extended/ltp/ltp_20240930.bb | 9 ++++----- meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.bb | 4 ---- meta/recipes-sato/webkit/webkitgtk_2.46.5.bb | 9 +++------ .../libunwind/libunwind_1.6.2.bb | 2 +- 8 files changed, 10 insertions(+), 50 deletions(-) diff --git a/meta/recipes-bsp/u-boot/u-boot.inc b/meta/recipes-bsp/u-boot/u-boot.inc index 3270c22e8d..9464736b84 100644 --- a/meta/recipes-bsp/u-boot/u-boot.inc +++ b/meta/recipes-bsp/u-boot/u-boot.inc @@ -10,7 +10,7 @@ inherit uboot-config uboot-extlinux-config uboot-sign deploy python3native kerne DEPENDS += "swig-native" EXTRA_OEMAKE = 'CROSS_COMPILE=${TARGET_PREFIX} V=1' -EXTRA_OEMAKE += 'CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)} ${DEBUG_PREFIX_MAP}"' +EXTRA_OEMAKE += 'CC="${TARGET_PREFIX}gcc ${TOOLCHAIN_OPTIONS} ${DEBUG_PREFIX_MAP}"' EXTRA_OEMAKE += 'HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}"' EXTRA_OEMAKE += 'STAGING_INCDIR=${STAGING_INCDIR_NATIVE} STAGING_LIBDIR=${STAGING_LIBDIR_NATIVE}' @@ -35,10 +35,6 @@ require u-boot-configure.inc UBOOT_ARCH_DIR = "${@'arm' if d.getVar('UBOOT_ARCH').startswith('arm') else d.getVar('UBOOT_ARCH')}" do_compile () { - if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then - sed -i 's/$(CROSS_COMPILE)ld$/$(CROSS_COMPILE)ld.bfd/g' ${S}/config.mk - fi - unset LDFLAGS unset CFLAGS unset CPPFLAGS diff --git a/meta/recipes-devtools/binutils/binutils.inc b/meta/recipes-devtools/binutils/binutils.inc index 81443105f6..00b1301258 100644 --- a/meta/recipes-devtools/binutils/binutils.inc +++ b/meta/recipes-devtools/binutils/binutils.inc @@ -56,12 +56,6 @@ GPROFNG_ALTS:x86 = "${GPROFNGS}" GPROFNG_ALTS:x86-64 = "${GPROFNGS}" GPROFNG_ALTS:aarch64 = "${GPROFNGS}" -LDGOLD_ALTS ?= "ld.gold dwp" -LDGOLD_ALTS:riscv64 = "" -LDGOLD_ALTS:riscv32 = "" -LDGOLD_ALTS:loongarch64 = "" -LDGOLD_ALTS:libc-glibc:mipsarch = "" - USE_ALTERNATIVES_FOR = " \ addr2line \ ar \ @@ -72,7 +66,6 @@ USE_ALTERNATIVES_FOR = " \ ${GPROFNG_ALTS} \ ld \ ld.bfd \ - ${LDGOLD_ALTS} \ nm \ objcopy \ objdump \ @@ -104,7 +97,7 @@ EXTRA_OECONF = "--program-prefix=${TARGET_PREFIX} \ --disable-libdecnumber \ --disable-readline \ --disable-sim \ - ${LDGOLD} \ + --disable-gold \ ${EXTRA_TARGETS} \ ${@bb.utils.contains('DISTRO_FEATURES', 'multiarch', '--enable-64-bit-bfd', '', d)}" @@ -112,12 +105,6 @@ EXTRA_TARGETS = "" EXTRA_TARGETS:x86-64 = " --enable-targets=x86_64-pe,x86_64-pep " EXTRA_TARGETS:class-native = "" -LDGOLD:class-native = "" -LDGOLD:class-crosssdk = "" -LDGOLD:libc-glibc:mipsarch = "" -LDGOLD ?= "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--enable-gold=default --enable-threads', '--enable-gold --enable-ld=default --enable-threads', d)}" - - # This is necessary due to a bug in the binutils Makefiles # EXTRA_OEMAKE = "configure-build-libiberty all" @@ -204,8 +191,3 @@ inherit update-alternatives ALTERNATIVE_PRIORITY = "100" ALTERNATIVE:${PN}:class-target = "${USE_ALTERNATIVES_FOR}" - -python () { - if bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', True, False, d) and bb.utils.contains_any('TARGET_ARCH', 'riscv32 riscv64 loongarch64', True, False, d): - bb.fatal("Gold linker does not _yet_ support RISC-V and LoongArch architecture please remove ld-is-gold from DISTRO_FEATURES") -} diff --git a/meta/recipes-devtools/rust/libstd-rs_1.81.0.bb b/meta/recipes-devtools/rust/libstd-rs_1.81.0.bb index 14161714f2..06a2889b92 100644 --- a/meta/recipes-devtools/rust/libstd-rs_1.81.0.bb +++ b/meta/recipes-devtools/rust/libstd-rs_1.81.0.bb @@ -48,8 +48,3 @@ do_install () { } BBCLASSEXTEND = "nativesdk" - -# Since 1.70.0 upgrade this fails to build with gold: -# http://errors.yoctoproject.org/Errors/Details/708194/ -# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined -LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}" diff --git a/meta/recipes-devtools/rust/rust_1.81.0.bb b/meta/recipes-devtools/rust/rust_1.81.0.bb index 1038c275f6..c4f8ee7108 100644 --- a/meta/recipes-devtools/rust/rust_1.81.0.bb +++ b/meta/recipes-devtools/rust/rust_1.81.0.bb @@ -377,8 +377,3 @@ RUSTLIB_DEP:class-nativesdk = "" INSANE_SKIP:${PN} = "staticdev" BBCLASSEXTEND = "native nativesdk" - -# Since 1.70.0 upgrade this fails to build with gold: -# http://errors.yoctoproject.org/Errors/Details/708196/ -# ld: error: version script assignment of to symbol __rust_alloc_error_handler_should_panic failed: symbol not defined -LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}" diff --git a/meta/recipes-extended/ltp/ltp_20240930.bb b/meta/recipes-extended/ltp/ltp_20240930.bb index 3fe8772ea7..0760170c7b 100644 --- a/meta/recipes-extended/ltp/ltp_20240930.bb +++ b/meta/recipes-extended/ltp/ltp_20240930.bb @@ -36,19 +36,18 @@ S = "${WORKDIR}/git" inherit autotools-brokensep pkgconfig -# Version 20220527 added KVM test infrastructure which currently fails to build with gold due to +# Version 20220527 added KVM test infrastructure which currently fails to build with lld due to # SORT_NONE in linker script which isn't supported by gold: # https://sourceware.org/bugzilla/show_bug.cgi?id=18097 # https://github.com/linux-test-project/ltp/commit/3fce2064b54843218d085aae326c8f7ecf3a8c41#diff-39268f0855c634ca48c8993fcd2c95b12a65b79e8d9fa5ccd6b0f5a8785c0dd6R36 -LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '-fuse-ld=bfd', '', d)}" LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', '-fuse-ld=bfd', '', d)}" # After 0002-kvm-use-LD-instead-of-hardcoding-ld.patch # https://github.com/linux-test-project/ltp/commit/f94e0ef3b7280f886384703ef9019aaf2f2dfebb -# it fails with gold also a bit later when trying to use *-payload.bin +# it fails with lld also a bit later when trying to use *-payload.bin # http://errors.yoctoproject.org/Errors/Details/663094/ -# work around this by forcing .bfd linked in LD when ld-is-gold is in DISTRO_FEATURES -KVM_LD = "${@bb.utils.contains_any('DISTRO_FEATURES', 'ld-is-gold ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}" +# work around this by forcing .bfd linked in LD when ld-is-lld is in DISTRO_FEATURES +KVM_LD = "${@bb.utils.contains_any('DISTRO_FEATURES', 'ld-is-lld', '${HOST_PREFIX}ld.bfd${TOOLCHAIN_OPTIONS} ${HOST_LD_ARCH}', '${LD}', d)}" TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.bb b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.bb index 1c72d503d3..c8f226ff3a 100644 --- a/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.bb +++ b/meta/recipes-multimedia/ffmpeg/ffmpeg_7.1.bb @@ -142,10 +142,6 @@ EXTRA_OECONF:append:powerpc = " --extra-libs=-latomic" EXTRA_OECONF:append:armv7a = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" EXTRA_OECONF:append:armv7ve = "${@bb.utils.contains('TUNE_FEATURES','neon','',' --disable-neon',d)}" -# gold crashes on x86, another solution is to --disable-asm but thats more hacky -# ld.gold: internal error in relocate_section, at ../../gold/i386.cc:3684 - -LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" LDFLAGS:append:x86 = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -fuse-ld=bfd ', '', d)}" EXTRA_OEMAKE = "V=1" diff --git a/meta/recipes-sato/webkit/webkitgtk_2.46.5.bb b/meta/recipes-sato/webkit/webkitgtk_2.46.5.bb index d8b91d66c7..8c6ffdc8a7 100644 --- a/meta/recipes-sato/webkit/webkitgtk_2.46.5.bb +++ b/meta/recipes-sato/webkit/webkitgtk_2.46.5.bb @@ -118,12 +118,9 @@ EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF " EXTRA_OECMAKE:append:armv5 = " -DENABLE_JIT=OFF " EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF " -EXTRA_OECMAKE:append:mipsarch = " -DUSE_LD_GOLD=OFF " -EXTRA_OECMAKE:append:powerpc = " -DUSE_LD_GOLD=OFF " - -# JIT and gold linker does not work on RISCV -EXTRA_OECMAKE:append:riscv32 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF" -EXTRA_OECMAKE:append:riscv64 = " -DUSE_LD_GOLD=OFF -DENABLE_JIT=OFF" +# JIT does not work on RISCV +EXTRA_OECMAKE:append:riscv32 = " -DENABLE_JIT=OFF" +EXTRA_OECMAKE:append:riscv64 = " -DENABLE_JIT=OFF" # JIT not supported on MIPS either EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON " diff --git a/meta/recipes-support/libunwind/libunwind_1.6.2.bb b/meta/recipes-support/libunwind/libunwind_1.6.2.bb index c7b1604b61..b2e7ec7719 100644 --- a/meta/recipes-support/libunwind/libunwind_1.6.2.bb +++ b/meta/recipes-support/libunwind/libunwind_1.6.2.bb @@ -30,7 +30,7 @@ EXTRA_OECONF = "--enable-static" ARM_INSTRUCTION_SET:armv4 = "arm" ARM_INSTRUCTION_SET:armv5 = "arm" -LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}" +LDFLAGS += "-Wl,-z,relro,-z,now" SECURITY_LDFLAGS:append:libc-musl = " -lssp_nonshared" CACHED_CONFIGUREVARS:append:libc-musl = " LDFLAGS='${LDFLAGS} -lucontext'"