Hi Mark,

> On 10 Jun 2022, at 15:56, Mark Mentovai <m...@mentovai.com> wrote:
> 
> f18cbc1ee1f4 (2021-12-18) updated various parts of gcc to not impose a
> Darwin or macOS version maximum of the current known release. Different
> parts of gcc accept, variously, Darwin version numbers matching
> darwin2*, and macOS major version numbers up to 99. The current released
> version is Darwin 21 and macOS 12, with Darwin 22 and macOS 13 expected
> for public release later this year. With one major OS release per year,
> this strategy is expected to provide another 8 years of headroom.
> 
> However, f18cbc1ee1f4 missed config/darwin-c.c (now .cc), which
> continued to impose a maximum of macOS 12 on the -mmacosx-version-min
> compiler driver argument. This was last updated from 11 to 12 in
> 11b967577483 (2021-10-27), but kicking the can down the road one year at
> a time is not a viable strategy, and is not in line with the more recent
> technique from f18cbc1ee1f4.
> 
> Prior to 556ab5125912 (2020-11-06), config/darwin-c.c did not impose a
> maximum that needed annual maintenance, as at that point, all macOS
> releases had used a major version of 10. The stricter approach imposed
> since then was valuable for a time until the particulars of the new
> versioning scheme were established and understood, but now that they
> are, it's prudent to restore a more permissive approach.

OK for master and open branches, thanks 
Iain

> 
> gcc/ChangeLog:
> 
>       * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
> 
> Signed-off-by: Mark Mentovai <m...@mentovai.com>
> ---
> gcc/config/darwin-c.cc | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/gcc/config/darwin-c.cc b/gcc/config/darwin-c.cc
> index 9203c84d2c26..00fc1253e265 100644
> --- a/gcc/config/darwin-c.cc
> +++ b/gcc/config/darwin-c.cc
> @@ -691,7 +691,8 @@ macosx_version_as_macro (void)
>   if (!version_array)
>     goto fail;
> 
> -  if (version_array[MAJOR] < 10 || version_array[MAJOR] > 12)
> +  /* clang accepts up to 99. */
> +  if (version_array[MAJOR] < 10 || version_array[MINOR] > 99)
>     goto fail;
> 
>   if (version_array[MAJOR] == 10 && version_array[MINOR] < 10)
> -- 
> 2.36.1
> 

Reply via email to