commit: fbcb941fc6fe8c31ceb219dc56127e62906ae520 Author: Fabian Groffen <grobian <AT> gentoo <DOT> org> AuthorDate: Sat Jan 13 14:22:50 2024 +0000 Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org> CommitDate: Sat Jan 13 14:22:50 2024 +0000 URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=fbcb941f
sys-devel/binutils-config: make ld arguments depending on OS release This is somewhat shady, because we'd need the target ld's version, but it's better to use the current platform version rather than the requested platform version since the latter has nothing to do with which linker is being used. Not bumping the version, since existing installs don't have this issue, and only new installs on Sanoma suffer from this, which never managed to succeed, so basically don't exist yet. Bug: https://bugs.gentoo.org/916291 Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org> sys-devel/binutils-config/files/ldwrapper.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sys-devel/binutils-config/files/ldwrapper.c b/sys-devel/binutils-config/files/ldwrapper.c index a1639ca5aa..df29b04c96 100644 --- a/sys-devel/binutils-config/files/ldwrapper.c +++ b/sys-devel/binutils-config/files/ldwrapper.c @@ -208,6 +208,7 @@ main(int argc, char *argv[]) char ctarget[128]; char *darwin_dt = getenv("MACOSX_DEPLOYMENT_TARGET"); int darwin_dt_ver = 0; + int darwin_ld_trg_ver = 0; char is_cross = 0; char is_darwin = 0; char darwin_use_rpath = 1; @@ -222,6 +223,9 @@ main(int argc, char *argv[]) #ifdef DARWIN_LD_DEFAULT_TARGET if (darwin_dt == NULL) darwin_dt = DARWIN_LD_DEFAULT_TARGET; + darwin_ld_trg_ver = (int)strtol(DARWIN_LD_DEFAULT_TARGET, &p, 10) * 100; + if (*p == '.') + darwin_ld_trg_ver += (int)strtol(p + 1, &p, 10); #endif /* two ways to determine CTARGET from argv[0]: @@ -403,7 +407,7 @@ main(int argc, char *argv[]) #ifdef DARWIN_LD_SYSLIBROOT /* bug #910277: transform into platform_version arg for newer * targets */ - if (darwin_dt_ver >= 1200) { + if (darwin_ld_trg_ver >= 1200) { newargv[j++] = "-platform_version"; newargv[j++] = "macos"; newargv[j++] = darwin_dt;