[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