public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
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>


  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).