From 1ca27669332b5e19284297b0bbc57700f59fed33 Mon Sep 17 00:00:00 2001 From: axis Date: Fri, 26 Jun 2009 14:22:04 +0200 Subject: Modify visibility test to support armcc as well. --- config.tests/unix/fvisibility.test | 19 ++++++++++++------- configure | 6 +++++- 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 -- cgit v0.12