commit: 6010348df47c9b5bb8e2f3305b35f82f789aca36 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Sun Oct 1 14:07:46 2023 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Sun Oct 1 14:08:05 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6010348d
sys-devel/binutils: Drop ld.so.conf prefix patch and enable -L patch for cross The ld.so.conf prefix patch didn't work in all the cases we needed it to. We'll fix the issue with /usr/etc/ld.so.conf via env-update instead. The -L patch was previously only applied to prefixed systems, but it's needed to fix crossdev environments too. We should probably just take it into the general patchset. Bug: https://bugs.gentoo.org/892549 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> ...tils-2.40-r8.ebuild => binutils-2.40-r9.ebuild} | 4 ++- ...tils-2.41-r1.ebuild => binutils-2.41-r2.ebuild} | 4 ++- sys-devel/binutils/binutils-9999.ebuild | 4 ++- .../files/binutils-2.40-linker-search-path.patch | 36 ---------------------- 4 files changed, 9 insertions(+), 39 deletions(-) diff --git a/sys-devel/binutils/binutils-2.40-r8.ebuild b/sys-devel/binutils/binutils-2.40-r9.ebuild similarity index 99% rename from sys-devel/binutils/binutils-2.40-r8.ebuild rename to sys-devel/binutils/binutils-2.40-r9.ebuild index 789ad23b059c..b7fac9c0e71c 100644 --- a/sys-devel/binutils/binutils-2.40-r8.ebuild +++ b/sys-devel/binutils/binutils-2.40-r9.ebuild @@ -118,7 +118,9 @@ src_prepare() { # This is applied conditionally for now just out of caution. # It should be okay on non-prefix systems though. See bug #892549. - use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + if is_cross || use prefix; then + eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + fi fi fi diff --git a/sys-devel/binutils/binutils-2.41-r1.ebuild b/sys-devel/binutils/binutils-2.41-r2.ebuild similarity index 99% rename from sys-devel/binutils/binutils-2.41-r1.ebuild rename to sys-devel/binutils/binutils-2.41-r2.ebuild index eec1ecb1e001..de4cbac1dadd 100644 --- a/sys-devel/binutils/binutils-2.41-r1.ebuild +++ b/sys-devel/binutils/binutils-2.41-r2.ebuild @@ -118,7 +118,9 @@ src_prepare() { # This is applied conditionally for now just out of caution. # It should be okay on non-prefix systems though. See bug #892549. - use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + if is_cross || use prefix; then + eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + fi fi fi diff --git a/sys-devel/binutils/binutils-9999.ebuild b/sys-devel/binutils/binutils-9999.ebuild index 11e84c53af1c..5d9cedc9c2b5 100644 --- a/sys-devel/binutils/binutils-9999.ebuild +++ b/sys-devel/binutils/binutils-9999.ebuild @@ -118,7 +118,9 @@ src_prepare() { # This is applied conditionally for now just out of caution. # It should be okay on non-prefix systems though. See bug #892549. - use prefix && eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + if is_cross || use prefix; then + eapply "${FILESDIR}"/binutils-2.40-linker-search-path.patch + fi fi fi diff --git a/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch b/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch index 7423f8d70556..bddfa1ec6eb5 100644 --- a/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch +++ b/sys-devel/binutils/files/binutils-2.40-linker-search-path.patch @@ -36,39 +36,3 @@ libstdc++.so.6, while other linkers do not use this file at all. sprintf (filename, "%s/%s", search->name, l->name); nn.name = filename; if (ldelf_try_needed (&nn, force, is_linux)) - -From 8afc65c8d8c0fff2f686ddd8eb9023c7ebabcca9 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <[email protected]> -Date: Sat, 11 Feb 2023 15:18:58 +0000 -Subject: [PATCH 2/2] ldelf.c: Do not search for libraries using ld.so.conf - -Other linkers do not do this. It is problematic for Gentoo Linux, -because crossdev installs libraries such as libstdc++.so.6 outside of -the sysroot. ---- a/ld/ld.texi -+++ b/ld/ld.texi -@@ -2355,7 +2355,9 @@ For a linker for a Linux system, if the file @file{/etc/ld.so.conf} - exists, the list of directories found in that file. Note: the path - to this file is prefixed with the @code{sysroot} value, if that is - defined, and then any @code{prefix} string if the linker was --configured with the @command{--prefix=<path>} option. -+configured with the @command{--prefix=<path>} option. This has feature has -+been disabled on Gentoo Linux to make it consistent with the other -+linkers, which do not do this. - @item - For a native linker on a FreeBSD system, any directories specified by - the @code{_PATH_ELF_HINTS} macro defined in the @file{elf-hints.h} ---- a/ld/ldelf.c -+++ b/ld/ldelf.c -@@ -1156,10 +1156,6 @@ ldelf_handle_dt_needed (struct elf_link_hash_table *htab, - if (is_freebsd - && ldelf_check_ld_elf_hints (l, force, elfsize)) - break; -- -- if (is_linux -- && ldelf_check_ld_so_conf (l, force, elfsize, prefix)) -- break; - } - - len = strlen (l->name); -
