(resent with commit message format update) 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). gcc/ChangeLog: 2022-06-02 Simon Wright 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.