recipes: drop ld-is-gold support

The gold linker support has been dropped in oe-core[1]. Remove related
special cases and patches in recipes.

[1] https://git.openembedded.org/openembedded-core/commit/?id=a4addb9ab63011e7c604fc5daff95559e7d214e7

Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Yi Zhao 2025-02-24 07:27:33 +08:00 committed by Khem Raj
parent 7e576c0409
commit 8a29c46188
No known key found for this signature in database
GPG Key ID: BB053355919D3314
14 changed files with 3 additions and 158 deletions

View File

@ -1,92 +0,0 @@
fuse: Fix linking issues with gold linker
fuse has problems when linking with gold since it uses version
scripts in a way thats so perticular to bfd ld
/home/kraj/work/angstrom/build/tmp-angstrom_2010_x-eglibc/sysroots/x86_64-linux/usr/libexec/armv5te-angstrom-linux-gnueabi/gcc/arm-angstro
error: symbol __fuse_exited has undefined version
| collect2: ld returned 1 exit status
| make[1]: *** [libfuse.la] Error 1
| make[1]: *** Waiting for unfinished jobs....
For more details
http://blog.flameeyes.eu/2011/06/01/gold-readiness-obstacle-2-base-versioning
http://sources.redhat.com/bugzilla/show_bug.cgi?id=10861
http://comments.gmane.org/gmane.comp.file-systems.fuse.devel/9524
http://www.airs.com/blog/archives/300
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
lib/fuse.c | 10 +++++-----
lib/fuse_mt.c | 2 +-
lib/fuse_versionscript | 3 +++
lib/helper.c | 6 +++---
4 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/lib/fuse.c b/lib/fuse.c
index 067d0dc..6d27711 100644
--- a/lib/fuse.c
+++ b/lib/fuse.c
@@ -4873,11 +4873,11 @@ struct fuse *fuse_new_compat1(int fd, int flags,
11);
}
-FUSE_SYMVER(".symver fuse_exited,__fuse_exited@");
-FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@");
-FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@");
-FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@");
-FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@");
+FUSE_SYMVER(".symver fuse_exited,__fuse_exited@FUSE_UNVERSIONED");
+FUSE_SYMVER(".symver fuse_process_cmd,__fuse_process_cmd@FUSE_UNVERSIONED");
+FUSE_SYMVER(".symver fuse_read_cmd,__fuse_read_cmd@FUSE_UNVERSIONED");
+FUSE_SYMVER(".symver fuse_set_getcontext_func,__fuse_set_getcontext_func@FUSE_UNVERSIONED");
+FUSE_SYMVER(".symver fuse_new_compat2,fuse_new@FUSE_UNVERSIONED");
FUSE_SYMVER(".symver fuse_new_compat22,fuse_new@FUSE_2.2");
#endif /* __FreeBSD__ || __NetBSD__ */
diff --git a/lib/fuse_mt.c b/lib/fuse_mt.c
index f6dbe71..fd5ac23 100644
--- a/lib/fuse_mt.c
+++ b/lib/fuse_mt.c
@@ -119,4 +119,4 @@ int fuse_loop_mt(struct fuse *f)
return res;
}
-FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@");
+FUSE_SYMVER(".symver fuse_loop_mt_proc,__fuse_loop_mt@FUSE_UNVERSIONED");
diff --git a/lib/fuse_versionscript b/lib/fuse_versionscript
index 8d91887..de16ab2 100644
--- a/lib/fuse_versionscript
+++ b/lib/fuse_versionscript
@@ -1,3 +1,6 @@
+FUSE_UNVERSIONED {
+};
+
FUSE_2.2 {
global:
fuse_destroy;
diff --git a/lib/helper.c b/lib/helper.c
index b644012..c5349bf 100644
--- a/lib/helper.c
+++ b/lib/helper.c
@@ -436,10 +436,10 @@ int fuse_mount_compat1(const char *mountpoint, const char *args[])
return fuse_mount_compat22(mountpoint, NULL);
}
-FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@");
+FUSE_SYMVER(".symver fuse_setup_compat2,__fuse_setup@FUSE_UNVERSIONED");
FUSE_SYMVER(".symver fuse_setup_compat22,fuse_setup@FUSE_2.2");
-FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@");
-FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@");
+FUSE_SYMVER(".symver fuse_teardown,__fuse_teardown@FUSE_UNVERSIONED");
+FUSE_SYMVER(".symver fuse_main_compat2,fuse_main@FUSE_UNVERSIONED");
FUSE_SYMVER(".symver fuse_main_real_compat22,fuse_main_real@FUSE_2.2");
#endif /* __FreeBSD__ || __NetBSD__ */
--
1.8.1.2

View File

@ -11,7 +11,6 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
file://gold-unversioned-symbol.patch \
file://aarch64.patch \
file://0001-fuse-fix-the-return-value-of-help-option.patch \
file://fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch \

View File

@ -125,7 +125,7 @@ EXTRA_OECONF += "--enable-fhs \
--pythondir=${PYTHON_SITEPACKAGES_DIR} \
"
LDFLAGS += "-Wl,-z,relro,-z,now ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
LDFLAGS += "-Wl,-z,relro,-z,now"
do_configure:append() {
cd ${S}/pidl/

View File

@ -73,10 +73,6 @@ WIREDTIGER ?= "off"
WIREDTIGER:x86-64 = "on"
WIREDTIGER:aarch64 = "on"
# ld.gold: fatal error: build/59f4f0dd/mongo/mongod: Structure needs cleaning
LDFLAGS:append:x86:libc-musl = " -fuse-ld=bfd"
LDFLAGS:remove:toolchain-clang = "-fuse-ld=bfd"
EXTRA_OESCONS = "PREFIX=${prefix} \
DESTDIR=${D} \
MAXLINELENGTH='2097152' \

View File

@ -50,15 +50,9 @@ LDFLAGS += "-B${S}"
inherit autotools-brokensep cpan-base
#The CUSTOM_LDSCRIPTS doesn't work with the gold linker
do_configure:prepend() {
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/' Makefile.in
fi
ln -sf ld.hugetlbfs ${S}/ld
ln -sf ld.hugetlbfs ${S}/ld.bfd
ln -sf ld.hugetlbfs ${S}/ld.gold
ln -sf ld.hugetlbfs ${S}/ld.lld
}

View File

@ -69,14 +69,8 @@ PACKAGECONFIG[krb5] = ", ,krb5"
PACKAGECONFIG[lz4] = ", ,lz4"
PACKAGECONFIG[openssl] = "-DWITH_SSL='system',-DWITH_SSL='bundled',openssl"
# MariaDB doesn't link properly with gold
# https://mariadb.atlassian.net/browse/MDEV-5982
TARGET_CFLAGS += "-fuse-ld=bfd"
LDFLAGS += " -pthread"
BUILD_CFLAGS += "-fuse-ld=bfd"
BUILD_CXXFLAGS += "-fuse-ld=bfd"
LDFLAGS:x86:toolchain-clang = "-latomic"
LDFLAGS:riscv32:toolchain-clang = "-latomic"

View File

@ -24,8 +24,6 @@ EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
do_install:append() {
rm -rf ${D}${datadir}
}

View File

@ -1,29 +0,0 @@
From 08ba909500412611953aea0fa2fe0d8fe76b6e24 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Wed, 21 Sep 2016 21:14:40 +0200
Subject: [PATCH] detect gold as GNU linker too
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 468c718..cd93f30 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,7 +28,7 @@ AC_CHECK_SIZEOF([void *])
AC_MSG_CHECKING([for GNU ld])
LD=$($CC -print-prog-name=ld 2>&5)
-if test $($LD -v 2>&1 | $ac_cv_path_GREP -c "GNU ld") = 0; then
+if test $($LD -v 2>&1 | $ac_cv_path_GREP -c "GNU ") = 0; then
# Not
GNU_LD=""
AC_MSG_RESULT([no])

View File

@ -20,7 +20,6 @@ DEPENDS = "slang popt python3"
SRC_URI = "https://releases.pagure.org/newt/newt-${PV}.tar.gz \
file://cross_ar.patch \
file://Makefile.in-Add-tinfo-library-to-the-linking-librari.patch \
file://0001-detect-gold-as-GNU-linker-too.patch \
"
SRC_URI[sha256sum] = "5ded7e221f85f642521c49b1826c8de19845aa372baf5d630a51774b544fbdbb"

View File

@ -34,8 +34,6 @@ inherit systemd cmake pkgconfig python3native perlnative
SYSTEMD_SERVICE:${PN} = "openwsmand.service"
SYSTEMD_AUTO_ENABLE = "disable"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd ", '', d)}"
EXTRA_OECMAKE = "-DBUILD_BINDINGS=NO \
-DBUILD_LIBCIM=NO \
-DBUILD_PERL=YES \

View File

@ -42,7 +42,6 @@ SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE:${PN} = "sblim-sfcb.service"
SYSTEMD_AUTO_ENABLE = "enable"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-lld', ' -Wl,--allow-shlib-undefined ', '', d)}"
EXTRA_OECONF = '--enable-debug \

View File

@ -34,9 +34,6 @@ LDFLAGS:append = " -lm"
CXXFLAGS:append:toolchain-clang = " -Wno-error=dtor-typedef"
# Workaround for linking issues seen with armv7a + gold
LDFLAGS:append:arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
BINCONFIG = "${bindir}/directfb-config"
inherit autotools binconfig-disabled pkgconfig

View File

@ -58,7 +58,3 @@ EXTRA_OECONF = "--with-user= \
--with-thin-repair=${sbindir}/thin_repair \
--with-thin-restore=${sbindir}/thin_restore \
"
# gold doesn't like multiple dm_bitset_parse_list definitions in libdm/.exported_symbols.DM_1_02_138 and libdm/.exported_symbols.DM_1_02_129
# after it was uncommented in the later in 2.03.12 with https://github.com/lvmteam/lvm2/commit/60eb608d66c2056a78e81f27db3da14139d9faab
LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd", '', d)}"

View File

@ -135,12 +135,8 @@ EXTRA_OECMAKE:append:armv7a = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES
EXTRA_OECMAKE:append:armv7r = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}"
EXTRA_OECMAKE:append:armv7ve = " -DENABLE_JIT=${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'ON', 'OFF', d)}"
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"
# JIT does not work on RISCV
EXTRA_OECMAKE:append:riscv32 = " -DENABLE_JIT=OFF"
# JIT not supported on MIPS either
EXTRA_OECMAKE:append:mipsarch = " -DENABLE_JIT=OFF -DENABLE_C_LOOP=ON "