summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xconfig.tests/unix/fvisibility.test19
-rwxr-xr-xconfigure6
2 files changed, 17 insertions, 8 deletions
diff --git a/config.tests/unix/fvisibility.test b/config.tests/unix/fvisibility.test
index b2bcc07..2b26381 100755
--- a/config.tests/unix/fvisibility.test
+++ b/config.tests/unix/fvisibility.test
@@ -2,22 +2,27 @@
FVISIBILITY_SUPPORT=no
COMPILER=$1
-VERBOSE=$2
+HIDESYMS=$2
+VERBOSE=$3
RunCompileTest() {
cat >>fvisibility.c << EOF
+#if defined(__ARMCC__) || defined(__CC_ARM)
+__declspec(dllexport) void blah(void);
+#elif defined(__GNUC__)
+# if __GNUC__ < 4
+# error "GCC3 with backported visibility patch is known to miscompile Qt"
+# endif
__attribute__((visibility("default"))) void blah();
-#if !defined(__GNUC__)
-# error "Visiblility support requires GCC"
-#elif __GNUC__ < 4
-# error "GCC3 with backported visibility patch is known to miscompile Qt"
+#else
+# error "Visibility support requires GCC or RVCT"
#endif
EOF
if [ "$VERBOSE" = "yes" ] ; then
- "$COMPILER" -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes
+ "$COMPILER" -c $HIDESYMS fvisibility.c && FVISIBILITY_SUPPORT=yes
else
- "$COMPILER" -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
+ "$COMPILER" -c $HIDESYMS fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
fi
rm -f fvisibility.c fvisibility.o
}
diff --git a/configure b/configure
index a3c8cba..d197ad3 100755
--- a/configure
+++ b/configure
@@ -2893,6 +2893,10 @@ QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" |
TEST_COMPILER="$CC"
[ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
+QMAKE_CONF_HIDESYMS=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CFLAGS_HIDESYMS" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
+TEST_HIDESYMS=$QMAKE_CONF_HIDESYMS
+[ -z "$TEST_HIDESYMS" ] && TEST_HIDESYMS="-fvisibility=hidden"
+
# auto-detect precompiled header support
if [ "$CFG_PRECOMPILE" = "auto" ]; then
if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
@@ -2957,7 +2961,7 @@ fi
# auto-detect -fvisibility support
if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
- if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+ if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$TEST_HIDESYMS" "$OPT_VERBOSE"; then
CFG_REDUCE_EXPORTS=no
else
CFG_REDUCE_EXPORTS=yes