[Distutils] building extensions with AIX
Fri, 23 Jun 2000 22:32:57 -0400
On 23 June 2000, Rene Liebscher said:
> I have seen in the TODO file
> that there was an entry about AIX.
Yeah, what the TODO entry fails to mention is that I already tried to
fix this, in sysconfig.py:
# "Fix" all pathnames in the Makefile that are explicitly relative,
# ie. that start with "./". This is a kludge to fix the "./ld_so_aix"
# problem, the nature of which is that Python's installed Makefile
# refers to "./ld_so_aix", but when we are building extensions we are
# far from the directory where Python's Makefile (and ld_so_aix, for
# that matter) is installed. Unfortunately, there are several other
# relative pathnames in the Makefile, and this fix doesn't fix them,
# because the layout of Python's source tree -- which is what the
# Makefile refers to -- is not fully preserved in the Python
# installation. Grumble.
from os.path import normpath, join, dirname
for (name, value) in done.items():
if value[0:2] == "./":
done[name] = normpath(join(dirname(fp.name), value))
> I tried it and found some little
> problems. It seems some paths in the
> Makefile are wrong.
The above fix *ought* to fix the relative pathname problem, but ISTR
that it didn't work. Don't remember the details.
> After playing a little bit around
> with it, I wrote a new compiler
> class. (I think, these changes could
> be included in unixccompiler, but
> to test it, it is nice to have a
> own file for it.)
Man, why does everyone want to write CCompiler classes all of a sudden!
I'm not sure if this should be fixed early, in sysconfig, or late, in a
platform-specific UnixCCompiler subclass. Note that there's a similar
problem with extension-building on OSF/1, and however we fix the AIX
problem should be how we fix the OSF/1 problem.
Rene, if you cook up new version of this patch, you might just solve
this problem for me. Try this:
* ditch the code in sysconfig that tries to fix "./" paths
* fix your code so it fits in less than 80 columns, uses os.path.join
instead of "+", and puts spaces around the "=" in assignments
(but *not* default or keyword arguments)
* extend the default compiler table, as you suggested, to respect
Also, do you have access to AIX to test this on? If not, we should bug
Vladimir Marangazov (Mr. Python-on-AIX). He almost volunteered recently
on python-dev to test Distutils on AIX, but I didn't get a firm
commitment out of him. ;-)
Greg Ward - nerd firstname.lastname@example.org
I just read that 50% of the population has a below median IQ!