[SciPy-dev] cephes on Mac OS X ppc64?

David Warde-Farley dwf at cs.toronto.edu
Wed Feb 17 20:19:57 EST 2010


On 17-Feb-10, at 7:34 PM, David Cournapeau wrote:

> If you look at numpy/distutils/fcompiler/gnu.py, the list of tested  
> arch
> does not contain ppc64. I don't know why it is missing here; can you  
> try
> rebuilding scipy with ppc64 added as a target in the function
> _universal_flags ?

Hey David,

I just saw that, and am attempting a build with ppc64 added.

I have this command failing now, claiming undefined symbols for a  
whole bunch of things that look like Python API symbols:

/usr/local/bin/gfortran -Wall -arch i386 -arch ppc -arch x86_64 -arch  
ppc64 build/temp.macosx-10.5-universal-2.6/build/src.macosx-10.5- 
universal-2.6/scipy/fftpack/_fftpackmodule.o build/temp.macosx-10.5- 
universal-2.6/scipy/fftpack/src/zfft.o build/temp.macosx-10.5- 
universal-2.6/scipy/fftpack/src/drfft.o build/temp.macosx-10.5- 
universal-2.6/scipy/fftpack/src/zrfft.o build/temp.macosx-10.5- 
universal-2.6/scipy/fftpack/src/zfftnd.o build/temp.macosx-10.5- 
universal-2.6/build/src.macosx-10.5-universal-2.6/scipy/fftpack/src/ 
dct.o build/temp.macosx-10.5-universal-2.6/build/src.macosx-10.5- 
universal-2.6/fortranobject.o -Lbuild/temp.macosx-10.5-universal-2.6 - 
ldfftpack -lfftpack -lgfortran -o build/lib.macosx-10.5-universal-2.6/ 
scipy/fftpack/_fftpack.so

Partial error log (these and others are repeated for each architecture  
it seems):

Undefined symbols for architecture i386:
   "_PyModule_GetDict", referenced from:
       _init_fftpack in _fftpackmodule.o
   "_Py_FindMethod", referenced from:
       _fortran_getattr in fortranobject.o
   "_PyExc_AttributeError", referenced from:
       _PyExc_AttributeError$non_lazy_ptr in fortranobject.o
   "_PyString_FromString", referenced from:
       _init_fftpack in _fftpackmodule.o
       _init_fftpack in _fftpackmodule.o
       _fortran_getattr in fortranobject.o
       _fortran_getattr in fortranobject.o
   "_PyCObject_FromVoidPtr", referenced from:
       _fortran_getattr in fortranobject.o
   "_PyMem_Free", referenced from:
       _fortran_dealloc in fortranobject.o
       _fortran_dealloc in fortranobject.o
   "_PyObject_Type", referenced from:
       _array_from_pyobj in fortranobject.o
   "_PyType_IsSubtype", referenced from:
       _int_from_pyobj in _fftpackmodule.o
       _array_from_pyobj in fortranobject.o
   "_PyCObject_Type", referenced from:
       _PyCObject_Type$non_lazy_ptr in _fftpackmodule.o
   "_PyDict_DelItemString", referenced from:
       _fortran_setattr in fortranobject.o
   "_PyType_Type", referenced from:
       _PyType_Type$non_lazy_ptr in _fftpackmodule.o
   "_PyComplex_Type", referenced from:
       _PyComplex_Type$non_lazy_ptr in _fftpackmodule.o
   "_PyCObject_AsVoidPtr", referenced from:
       _init_fftpack in _fftpackmodule.o
....

Incidentally, if I check with "file" on the mentioned .o's and .so's,  
they are all quad-architecture as desired.

It seems that this is not a problem with the extra architecutre but  
somehow some Python dependencies are not being met (for ANY  
architecture). Note that my Python was built 4-way universal using the  
distributed build script:

dwf at morrislab:~/src/scipy-svn$ file `which python`
/Library/Frameworks/Python.framework/Versions/2.6/bin/python: Mach-O  
universal binary with 4 architectures
/Library/Frameworks/Python.framework/Versions/2.6/bin/python (for  
architecture i386):	Mach-O executable i386
/Library/Frameworks/Python.framework/Versions/2.6/bin/python (for  
architecture ppc7400):	Mach-O executable ppc
/Library/Frameworks/Python.framework/Versions/2.6/bin/python (for  
architecture ppc64):	Mach-O 64-bit executable ppc64
/Library/Frameworks/Python.framework/Versions/2.6/bin/python (for  
architecture x86_64):	Mach-O 64-bit executable x86_64

Any idea why this is failing?

Thanks,

David





More information about the SciPy-Dev mailing list