summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2024-01-13 15:22:50 +0100
committerFabian Groffen <grobian@gentoo.org>2024-01-13 15:22:50 +0100
commitfbcb941fc6fe8c31ceb219dc56127e62906ae520 (patch)
tree88b0794aa121574d899e5fb3f9d0ca8407fb8fa8 /sys-devel
parentscripts/bootstrap-prefix.sh: fix typo (diff)
downloadprefix-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.c6
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;