summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2024-03-08 17:03:27 +0100
committerFabian Groffen <grobian@gentoo.org>2024-03-08 22:13:17 +0100
commit81985363c3e3d01321ab75291d7c827ffff4dcab (patch)
treee78361c82af3316092c9291933ff567e98f611c0
parentscripts/auto-bootstraps: deprecate x86-darwin9, fix CHOST reporting (diff)
downloadprefix-81985363c3e3d01321ab75291d7c827ffff4dcab.tar.gz
prefix-81985363c3e3d01321ab75291d7c827ffff4dcab.tar.bz2
prefix-81985363c3e3d01321ab75291d7c827ffff4dcab.zip
sys-devel/binutils-config: revbump for CLT 15.3 ld fix
Possibly this problem existed longer before, but it's a bit shady when what ld is used. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r--sys-devel/binutils-config/binutils-config-5.1-r10.ebuild (renamed from sys-devel/binutils-config/binutils-config-5.1-r9.ebuild)0
-rw-r--r--sys-devel/binutils-config/files/ldwrapper.c9
2 files changed, 6 insertions, 3 deletions
diff --git a/sys-devel/binutils-config/binutils-config-5.1-r9.ebuild b/sys-devel/binutils-config/binutils-config-5.1-r10.ebuild
index 38f82d40b5..38f82d40b5 100644
--- a/sys-devel/binutils-config/binutils-config-5.1-r9.ebuild
+++ b/sys-devel/binutils-config/binutils-config-5.1-r10.ebuild
diff --git a/sys-devel/binutils-config/files/ldwrapper.c b/sys-devel/binutils-config/files/ldwrapper.c
index 00d4a69f73..c799b4cdd9 100644
--- a/sys-devel/binutils-config/files/ldwrapper.c
+++ b/sys-devel/binutils-config/files/ldwrapper.c
@@ -405,8 +405,9 @@ main(int argc, char *argv[])
* 14.2: 820.1
* 14.3.1: 857.1
* 15.0: 907 1022.1 Sanoma 23, platform_version iso sdk_version
+ * 15.3 1053.12 called ld
* all to be found from the PROJECT:ld64-650.9 or
- * PROJECT:dyld-1022.1 bit from the first line
+ * PROJECT:dyld-1022.1 or PROJECT:ld-1053.12 bit from the first line
* NOTE: e.g. my Sanoma mac with CommandLineTools has 650.9
* which is not a version from any Developer Tools ?!?
* Currently we need to distinguish XCode 15 according to
@@ -423,11 +424,13 @@ main(int argc, char *argv[])
long comp;
if (fgets(target, sizeof(target), ld64out) != 0 &&
((proj = strstr(target, "PROJECT:ld64-")) != NULL ||
- (proj = strstr(target, "PROJECT:dyld-")) != NULL))
+ (proj = strstr(target, "PROJECT:dyld-")) != NULL ||
+ (proj = strstr(target, "PROJECT:ld-")) != NULL))
{
/* we don't distinguish between ld64 and dyld here, for
* now it seems the numbers line up for our logic */
- proj += sizeof("PROJECT:ld64-") - 1;
+ proj += sizeof("PROJECT:ld") - 1;
+ proj += *proj == '-' ? 1 : 3;
comp = strtol(proj, &proj, 10);
/* we currently have no need to parse fractions, the
* major version is significant enough, so just stop */