summaryrefslogtreecommitdiffstats
path: root/mkspecs
diff options
context:
space:
mode:
Diffstat (limited to 'mkspecs')
-rw-r--r--mkspecs/common/gcc-base.conf2
-rw-r--r--mkspecs/features/qt.prf7
-rw-r--r--mkspecs/features/unix/mno_extern_direct_access.prf2
3 files changed, 10 insertions, 1 deletions
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index 1c27f34441..ae58326289 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -45,7 +45,7 @@ QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
QMAKE_CFLAGS_DEBUG += -g
QMAKE_CFLAGS_SHLIB += $$QMAKE_CFLAGS_PIC
QMAKE_CFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_PIC
-QMAKE_CFLAGS_APP += $$QMAKE_CFLAGS_PIC
+QMAKE_CFLAGS_APP +=
QMAKE_CFLAGS_YACC += -Wno-unused -Wno-parentheses
QMAKE_CFLAGS_HIDESYMS += -fvisibility=hidden
QMAKE_CFLAGS_EXCEPTIONS_OFF += -fno-exceptions
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
index 6fb657e6f2..0e03027bc3 100644
--- a/mkspecs/features/qt.prf
+++ b/mkspecs/features/qt.prf
@@ -58,6 +58,13 @@ qaxserver {
!force_import_plugins:!contains(TEMPLATE, ".*app"):!if(contains(TEMPLATE, ".*lib"):dll): \
CONFIG -= import_plugins
+unix {
+ contains(QT_CONFIG, no_extern_direct_access): CONFIG += mno_extern_direct_access
+ else:contains(QT_CONFIG, reduce_relocations):!contains(TEMPLATE, .*lib): {
+ QMAKE_CFLAGS += $$QMAKE_CFLAGS_PIC
+ QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_PIC
+ }
+}
# qmake variables cannot contain dashes, so normalize the names first
CLEAN_QT = $$replace(QT, -private$, _private)
diff --git a/mkspecs/features/unix/mno_extern_direct_access.prf b/mkspecs/features/unix/mno_extern_direct_access.prf
new file mode 100644
index 0000000000..816e28bb43
--- /dev/null
+++ b/mkspecs/features/unix/mno_extern_direct_access.prf
@@ -0,0 +1,2 @@
+QMAKE_CFLAGS += -mno-direct-extern-access
+QMAKE_CXXFLAGS += -mno-direct-extern-access