first commit
This commit is contained in:
commit
528f89a79b
90 changed files with 13567 additions and 0 deletions
56
sys-devel/binutils/files/binutils-2.41-linker-prefix.patch
Normal file
56
sys-devel/binutils/files/binutils-2.41-linker-prefix.patch
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
https://bugs.gentoo.org/892549
|
||||
https://github.com/gentoo/binutils-gdb/pull/5
|
||||
|
||||
From 531bc1536dfc3070c1f7d03e98fa14bcb81fdcd0 Mon Sep 17 00:00:00 2001
|
||||
From: James Le Cuirot <chewi@gentoo.org>
|
||||
Date: Sat, 23 Dec 2023 13:48:10 +0000
|
||||
Subject: [PATCH 2/2] ld: Allow a Gentoo-specific prefix to override the prefix
|
||||
used by ld.bfd
|
||||
|
||||
This prefix is only used to locate $prefix/etc/ld.so.conf, with $prefix
|
||||
usually being /usr. This file is important on Gentoo Prefix systems,
|
||||
where the /usr prefix is within another directory. The problem is that
|
||||
Gentoo already passes the same directory as the sysroot, and ld.bfd
|
||||
therefore looks for /myprefix/myprefix/usr/etc/ld.so.conf.
|
||||
|
||||
The sysroot is dynamic, while the prefix is hardcoded. A hardcoded
|
||||
prefix that isn't just /usr is unhelpful, not just because of the
|
||||
doubled prefix issue above, but also because it prevents ld.bfd from
|
||||
working effectively outside its native environment. We will therefore
|
||||
hardcode it to just /usr.
|
||||
|
||||
This change does not simply do that though and sets up a $gentoo_prefix
|
||||
variable instead, with $prefix as a fallback. This is necessary because
|
||||
Gentoo prefix-guest systems, which use the host's libc, do not apply a
|
||||
sysroot like RAP prefix systems do. In that case, we must preserve the
|
||||
existing behaviour. The binutils ebuild will be responsible for setting
|
||||
this variable appropriately.
|
||||
---
|
||||
ld/emultempl/elf.em | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/ld/emultempl/elf.em b/ld/emultempl/elf.em
|
||||
index 3f67f8b09d9..78c8e909b6c 100644
|
||||
--- a/ld/emultempl/elf.em
|
||||
+++ b/ld/emultempl/elf.em
|
||||
@@ -138,7 +138,7 @@ gld${EMULATION_NAME}_before_plugin_all_symbols_read (void)
|
||||
ldelf_before_plugin_all_symbols_read ($IS_LIBPATH, $IS_NATIVE,
|
||||
$IS_LINUX_TARGET,
|
||||
$IS_FREEBSD_TARGET,
|
||||
- $ELFSIZE, "$prefix");
|
||||
+ $ELFSIZE, "${gentoo_prefix-${prefix}}");
|
||||
}
|
||||
|
||||
/* This is called after all the input files have been opened. */
|
||||
@@ -147,7 +147,7 @@ static void
|
||||
gld${EMULATION_NAME}_after_open (void)
|
||||
{
|
||||
ldelf_after_open ($IS_LIBPATH, $IS_NATIVE,
|
||||
- $IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE, "$prefix");
|
||||
+ $IS_LINUX_TARGET, $IS_FREEBSD_TARGET, $ELFSIZE, "${gentoo_prefix-${prefix}}");
|
||||
}
|
||||
|
||||
EOF
|
||||
--
|
||||
2.43.0
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue