Ensure QMAKE_RFLAGSDIR is set correctly
authorGareth Stockwell <ext-gareth.stockwell@nokia.com>
Fri, 16 Mar 2012 14:14:53 +0000 (14:14 +0000)
committerQt by Nokia <qt-info@nokia.com>
Sat, 17 Mar 2012 00:52:03 +0000 (01:52 +0100)
This patch ensures that additional runpaths passed to configure via
the -R switch are added to the QMAKE_RFLAGSDIR variable.

Previously, although runpaths provided in this way were appended to the
linker options when building Qt itself, they were not appended to
the QMAKE_RFLAGSDIR value written to mkspecs/qconfig.pri.  This meant
that the DT_RPATH attribute was set incorrectly in binaries built from
projects other than Qt itself.

-----------------------------------------------------------------------
Configure flags             Expected value        Value before this fix
-----------------------------------------------------------------------
<none>                      DEFAULT_RPATH         DEFAULT_RPATH
-no-rpath                   <empty>               <empty>
-R X                        DEFAULT_RPATH:X       DEFAULT_RPATH
-no-rpath -R X              X                     <empty>
-prefix Y                   Y/lib                 Y/lib
-prefix Y -no-rpath         <empty>               <empty>
-prefix Y -R X              Y/lib:X               Y/lib
-prefix Y -no-rpath -R X    X                     <empty>
-----------------------------------------------------------------------

DEFAULT_RPATH = /usr/local/Qt-${QT_VERSION}/lib

Change-Id: Iaf1809b528ebd249694cf41e004173e881ca48ad
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
configure

index 93dda6f..4a53773 100755 (executable)
--- a/configure
+++ b/configure
@@ -6294,8 +6294,8 @@ if [ -n "$CFG_SYSROOT" ]; then
     echo "}" >> "$QTCONFIG.tmp"
     echo >> "$QTCONFIG.tmp"
 fi
-if [ "$CFG_RPATH" = "yes" ]; then
-    echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
+if [ -n "$RPATH_FLAGS" ]; then
+    echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
 fi
 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"