commit: 4b52e188057a6b59d3e48983f351bf44ae080081
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Nov 27 13:29:28 2020 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Nov 27 13:38:59 2020 +0000
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=4b52e188
sys-devel/binutils-config-5.1-r3: revbump for libsysroot support
Big Sur (11.0) needs libsysroot support from the linker, so allow
activating it.
Package-Manager: Portage-3.0.8-prefix, Repoman-3.0.2
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
...-config-5.1-r2.ebuild => binutils-config-5.1-r3.ebuild} | 10 +++++++++-
sys-devel/binutils-config/files/ldwrapper.c | 14 ++++++++++++--
2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/sys-devel/binutils-config/binutils-config-5.1-r2.ebuild
b/sys-devel/binutils-config/binutils-config-5.1-r3.ebuild
similarity index 84%
rename from sys-devel/binutils-config/binutils-config-5.1-r2.ebuild
rename to sys-devel/binutils-config/binutils-config-5.1-r3.ebuild
index d104bf4fb7..fd26184271 100644
--- a/sys-devel/binutils-config/binutils-config-5.1-r2.ebuild
+++ b/sys-devel/binutils-config/binutils-config-5.1-r3.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
@@ -39,6 +39,13 @@ src_configure() {
src_compile() {
use prefix-guest || return
+ local extraargs=( )
+ if [[ ${CHOST} == *-darwin* && ${CHOST##*-darwin} -ge 20 ]] ; then
+ # macOS Big Sur has an empty /usr/lib, so the linker really has
+ # to look into the SDK, for which it needs to be told where it
+ # is (symlinked right into our EPREFIX root as MacOSX.sdk)
+ extraargs+=( -DDARWIN_LD_SYSLIBROOT=1 )
+ fi
local args=(
$(tc-getCC)
${CPPFLAGS}
@@ -46,6 +53,7 @@ src_compile() {
-o ldwrapper ${PN}-ldwrapper-${WRAPPER_REV}.c
-DEPREFIX=\"${EPREFIX}\"
-DCHOST=\"${CHOST}\"
+ "${extraargs[@]}"
${LDFLAGS}
)
echo ${args[*]}
diff --git a/sys-devel/binutils-config/files/ldwrapper.c
b/sys-devel/binutils-config/files/ldwrapper.c
index 216747da5c..75575f31f6 100644
--- a/sys-devel/binutils-config/files/ldwrapper.c
+++ b/sys-devel/binutils-config/files/ldwrapper.c
@@ -20,8 +20,9 @@
* ldwrapper: Prefix helper to inject -L and -R flags to the invocation
* of ld.
*
- * On Darwin it adds -search_path_first to make sure the given paths are
- * searched before the default search path.
+ * On Darwin it adds -search_paths_first to make sure the given paths are
+ * searched before the default search path, and sets -syslibroot
+ * starting from Big Sur 11.0.
* On AIX it ensures -bsvr4 is the last argument.
* The wrapper will inject -L entries for:
* - EPREFIX/usr/CHOST/lib/gcc (when gcc)
@@ -339,6 +340,11 @@ main(int argc, char *argv[])
/* add the 2 prefix paths (-L) and -search_paths_first
*/
newargc += 2 + 1;
+
+#ifdef DARWIN_LD_SYSLIBROOT
+ /* add -syslibroot <path> */
+ newargc += 2;
+#endif
} else {
/* add the 4 paths we want (-L + -R) */
newargc += 8;
@@ -380,6 +386,10 @@ main(int argc, char *argv[])
if (!is_cross && is_darwin) {
/* inject this first to make the intention clear */
+#ifdef DARWIN_LD_SYSLIBROOT
+ newargv[j++] = "-syslibroot";
+ newargv[j++] = EPREFIX "/MacOSX.sdk"
+#endif
newargv[j++] = "-search_paths_first";
}