]> code.ossystems Code Review - openembedded-core.git/commitdiff
QT4 mips: disable the LDFLAGS "-Bsymbolic-functions"
authorYu Ke <ke.yu@intel.com>
Mon, 6 Sep 2010 08:52:52 +0000 (16:52 +0800)
committerRichard Purdie <rpurdie@linux.intel.com>
Tue, 7 Sep 2010 14:58:10 +0000 (15:58 +0100)
"-Bsymbolic-functions" flag makes ld to bind the global function symbol of shared library at compiling time, thus reduce the runtime relocation cost.

However, this flag in binutil 2.20 cause QT4 mips building failure, which is "final link failed: Bad value" error in libQtWebKit.so linking stage. If downgrad to binutil 2.19, this error disappears.

so before binutil new release is out, it is better to disable this flag for QT4 mips.

Fix [BUGID #271]

Signed-off-by: Yu Ke <ke.yu@intel.com>
meta/recipes-qt/qt4/files/mips-relocate.patch [new file with mode: 0644]
meta/recipes-qt/qt4/qt-4.6.3.inc

diff --git a/meta/recipes-qt/qt4/files/mips-relocate.patch b/meta/recipes-qt/qt4/files/mips-relocate.patch
new file mode 100644 (file)
index 0000000..2fde9a0
--- /dev/null
@@ -0,0 +1,28 @@
+Disable the LDFLAGS "-Bsymbolic-functions" for mips
+
+"-Bsymbolic-functions" flag makes ld to bind the global function symbol of shared library at compiling time, thus reduce the runtime relocation cost.
+
+However, this flag in binutil 2.20 cause QT4 mips building failure, which is "final link failed: Bad value" error in libQtWebKit.so linking stage. If downgrad to binutil 2.19, this error disappears. further investigation showes commit http://sourceware.org/cgi-bin/cvsweb.cgi/src/ld/scripttempl/mips.sc.diff?r1=1.2&r2=1.3&cvsroot=src cause this error.
+
+So this patch disable this flag for QT4 mips. If future binutils version fix this issue, this patch can be safely removed.
+
+Signed-off-by: Yu Ke <ke.yu@intel.com>
+
+diff --git a/configure b/configure
+index ca14279..5db9926 100755
+--- a/configure
++++ b/configure
+@@ -3035,6 +3035,13 @@ if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
+     fi
+ fi
++# Temporily disable -Bsymbolic-functions for mips, because libQtWebKit can not pass the build
++# if has -Bsymbolic-functions and binutil 2.20
++# -Bsymbolic-functions is OK in binutil 2.19
++if [ "$CFG_ARCH" = "mips" ]; then
++    CFG_REDUCE_RELOCATIONS=no
++fi
++
+ # auto-detect GNU make support
+ if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
+    CFG_USE_GNUMAKE=yes
index 9f4e221bb5073fec06244ab849341a21add59d98..155af66b89f6f2f39a3a1a888f7d206c0d28d46f 100644 (file)
@@ -16,6 +16,7 @@ SRC_URI = "http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-${PV}.
            file://g++.conf \
            file://linux.conf \
            file://hack-out-pg_config.patch \
+           file://mips-relocate.patch \
            "
 
 S = "${WORKDIR}/qt-everywhere-opensource-src-${PV}"