Re: [Python-checkins] python/dist/src/Mac/OSX fixapplepython23.py, 1.1, 1.2
On Dec 28, 2004, at 4:30 PM, jackjansen@users.sourceforge.net wrote:
Update of /cvsroot/python/python/dist/src/Mac/OSX In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9229
Modified Files: fixapplepython23.py Log Message: Just passing -undefined dynamic_lookup isn't enough: we also need to set the MACOSX_DEPLOYMENT_TARGET environment variable to 10.3 when calling the loader. And we do this with "env" because distutils apparently doesn't understand environment variable assignments before command names.
This is the wrong fix. Distutils is dumber than you think. This patch just breaks C++ compilation in a different way. The correct solution is a patch to distutils of some kind. from distutils/unixccompiler.py:174 if target_lang == "c++" and self.compiler_cxx: linker[0] = self.compiler_cxx[0] self.spawn(linker + ld_args) "linker" is the variable expanded LDSHARED (or whatever comes out of sysconfig.customize_compiler). -bob
On 29-dec-04, at 4:35, Bob Ippolito wrote:
This is the wrong fix. Distutils is dumber than you think. This patch just breaks C++ compilation in a different way. The correct solution is a patch to distutils of some kind.
from distutils/unixccompiler.py:174
if target_lang == "c++" and self.compiler_cxx: linker[0] = self.compiler_cxx[0] self.spawn(linker + ld_args)
"linker" is the variable expanded LDSHARED (or whatever comes out of sysconfig.customize_compiler).
Bah! Any suggestions as to what to do to get c++ compilation fixed? Also, could you point me to a readily available extension package that uses c++? -- Jack Jansen, <Jack.Jansen@cwi.nl>, http://www.cwi.nl/~jack If I can't dance I don't want to be part of your revolution -- Emma Goldman
On Dec 29, 2004, at 5:23 AM, Jack Jansen wrote:
On 29-dec-04, at 4:35, Bob Ippolito wrote:
This is the wrong fix. Distutils is dumber than you think. This patch just breaks C++ compilation in a different way. The correct solution is a patch to distutils of some kind.
from distutils/unixccompiler.py:174
if target_lang == "c++" and self.compiler_cxx: linker[0] = self.compiler_cxx[0] self.spawn(linker + ld_args)
"linker" is the variable expanded LDSHARED (or whatever comes out of sysconfig.customize_compiler).
Bah!
Any suggestions as to what to do to get c++ compilation fixed?
I can think of two ways: 1. Patch distutils to actually do os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.3' because CCompiler.spawn doesn't take an environment dict. 2. Patch distutils to skip over environment variables (basically change that "0" into something smarter). This is probably less desirable because who knows where this happens, and who knows what third party compiler subclasses used this original stupid code as a template. In either case, setting the environment variable should only be done if it's not already set, and it should raise if is set to anything lower than 10.3. For example, an existing MACOSX_DEPLOYMENT_TARGET variable of 10.4 should be allowed. Values smaller than 10.3 should not be allowed because they are incompatible with the linker feature we're trying to enable.
Also, could you point me to a readily available extension package that uses c++?
I have no idea, but I remember this issue was brought up at some point during one of the many discussions of this issue. I think it was also mentioned that SciPy's distutils extensions (or is it a fork?) does something similarly stupid when frobbing in a Fortran compiler. -bob
Bob Ippolito wrote:
I have no idea, but I remember this issue was brought up at some point during one of the many discussions of this issue. I think it was also mentioned that SciPy's distutils extensions (or is it a fork?) does something similarly stupid when frobbing in a Fortran compiler.
Extension, and yes it does something similarly stupid. -- Robert Kern rkern@ucsd.edu "In the fields of hell where the grass grows high Are the graves of dreams allowed to die." -- Richard Harter
Jack Jansen wrote:
Also, could you point me to a readily available extension package that uses c++?
The Bio.Affy and Bio.KDTree extensions in Biopython use c++. See www.biopython.org. --Michiel. -- Michiel de Hoon, Assistant Professor University of Tokyo, Institute of Medical Science Human Genome Center 4-6-1 Shirokane-dai, Minato-ku Tokyo 108-8639 Japan http://bonsai.ims.u-tokyo.ac.jp/~mdehoon
participants (4)
-
Bob Ippolito -
Jack Jansen -
Michiel Jan Laurens de Hoon -
Robert Kern