[Distutils] Note on building on AIX

Andrew M. Kuchling akuchlin@cnri.reston.va.us
Wed, 16 Dec 1998 09:15:59 -0500 (EST)

On the XML-SIG, Konrad Hinsen mentioned the following problem with
shared libraries on AIX.  I'm forwarding this just to read it into the
Distutils record, as something that should also be fixed.

A.M. Kuchling			http://starship.skyport.net/crew/amk/
Quaint though this attitude seems now, it was unquestionably the prevalent one
in the nineteenth century, and it would be over-bold to say that it will never
return to favour, for the range of human folly is infinite.
    -- Robertson Davies, _A Voice from the Attic_


Konrad Hinsen wrote:
> >   - Some people need patched versions; for example, the standard
> >     version does not work for AIX.
> 	What's the patch that's required for AIX?  And is there some
> reason it can't be rolled into the Makefile.pre.in for 1.5.2?

I don't know the system well enough to decide. The problem is that
shared library linking is a rather complicated process under AIX,
which is handled by two shell scripts. These shell scripts come with
the Python distribution (they are "ld_so_aix" and "makexp_aix") and
are ultimately installed in the "config" subdirectory of the Python
library. But during the compilation of the interpreter and its
standard library modules, they reside in the "Modules" subdirectory of
the Python distribution. The settings in the configuration reflect
this initial situation, not the one after installation. So if you
use the standard Makefile.pre.in, the two critical definitions becom

LINKCC=		$(srcdir)/makexp_aix python.exp "" $(LIBRARY); $(PURIFY) $(CC)
LDSHARED=	$(srcdir)/ld_so_aix $(CC)

whereas they should be

LINKCC=		$(LIBPL)/makexp_aix $(LIBPL)/python.exp "" $(LIBRARY); $(PURIFY) $(CC)
LDSHARED=	$(LIBPL)/ld_so_aix $(CC) -bI:$(LIBPL)/python.exp

I suppose this could be arranged during the installation process, but
I don't really want to figure out how that works!