diff options
author | Fabian Groffen <grobian@gentoo.org> | 2024-01-13 15:22:50 +0100 |
---|---|---|
committer | Fabian Groffen <grobian@gentoo.org> | 2024-01-13 15:22:50 +0100 |
commit | fbcb941fc6fe8c31ceb219dc56127e62906ae520 (patch) | |
tree | 88b0794aa121574d899e5fb3f9d0ca8407fb8fa8 /sys-devel | |
parent | scripts/bootstrap-prefix.sh: fix typo (diff) | |
download | prefix-fbcb941fc6fe8c31ceb219dc56127e62906ae520.tar.gz prefix-fbcb941fc6fe8c31ceb219dc56127e62906ae520.tar.bz2 prefix-fbcb941fc6fe8c31ceb219dc56127e62906ae520.zip |
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@gentoo.org>
Diffstat (limited to 'sys-devel')
-rw-r--r-- | sys-devel/binutils-config/files/ldwrapper.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; |