From: Simon Wright <simon@pushface.org>
To: Iain Sandoe <iain@sandoe.co.uk>
Cc: GCC Patches <gcc-patches@gcc.gnu.org>
Subject: Re: [PATCH] Fix PR target/104871 (macosx-version-min wrong for macOS >= Big Sur (darwin20))
Date: Sat, 11 Jun 2022 20:23:54 +0100 [thread overview]
Message-ID: <CDFDAFE2-B9F6-4659-B00C-8F1F84F98633@pushface.org> (raw)
In-Reply-To: <4DDF0FC0-A5C2-42F0-B0A8-7C8D2DC06784@sandoe.co.uk>
On 11 Jun 2022, at 11:37, Iain Sandoe <iain@sandoe.co.uk> wrote:
>
> Hi Simon,
>
> thanks for the patch.
>
>> On 11 Jun 2022, at 10:17, Simon Wright <simon@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).
Something on the lines of "the native compiler clang treats 21.3.0 as 12.0.0 (unless overridden by e.g.
MACOSX_DEPLOYMENT_TARGET=11.3 )"?
I did see in the otool -l report on a gcc 12.1.0 executable generated as above (Darwin 21.5.0)
cmd LC_BUILD_VERSION
cmdsize 32
platform 1
minos 11.3
sdk 10.17
— don’t know where the 10.17 comes from, still there even without MACOSX_DEPLOYMENT_TARGET.
The SDK was Xcode 13.4.1. I also have CLT 13.4.0.0.1.1651278267. clang tells ld
"-platform_version macos 11.3.0 12.3", gcc just says "-macosx_version_min 11.3".
> 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 <https://gcc.gnu.org/dco.html>
No commit access, but FSF assignment RT:1016382. Do I need to say this in the patch email somewhere?
> for furture reference, please check that patches conform to GCC coding style (this one has some
> whitespace glitches)
I don’t see the whitespace glitches? (I have missed a period after ld in the second comment)
>
> thanks,
> Iain
>
>
>> gcc/ChangeLog:
>>
>> 2022-06-02 Simon Wright <simon@pushface.org <mailto:simon@pushface.org>>
>>
>> PR target/104871
>> * config/darwin-driver.cc <http://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>
next prev parent reply other threads:[~2022-06-11 19:23 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-11 9:17 Simon Wright
2022-06-11 10:37 ` Iain Sandoe
2022-06-11 19:23 ` Simon Wright [this message]
2022-06-11 19:46 ` Iain Sandoe
-- strict thread matches above, loose matches on Subject: below --
2022-06-08 11:18 Simon Wright
2022-06-04 18:37 Simon Wright
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CDFDAFE2-B9F6-4659-B00C-8F1F84F98633@pushface.org \
--to=simon@pushface.org \
--cc=gcc-patches@gcc.gnu.org \
--cc=iain@sandoe.co.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).