We just recently compiled Python 2.2b2 under AIX 4.3.3
using gcc 2.8.1. I'll just post our experience in case
anybody finds it helpful. The original configure command
This uses cc_r (v. 5), and while this more or less worked,
there were many of the following warnings:
cc_r: 1501-210 command option t contains an incorrect subargument
Later there were other problems but these were not
really compiler-related (I did not know this at the time,
though). Furthermore cc_r did not seem to have the threads
problem I later encountered with gcc (and which are documented
in the README). So, in summary, cc_r would have probably worked --
perhaps better than with gcc -- but we didn't go down
that road. Instead, we used the following:
and when trying to "make" got the following error:
In file included from /usr/include/sys/thread.h:45,
/usr/include/sys/var.h:116: parse error before `__cptr64'
[snip a lot]
Python/thread_pthread.h:135: warning: implicit declaration of function `pthread_init'
make: 1254-004 The error code from the last command is 1.
As I mentioned above, this is documented in the README. We
got around it by using:
The "make" then died with the following error:
./Modules/makexp_aix Modules/python.exp "" libpython2.2.a; -Wl,-bE:Modules/python.exp -lld -o python Modules/python.o libpython2.2.a -ldl -lm
/bin/sh: -Wl,-bE:Modules/python.exp: not found.
make: 1254-004 The error code from the last command is 127.
Notice the space after the ";". Indeed, looking at the results
from the configure script we see:
checking LINKCC... ./configure: LINKCC: not found
$(srcdir)/Modules/makexp_aix Modules/python.exp "" $(LIBRARY);
Lines 1415 to 1417 of "configure" are as follows:
case $ac_sys_system in
LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp \"\" \$(LIBRARY); $(LINKCC)";;
The problem turned out to be extra parenthesis around $(LINKCC). It should
LINKCC="\$(srcdir)/Modules/makexp_aix Modules/python.exp \"\" \$(LIBRARY); $LINKCC";;
The lines after that read:
Presumably these too have extra ()s.
Once that was fixed there were further complaints along the following
WARNING: building of extension "fcntl" failed: command '/usr/local/python-2.2a4/lib/python2.2/ld_so_aix' failed with exit status 1
There seemed to be some confusion between the source directory
and the installation directory (which was set with --prefix to be
/usr/local/python-2.2b2). The file it was looking for was in fact
under the "Modules" subdirectory within the Python source tree.
The simplest workaround was to copy the files it wanted to the
appropriate location. These were:
Once copied into /usr/local/python-2.2a4/lib/python2.2/ we
re-ran the configure ; make ; make install. The following failed:
/usr/local/src2/marco/Python-2.2b2/Modules/socketmodule.c: In function `PyH_Err':
/usr/local/src2/marco/Python-2.2b2/Modules/socketmodule.c:432: warning: implicit declaration of function `hstrerror'
WARNING: building of extension "_socket" failed: command 'gcc' failed with exit status 1
/usr/local/src2/marco/Python-2.2b2/Modules/_cursesmodule.c:2348: too few arguments to function `tparm'
WARNING: building of extension "_curses" failed: command 'gcc' failed with exit status 1
/usr/local/src2/marco/Python-2.2b2/Modules/_curses_panel.c:17: panel.h: No such file or directory
WARNING: building of extension "_curses_panel" failed: command 'gcc' failed with exit status 1
However, we can live for now without the socket and curses modules. Other
than that Python seems to be OK. Note that precompiled Python binaries (in
RPM form) are available for AIX at:
We haven't tried those, though. Still, we hope this is helpful for
people trying to perform the compilation on their own, and to the
Python developers by letting them know about the glitches we encountered.
Gunnm: Broken Angel