Hi Simon, thanks for the patch.
> On 11 Jun 2022, at 10:17, Simon Wright <si...@pushface.org> wrote: > > (resent with correct address for Iain) > > This is the same sort of problem as in PR80204: at present, GCC 11 & 12 > assume that if the > OS version is >= 20, the compiler should see --mmacosx-version-min={major - > 9}.{minor -1}.0, > e.g. for OS version 21.3.0 that would be 12.2.0 (the linker sees > -macosx-version-min, same > arguments). > > However, the native compiler clang treats 21.3.0 as 12.0.0: the compiler sees > -triple x86_64-apple-macosx12.0.0 > and the linker sees > -platform_version macos 12.0.0 > the result of which is that linking an object file built with clang and one > built with gcc gives e.g. > > ld: warning: object file (null.o) was built for newer macOS version (12.2) > than being linked (12.0) > > I propose the following patch, which works fine for me (darwin 21.3.0). this LGTM - just need to sort out a couple of nits and an admin point. FWIW; the following are honoured in preserving the minor version (so we still have scope for mismatches if some objects are built this way and others picking up the kernel version) .. clang -target x86_64-apple-macosx11.3 … clang -mmacosx-version-min=11.3 … MACOSX_DEPLOYMENT_TARGET=11.3 clang … (although this seems on at least one version of xcodem to pass 12.3 to the linker.. hmmm). I guess you do not have commit access? if you do not have an FSF assignment for copyright, are you OK to sign this off using the DCO? https://gcc.gnu.org/dco.html for furture reference, please check that patches conform to GCC coding style (this one has some whitespace glitches) thanks, Iain > gcc/ChangeLog: > > 2022-06-02 Simon Wright <si...@pushface.org> > > PR target/104871 > * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS > version is > 20 (macOS 11) or greater, report the minor version and the patch > level as 0 > to match Apple clang’s behaviour. > > <pr104871.diff>