diff options
author | Greg Ward <gward@python.net> | 2000-06-27 01:59:06 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2000-06-27 01:59:06 (GMT) |
commit | 4f880280c2b03ec08c17714f7023eeb9d89849e8 (patch) | |
tree | 0b6b7c82751d7126042e08f8757b188651197456 | |
parent | b593793fce7853d8788254483dfbcf5f0f21bd27 (diff) | |
download | cpython-4f880280c2b03ec08c17714f7023eeb9d89849e8.zip cpython-4f880280c2b03ec08c17714f7023eeb9d89849e8.tar.gz cpython-4f880280c2b03ec08c17714f7023eeb9d89849e8.tar.bz2 |
Fixed LDSHARED for AIX, based on a patch by Rene Liebscher.
Ditched my old code that fixed relative paths in the Makefile -- didn't work,
doomed to failure, etc.
-rw-r--r-- | Lib/distutils/sysconfig.py | 27 |
1 files changed, 12 insertions, 15 deletions
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py index 330d3b3..9ca94ed 100644 --- a/Lib/distutils/sysconfig.py +++ b/Lib/distutils/sysconfig.py @@ -222,21 +222,6 @@ def parse_makefile(fp, g=None): # bogus variable reference; just drop it since we can't deal del notdone[name] - # "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)) - # save the results in the global dictionary g.update(done) return g @@ -257,6 +242,18 @@ def _init_posix(): raise DistutilsPlatformError, my_msg parse_makefile(file, g) + + # On AIX, there are wrong paths to the linker scripts in the Makefile + # -- these paths are relative to the Python source, but when installed + # the scripts are in another directory. + if sys.platform: # == 'aix4': # what about AIX 3.x ? + # Linker script is in the config directory, not in Modules as the + # Makefile says. + python_lib = get_python_lib(standard_lib=1) + ld_so_aix = os.path.join(python_lib, 'config', 'ld_so_aix') + python_exp = os.path.join(python_lib, 'config', 'python.exp') + + g['LDSHARED'] = "%s %s -bI:%s" % (ld_so_aix, g['CC'], python_exp) def _init_nt(): |