Darwin: account for macOS 26

darwin25 will be named macOS 26 (codename Tahoe). This is a change from
darwin24, which was macOS 15. We need to adapt the driver to this new
numbering scheme.

2025-07-14  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>

gcc/ChangeLog:

	PR target/120645
	* config/darwin-driver.cc: Account for latest macOS numbering
	scheme.

gcc/testsuite/ChangeLog:

	* gcc.dg/darwin-minversion-link.c: Account for macOS 26.
This commit is contained in:
Francois-Xavier Coudert
2025-07-14 12:14:00 +02:00
parent 99a3c71db6
commit cc4f339733
2 changed files with 13 additions and 10 deletions

View File

@ -64,7 +64,8 @@ validate_macosx_version_min (const char *version_str)
major = strtoul (version_str, &end, 10);
/* macOS 10, 11, and 12 are known. clang accepts up to 99. */
/* macOS 10, 11, 12, 13, 14, 15 and 26 are known.
clang accepts up to 99. */
if (major < 10 || major > 99)
return NULL;
@ -159,15 +160,16 @@ darwin_find_version_from_kernel (void)
if (*version_p++ != '.')
goto parse_failed;
/* Darwin20 sees a transition to macOS 11. In this, it seems that the
mapping to macOS minor version and patch level is now always 0, 0
(at least for macOS 11 and 12). */
if (major_vers >= 20)
{
/* Apple clang doesn't include the minor version or the patch level
in the object file, nor does it pass it to ld */
asprintf (&new_flag, "%d.00.00", major_vers - 9);
}
/* Darwin25 saw a transition to macOS 26. */
if (major_vers >= 25)
/* Apple clang doesn't include the minor version or the patch level
in the object file, nor does it pass it to ld */
asprintf (&new_flag, "%d.00.00", major_vers + 1);
/* Darwin20 saw a transition to macOS 11. */
else if (major_vers >= 20)
/* Apple clang doesn't include the minor version or the patch level
in the object file, nor does it pass it to ld */
asprintf (&new_flag, "%d.00.00", major_vers - 9);
else if (major_vers - 4 <= 4)
/* On 10.4 and earlier, the old linker is used which does not
support three-component system versions.

View File

@ -20,6 +20,7 @@
/* { dg-additional-options "-mmacosx-version-min=013.000.00 -DCHECK=130000" { target *-*-darwin22* } } */
/* { dg-additional-options "-mmacosx-version-min=014.000.00 -DCHECK=140000" { target *-*-darwin23* } } */
/* { dg-additional-options "-mmacosx-version-min=015.000.00 -DCHECK=150000" { target *-*-darwin24* } } */
/* { dg-additional-options "-mmacosx-version-min=026.000.00 -DCHECK=260000" { target *-*-darwin25* } } */
int
main ()