[Pythonmac-SIG] OS X Python: can I explicitly set MACOSX_DEPLOYMENT_TARGET for extensions?

Barry Scott barry at barrys-emacs.org
Tue Oct 27 04:42:01 EDT 2015


> On 19 Oct 2015, at 16:25, Andrew Jaffe <a.h.jaffe at gmail.com> wrote:
> 
> [Also posted to general python list...]
> 
> I use the python.org framework build of Python under recent versions of
> OS X (i.e., 10.11 El Capitan). I need to build some extensions that rely
> on recent versions of compilers (e.g., C++-11 features). However the
> python.org python is built to work on older systems as well, for
> backward compatibility.
> 
> Hence, it has the environment variable MACOSX_DEPLOYMENT_TARGET=10.6.
> This means that extensions are built by default with a toolchain that, I
> think, mimics gcc-4.2, in particular in terms of what stdlib it searches.
> 
> In the past, I have fixed this by installing more recent compilers with
> homebrew and explicitly setting CC, CXX, etc before installation.
> 
> However, I have tried just setting MACOSX_DEPLOYMENT_TARGET=10.11, and
> that seems to work. Is this safe? Are there any downsides? (I don't need
> to distribute these builds, just use them locally?)

I built pysvn with MACOSX_DEPLOYMENT_TARGET being 10.9, 10.10 and 10.11
without issue. But I am not using c++11 features yet.

I’m facing the problem that the SDK for 10.9 and 10.10 is missing from the
latest Xcode release. It only has 10.11 SDK. I’m planning to use a VM running
OS X 10.10 with the previous Xcode for public builds, which is not your problem.

On windows I have seen issues with runtime API incompatibly between older
and newer compiler. At least on Windows you must use the right compiler and
runtime to match the python build you have.

Linux is trouble free as python is built with the distribution’s chosen
compiler which is the one you use to build the extension.

> Conversely, are there any upsides? Does a newer deployment target allow
> more recent compilers and/or higher optimizations?

The upside is indeed better compiler and access to newer/fixed APIs.

Barry

> 
> -Andrew
> 
> _______________________________________________
> Pythonmac-SIG maillist  -  Pythonmac-SIG at python.org
> https://mail.python.org/mailman/listinfo/pythonmac-sig
> unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
> 



More information about the Pythonmac-SIG mailing list