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

Andrew Jaffe a.h.jaffe at gmail.com
Mon Oct 19 11:25:56 EDT 2015


[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?)

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

-Andrew



More information about the Pythonmac-SIG mailing list