diff options
author | Gary Oberbrunner <garyo@oberbrunner.com> | 2011-03-03 03:00:19 (GMT) |
---|---|---|
committer | Gary Oberbrunner <garyo@oberbrunner.com> | 2011-03-03 03:00:19 (GMT) |
commit | c977df07cbc24b5359087072ee6ac97b01469be3 (patch) | |
tree | 540325d278d8609da704ab44e8cf777b93c642ee /src | |
parent | 8e57d53b7feaa432d604a1bb18f464e048c84cef (diff) | |
download | SCons-c977df07cbc24b5359087072ee6ac97b01469be3.zip SCons-c977df07cbc24b5359087072ee6ac97b01469be3.tar.gz SCons-c977df07cbc24b5359087072ee6ac97b01469be3.tar.bz2 |
Fix #1644: LINKFLAGS and RPATH conflict. Moved RPATH into LINKCOM.
Diffstat (limited to 'src')
-rw-r--r-- | src/CHANGES.txt | 25 | ||||
-rw-r--r-- | src/RELEASE.txt | 2 | ||||
-rw-r--r-- | src/engine/SCons/Tool/gnulink.py | 1 | ||||
-rw-r--r-- | src/engine/SCons/Tool/link.py | 7 | ||||
-rw-r--r-- | src/engine/SCons/Tool/sgilink.py | 1 | ||||
-rw-r--r-- | src/engine/SCons/Tool/sunlink.py | 1 |
6 files changed, 13 insertions, 24 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 2231cef..a10e852 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -7,23 +7,23 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE - From Gary Oberbrunner: - - Fix precompiled headers on Windows when variant dir name has spaces. - From Gary Oberbrunner and Sohail Somani: - new construction variable WINDOWS_EMBED_MANIFEST to automatically embed manifests in Windows EXEs and DLLs. From Gary Oberbrunner: + - Put RPATH in LINKCOM rather than LINKFLAGS so resetting + LINKFLAGS doesn't kill RPATH + - Fix precompiled headers on Windows when variant dir name has spaces. - Adding None to an Action no longer fails (just returns original action) - - From Gary Oberbrunner: - New --debug=prepare option to show each target as it's being prepared, whether or not anything needs to be done for it. - - From Gary Oberbrunner: - New debug option --debug=duplicate to print a line for each unlink/relink (or copy) of a variant file from its source file. + - Improve error message for EnumVariables to show legal values. + - Fix Intel compiler to sort versions >9 correctly (esp. on Linux) + - Fix Install() when the source and target are directories and the + target directory exists. From David Garcia Garzon: - Fix Delete to be able to delete broken symlinks and dir @@ -38,12 +38,6 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE properly. Previously the generated files would include the whitespace. - From Gary Oberbrunner: - - Improve error message for EnumVariables to show legal values. - - From Gary Oberbrunner: - - Fix Intel compiler to sort versions >9 correctly (esp. on Linux) - From Dmitry R.: - Handle Environment in case __semi_deepcopy is None @@ -51,11 +45,6 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE - Much improved support for Windows UNC paths (\\SERVERNAME). - From Gary Oberbrunner: - - - Fix Install() when the source and target are directories and the - target directory exists. - From Jean-Baptiste Lab: - Fix problems with appending CPPDEFINES that contain diff --git a/src/RELEASE.txt b/src/RELEASE.txt index 5ceb8d7..585744c 100644 --- a/src/RELEASE.txt +++ b/src/RELEASE.txt @@ -56,6 +56,8 @@ FIXES + - RPATH is now in LINKCOM rather than LINKFLAGS, so resetting + LINKFLAGS doesn't kill RPATH - Precompiled headers on Windows no longer break when used with variant dirs containing spaces. - Delete can now delete symlinks to directories and broken symlinks diff --git a/src/engine/SCons/Tool/gnulink.py b/src/engine/SCons/Tool/gnulink.py index 1472021..bf71270 100644 --- a/src/engine/SCons/Tool/gnulink.py +++ b/src/engine/SCons/Tool/gnulink.py @@ -48,7 +48,6 @@ def generate(env): # __RPATH is set to $_RPATH in the platform specification if that # platform supports it. - env.Append(LINKFLAGS=['$__RPATH']) env['RPATHPREFIX'] = '-Wl,-rpath=' env['RPATHSUFFIX'] = '' env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}' diff --git a/src/engine/SCons/Tool/link.py b/src/engine/SCons/Tool/link.py index e54a075..fae7f63 100644 --- a/src/engine/SCons/Tool/link.py +++ b/src/engine/SCons/Tool/link.py @@ -75,14 +75,15 @@ def generate(env): env['SHLINK'] = '$LINK' env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -shared') - env['SHLINKCOM'] = '$SHLINK -o $TARGET $SHLINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' + env['SHLINKCOM'] = '$SHLINK -o $TARGET $SHLINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' # don't set up the emitter, cause AppendUnique will generate a list # starting with None :-( env.Append(SHLIBEMITTER = [shlib_emitter]) env['SMARTLINK'] = smart_link env['LINK'] = "$SMARTLINK" env['LINKFLAGS'] = SCons.Util.CLVar('') - env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' + # __RPATH is only set to something ($_RPATH typically) on platforms that support it. + env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' env['LIBDIRPREFIX']='-L' env['LIBDIRSUFFIX']='' env['_LIBFLAGS']='${_stripixes(LIBLINKPREFIX, LIBS, LIBLINKSUFFIX, LIBPREFIXES, LIBSUFFIXES, __env__)}' @@ -105,7 +106,7 @@ def generate(env): env['LDMODULEPREFIX'] = '$SHLIBPREFIX' env['LDMODULESUFFIX'] = '$SHLIBSUFFIX' env['LDMODULEFLAGS'] = '$SHLINKFLAGS' - env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' + env['LDMODULECOM'] = '$LDMODULE -o $TARGET $LDMODULEFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS' diff --git a/src/engine/SCons/Tool/sgilink.py b/src/engine/SCons/Tool/sgilink.py index 1c32ad0..6244141 100644 --- a/src/engine/SCons/Tool/sgilink.py +++ b/src/engine/SCons/Tool/sgilink.py @@ -48,7 +48,6 @@ def generate(env): # __RPATH is set to $_RPATH in the platform specification if that # platform supports it. - env.Append(LINKFLAGS=['$__RPATH']) env['RPATHPREFIX'] = '-rpath ' env['RPATHSUFFIX'] = '' env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}' diff --git a/src/engine/SCons/Tool/sunlink.py b/src/engine/SCons/Tool/sunlink.py index ab66f46..5996a30 100644 --- a/src/engine/SCons/Tool/sunlink.py +++ b/src/engine/SCons/Tool/sunlink.py @@ -62,7 +62,6 @@ def generate(env): env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -G') - env.Append(LINKFLAGS=['$__RPATH']) env['RPATHPREFIX'] = '-R' env['RPATHSUFFIX'] = '' env['_RPATH'] = '${_concat(RPATHPREFIX, RPATH, RPATHSUFFIX, __env__)}' |