develooper Front page | perl.perl5.porters | Postings from October 2015

Re: [perl #126360] MACOSX_DEPLOYMENT_TARGET

Thread Previous | Thread Next
From:
Sevan Janiyan
Date:
October 15, 2015 19:43
Subject:
Re: [perl #126360] MACOSX_DEPLOYMENT_TARGET
Message ID:
561FEAAA.4090700@geeklan.co.uk

Hi,

On 15/10/2015 18:19, Jarkko Hietaniemi via RT wrote:
> I am afraid that I cannot reach the same conclusion from either 
> Apple's documentation on this, or from the Internet hive mind.  The
>  10.4 and 10.7 seem to be the _defaults_ if nothing else is set.

See the ld(1) man page.
From 10.4.11 with XCode 2.5 installed

==========================
-macosx_version_min version
This overrides the MACOSX_DEPLOYMENT_TARGET environment variable (see
below).  Unlike other linker options, this one may be specified
multiple times; only the last occurrence is effective.

The following environment variable is used to control the use of
incompatible features in the output with respect to Mac OS X releases.

MACOSX_DEPLOYMENT_TARGET
This is set to indicate the oldest Mac OS X  version  that that the
output is to be used on.  When this is set to a release that is older
than the current release features that are incompatible with that
release will be disabled.  If a feature is seen in the input that
can't be in the output due to this setting a warning is issued.  The
current allowable values for this are 10.1, 10.2 10.3, and 10.4 with
the default being 10.4 for the  i386 architecture and 10.1 for all
other architectures.
==========================

If you build on a modern version of OS X with the patch I linked to
earlier, you will not have any issue with MACOSX_DEPLOYMENT_TARGET on
modern systems and will retain backwards compatibility with 10.3 to
10.5 on PowerPC systems.

The wikipedia Mach-O binary format explains the issue.
https://en.wikipedia.org/wiki/Mach-O#Minimum_Mac_OS_X_version

> Setting explicit MACOSX_DEPLOYMENT_TARGET seems to very much being
>  used (and causing similar problems) in other opensource projects,
>  too.

But is that a relic from the past being carried forward or are you
explicitly setting that because you need ABI compatibility with a
specific version. It does not need to be set on modern versions of OS
X (10.6 and newer).

The patch I posted previously is used to build Perl on OS X
10.4.11/PowerPC, 10.6 & 10.11 intel without issue for the past 11 months.

> See the macports ticket mentioned in the beginning of this ticket.

I looked, if you only set MACOSX_DEPLOYMENT_TARGET for legacy systems,
it is not a problem. Perl bug #117433 is worth looking at (which
remains open by the way).


Sevan

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About