Post by M.-A. LemburgPost by Laura CreightonThe Snake Farm is having trouble building Python on AIX.
http://lists.lysator.liu.se/pipermail/snake-farm/2003-January/000654.html
Does anybody recognise these symptoms?
* you may not rename the binary of the interpreter after you have
built it; use a symbolic link instead (e.g. copying "python"
to "python2.2" and the running python2.2 will cause the AIX
dynamic linker to dump core).
configure --without-gcc
gmake CC=cc_r OPT="-O2 -qmaxmem=4000"
gmake CC=cc_r OPT="-O2 -qmaxmem=4000" install
(gmake == GNU make; this is important !)
I am able to build now based on information provided by Gary Hooks
from IBM. Here's what he said:
The python.exp list is wrong. Using only the #! means that
every listed symbol is a deferred import, and those are
resolved by loading subsequent modules or calling loadbind().
What you need is a first line that has 3 characters: "#!."
The period is critical. It tells the binder,and later the
loader, that the symbol comes from the main application. This
is why the module call-back fails.
The "." syntax was introduced in AIX 4.2. The question is
really, what code was doing the dynamic loading? If it worked
on AIX 3.2 and 4.1, then it's pretty certain that Jens
Uwe-Mager's dlopen implementation was being used, and his code
did a full loadbind() of every module against every other
module. That would have resolved the deferred imports.
AFAIK, that old dlopen code still works, although we encourage
people to use the native dlopen API.
If you put the period in, the import list won't be handled
properly pre-4.2. Yes, much changed in that release. So you
have a bit of a conundrum. Not sure if configure can be
trained to figure out the version/release and manipulate the
import list appropriately...
I've modified configure to recognize if we are AIX 4.2+ and add in the
period. Is it possible that no one else is using dynamic (shared)
libraries on AIX 4.2+?
Neal