[MacPorts] #49273: clang-mp-3.7 and MACOSX_DEPLOYMENT_TARGET=10.3 do not mix

MacPorts noreply at macports.org
Wed Oct 14 09:09:14 PDT 2015


#49273: clang-mp-3.7 and MACOSX_DEPLOYMENT_TARGET=10.3 do not mix
----------------------+------------------------
  Reporter:  jhi@…    |      Owner:  jeremyhu@…
      Type:  defect   |     Status:  closed
  Priority:  Normal   |  Milestone:
 Component:  ports    |    Version:  2.3.4
Resolution:  invalid  |   Keywords:
      Port:  clang    |
----------------------+------------------------

Comment (by jeremyhu@…):

 Replying to [comment:3 jhi@…]:
 > > This has nothing to do with the deployment target. This has to do with
 the text based stubs support.
 >
 > Well, the deployment target is how the error became visible, as you can
 see from my example.  Are you saying the clang-mp-3.7 was just lucky to
 work (to compile and link) when being compiled without the deployment
 target?

 No, it doesn't have to do with luck.  It has to do with how the compiler
 runtime was delivered in older OS versions.  Setting the older deployment
 target causes a link against libgcc_s.10.4.  It's that linking that is the
 problem, because the linker doesn't know how to use the tbd.

 > > Use the +ld64_xcode variant of ld64 to get this to link for now.
 +ld64_latest will support text based stubs once opensource.apple.com drops
 an updated ld64 from Xcode 7 which we can pull in.
 >
 > Umm, thanks, never heard of this ld64 thing.  ld64_xcode?  ld64_latest?
 Is there some documentation for the use of these options?  (I'd like to
 amend the Perl build instructions, if there is).

 ld64 is the linker.  You can use variants to choose what the default
 linker is.  +ld64_latest should be preferred in most cases, but there is
 lag after Apple releases Xcode versions before we can update ld64-latest
 to the newest version, so ld64-xcode may be newer during that period.

 > For example, from the above it sounds like one should normally use
 +ld64_xcode ... exactly when?  Always?

 Preferibly never.  It was added specifically for this exact problem to
 give users of Xcode 7 a workaround.

 > But you are also saying that this is a transient failure, that
 +ld64_latest will eventually understand XCode 7?

 Yes.

 > > But why are you setting MACOSX_DEPLOYMENT_TARGET to 10.3 when you're
 compiling for Intel? There were never any Intel Macs running Mac OS X
 10.3.
 >
 > > Why are you using such an old deployment target. We didn't even have
 intel support until 10.4.x
 >
 > This is actually an open question in the Perl project, if you have
 feedback/opinions on that, it would be great.
 >
 > We know that the 10.3 target is getting a little bit old... but we are a
 little bit cautious over dropping the support for older OS X-es.  That is,
 if a Perl would be compiled now without a deployment target (defaulting to
 the compiling OS X), how bad would it be if run in older OS X-es?

 If you really want to support all systems, setting it 10.4 should suffice.

 If you want to cover the 99.9% case, setting it to 10.6 should suffice.

 10.8 and 10.9 as minimum requirements are starting to be come more popular
 as well, but the reasons for that probably don't impact perl too much.
 You may, however, want to consider 10.7 because I brought in a good
 portion of SUSv4 updates, some Libc API extensions from FreeBSD, NetBSD
 RBTrees, and other various Libc niceties.

-- 
Ticket URL: <https://trac.macports.org/ticket/49273#comment:4>
MacPorts <https://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list