commit:     81985363c3e3d01321ab75291d7c827ffff4dcab
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Mar  8 16:03:27 2024 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Mar  8 21:13:17 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=81985363

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 <AT> gentoo.org>

 ...utils-config-5.1-r9.ebuild => binutils-config-5.1-r10.ebuild} | 0
 sys-devel/binutils-config/files/ldwrapper.c                      | 9 ++++++---
 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
similarity index 100%
rename from sys-devel/binutils-config/binutils-config-5.1-r9.ebuild
rename to 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 */

Reply via email to