Issue 1460514: ctypes extension does not compile on Mac OS 10.3.9 (original) (raw)
I compiled Python from CVS this morning. It silently failed to compile ctypes. Here is the text surrounding the failure
gcc [deleted] -c /Users/dalke/cvses/python-svn/Modules/_ctypes/ libffi/src/powerpc/darwin_closure.S -o build/temp.darwin-7.9.0- Power_Macintosh-2.5/darwin_closure.o darwin_closure.S:249:unknown section attribute: live_support darwin_closure.S:249:Rest of line ignored. 1st junk character valued 69 (E). building 'itertools' extension ...
Python installed but when I tried to import ctypes I got
File "/usr/local/lib/python2.5/ctypes/init.py", line 8, in from _ctypes import Union, Structure, Array ImportError: No module named _ctypes
I tracked it down to the '+live_support' attribute from the darwin_closure.S. My compiler does not understand that.
Thomas Heller (in private email) pointed out the text from the ctypes README
On OS X, the segment attribute live_support must be
defined. If your compiler doesn't know about it, upgrade or
set the environment variable CCASFLAGS="-Dno_live_support".
Upgrading is out of the option. I set the environment variable but that did not fix things when I tried to recompile Python. However, editing the file to remove the "+live_support" works. All the self-tests passed, and my experimentation this afternoon was successful.
Logged In: YES user_id=190903
Sorry - was ill and not doing anything for a week.
I've built the latest code from SVN. No problems with the compilation and I am able to import just fine.
I did get the following compiler warnings
/Users/dalke/cvses/python-svn/Modules/_ctypes/cfield.c: In function `CField_repr': /Users/dalke/cvses/python-svn/Modules/_ctypes/cfield.c:259: warning: signed size_t format, Py_ssize_t arg (arg 3) /Users/dalke/cvses/python-svn/Modules/_ctypes/cfield.c:267: warning: signed size_t format, Py_ssize_t arg (arg 3)
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c:383: warning: function declaration isn't a prototype
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c:384: warning: function declaration isn't a prototype
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c:388: warning: function declaration isn't a prototype
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c:389: warning: function declaration isn't a prototype
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c:394: warning: function declaration isn't a prototype
/Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/
ffi_darwin.c: In function ffi_closure_helper_DARWIN': /Users/dalke/cvses/python-svn/Modules/_ctypes/libffi/src/powerpc/ ffi_darwin.c:622: warning: unused variable
temp_ld'
When I run the self test I get one error
FAILED (errors=1) Traceback (most recent call last): File "Lib/test/test_ctypes.py", line 12, in test_main() File "Lib/test/test_ctypes.py", line 9, in test_main run_suite(unittest.TestSuite(suites)) File "/Users/dalke/cvses/python-svn/Lib/test/test_support.py", line 285, in run_suite raise TestFailed(err) test.test_support.TestFailed: Traceback (most recent call last): File "/Users/dalke/cvses/python-svn/Lib/ctypes/test/test_loading.py", line 30, in test_load cdll.load(libc_name) File "/Users/dalke/cvses/python-svn/Lib/ctypes/_loader.py", line 112, in load return self._load(libname, mode) File "/Users/dalke/cvses/python-svn/Lib/ctypes/_loader.py", line 153, in _load return self.load_library(pathname, mode) File "/Users/dalke/cvses/python-svn/Lib/ctypes/_loader.py", line 124, in load_library return self._dlltype(libname, mode) File "/Users/dalke/cvses/python-svn/Lib/ctypes/init.py", line 288, in init self._handle = _dlopen(self._name, mode) OSError: dlcompat: unable to open this file with RTLD_LOCAL
which is probably ignorable - OS X has its own sense of what shared libraries do.
Logged In: YES user_id=11105
Thanks for the feedback.
For the warnings in Modules/_ctypes/cfield.c, I have no idea what is wrong there.
For the warnings in the libffi-sources I tend to ignore them because I don't want to change them too much.
For the test-failure: can you find out why this fails?
(In the meantime I'm trying to get hold of 10.3 installation disks - any tips how to shrink the only existing partition on my mac mini running 10.4 and setting up a multi-boot system would be appreciated, if anyone wants to help. As an alternative ssh-access to an existing osx installation for testing would of course also help. I don't know if this is feasible or not ;-)