Hi,

I'm trying to port ctypes to darwin/x86 (aka the new intel macs),  
which went pretty smooth. I am running into some odd behaviour of  
distutils now that I'm trying to port those changes to the trunk.

ctypes uses libffi, which contains source files in various platform- 
specific directories, such as:

libffi/src/powerpc/ffi_darwin.c
libffi/src/x86/ffi_darwin.c

To make it possible to build a univeral binary of ctypes when -- 
enable-universalsdk is specified I'm using some preprocessor trickery  
and add both versions of the file to the source list of the _ctypes  
extension.

So far so good. This works just fine when building the out-of-tree  
copy of ctypes. However, when I build the in-tree copy of ctypes  
distutils suddenly tries compile both these source files into the  
same object file (that is both get compiled into temp.../libffi/ 
ffi_darwin.o). That obviously isn't what I want to happen.

The cause of this behaviour is CCompiler._setup_compile: this calls  
self.object_filenames with
strip_dir=True when doing a python build. Removing this argument (and  
therefore having object_filenames fall back to the default value  
False for strip_dir) doesn't seem to have bad effects on the build on  
OSX.

Does anyone know why distutils behaves like this and if it would be  
safe to change this behaviour?

Ronald


_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to