summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGary Oberbrunner <garyo@oberbrunner.com>2011-03-03 03:00:19 +0000
committerGary Oberbrunner <garyo@oberbrunner.com>2011-03-03 03:00:19 +0000
commitbb1557a984f0ca92c2eed704727206035f3e40b8 (patch)
tree540325d278d8609da704ab44e8cf777b93c642ee /src
parent2eeafb2d607799a6035572c9d79048573689bea3 (diff)
downloadscons-bb1557a984f0ca92c2eed704727206035f3e40b8.tar.gz
Fix #1644: LINKFLAGS and RPATH conflict. Moved RPATH into LINKCOM.
Diffstat (limited to 'src')
-rw-r--r--src/CHANGES.txt25
-rw-r--r--src/RELEASE.txt2
-rw-r--r--src/engine/SCons/Tool/gnulink.py1
-rw-r--r--src/engine/SCons/Tool/link.py7
-rw-r--r--src/engine/SCons/Tool/sgilink.py1
-rw-r--r--src/engine/SCons/Tool/sunlink.py1
6 files changed, 13 insertions, 24 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 2231cef7..a10e852c 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 5ceb8d7e..585744c5 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 14720212..bf71270f 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 e54a075d..fae7f631 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 1c32ad06..6244141e 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 ab66f468..5996a301 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__)}'