summaryrefslogtreecommitdiffstats
path: root/mkspecs/linux-icc
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2010-05-30 08:46:42 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2010-06-07 09:20:50 (GMT)
commit8a4d4c1f0d3761cbf46cf0fee076647ec4a6ac5a (patch)
tree5f1d91e09869513da8ebf1a3c7db96dcd6408888 /mkspecs/linux-icc
parent5eec7f6611075df526f30796378315c9cd469cd8 (diff)
downloadQt-8a4d4c1f0d3761cbf46cf0fee076647ec4a6ac5a.zip
Qt-8a4d4c1f0d3761cbf46cf0fee076647ec4a6ac5a.tar.gz
Qt-8a4d4c1f0d3761cbf46cf0fee076647ec4a6ac5a.tar.bz2
Update the mkspec for linux-icc: don't use jump tables in shlibs
ICC generates jump table code that isn't PIC (i.e., it does absolute indirect jumps), so this increases the number of relocations in shared libraries by a huge amount. In QtCore it increased by 250% (from 3500 to 12000).
Diffstat (limited to 'mkspecs/linux-icc')
-rw-r--r--mkspecs/linux-icc/qmake.conf6
1 files changed, 3 insertions, 3 deletions
diff --git a/mkspecs/linux-icc/qmake.conf b/mkspecs/linux-icc/qmake.conf
index 5e46498..3b26f7d 100644
--- a/mkspecs/linux-icc/qmake.conf
+++ b/mkspecs/linux-icc/qmake.conf
@@ -27,7 +27,7 @@ QMAKE_CFLAGS_WARN_ON = -w1 -Wcheck -wd654,1572,411,873,1125
QMAKE_CFLAGS_WARN_OFF = -w
QMAKE_CFLAGS_RELEASE = -O2 -falign-functions=16 -ansi-alias -fstrict-aliasing
QMAKE_CFLAGS_DEBUG = -O0 -g
-QMAKE_CFLAGS_SHLIB = -fPIC
+QMAKE_CFLAGS_SHLIB = -fPIC -fno-jump-tables
QMAKE_CFLAGS_STATIC_LIB = $$QMAKE_CFLAGS_SHLIB
QMAKE_CFLAGS_YACC =
QMAKE_CFLAGS_THREAD = -D_REENTRANT
@@ -58,7 +58,7 @@ QMAKE_LINK_SHLIB = icpc
QMAKE_LFLAGS =
QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_DEBUG =
-QMAKE_LFLAGS_SHLIB = -shared
+QMAKE_LFLAGS_SHLIB = -shared -shared-intel
QMAKE_LFLAGS_PLUGIN = $$QMAKE_LFLAGS_SHLIB
QMAKE_LFLAGS_SONAME = -Wl,-soname,
QMAKE_LFLAGS_THREAD =
@@ -77,7 +77,7 @@ QMAKE_LIBS_THREAD = -lpthread
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_UIC = $$[QT_INSTALL_BINS]/uic
-QMAKE_AR = ar cqs
+QMAKE_AR = xiar cqs
QMAKE_OBJCOPY = objcopy
QMAKE_RANLIB =