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 >