scons: Fix two problems with the way that the library path is generated.

1) -L is automatically added, so don't do it ourselves
2) prepend the paths for gzstream and libelf so they are certain to
come first. The problem is that python might add /usr/lib to the path
and the user might have a locally installed version of libelf installed.
This commit is contained in:
Nathan Binkert 2009-04-21 17:17:15 -07:00
parent 4d001e43da
commit 56e5509bfd
3 changed files with 8 additions and 8 deletions

View file

@ -557,13 +557,15 @@ py_lib_path = [ py_getvar('LIBDIR') ]
# add the prefix/lib/pythonX.Y/config dir, but only if there is no
# shared library in prefix/lib/.
if not py_getvar('Py_ENABLE_SHARED'):
py_lib_path.append('-L' + py_getvar('LIBPL'))
py_lib_path.append(py_getvar('LIBPL'))
py_libs = []
for lib in py_getvar('LIBS').split() + py_getvar('SYSLIBS').split():
assert lib.startswith('-l')
lib = lib[2:]
if lib not in py_libs:
py_libs.append(lib)
py_libs.append('-l' + py_version)
py_libs.append(py_version)
env.Append(CPPPATH=py_includes)
env.Append(LIBPATH=py_lib_path)
@ -574,8 +576,6 @@ if not conf.CheckHeader('Python.h', '<>'):
Exit(1)
for lib in py_libs:
assert lib.startswith('-l')
lib = lib[2:]
if not conf.CheckLib(lib):
print "Error: can't find library %s required by python" % lib
Exit(1)

View file

@ -32,7 +32,7 @@ Import('env')
env.Library('gzstream', [File('gzstream.cc')])
env.Append(CPPPATH=Dir('.'))
env.Prepend(CPPPATH=Dir('.'))
env.Append(LIBS=['gzstream'])
env.Append(LIBPATH=[Dir('.')])
env.Prepend(LIBPATH=[Dir('.')])

View file

@ -119,7 +119,7 @@ m4env.M4(target=File('libelf_msize.c'),
# into either m5 or the library
m4env.Library('elf', [m4env.SharedObject(f) for f in elf_files])
env.Append(CPPPATH=Dir('.'))
env.Prepend(CPPPATH=Dir('.'))
env.Append(LIBS=['elf'])
env.Append(LIBPATH=[Dir('.')])
env.Prepend(LIBPATH=[Dir('.')])