Fix the bsymbolic_functions test and improve the error reporting
authorThiago Macieira <thiago.macieira@intel.com>
Tue, 3 Jan 2012 14:10:36 +0000 (12:10 -0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 22 Mar 2012 17:59:45 +0000 (18:59 +0100)
The bsymbolic_functions test was missing $SYSROOT_FLAG, so the linking
was always failing and the test falsely negative.

Also make the error reporting better: if the flag was requested, error
out if the check fails and report more information in -v mode.

Change-Id: Ie2615f8083e7e58d63d9ee9c23be937dc864b30d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
config.tests/unix/bsymbolic_functions.test
config.tests/unix/fvisibility.test
configure

index 70720b0..d495e56 100755 (executable)
@@ -9,7 +9,12 @@ cat >>bsymbolic_functions.c << EOF
 int main() { return 0; }
 EOF
 
-$COMPILER $SYSROOT_FLAG -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
+if [ "$VERBOSE" = "yes" ] ; then
+    echo $COMPILER $SYSROOT_FLAG -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c
+    $COMPILER $SYSROOT_FLAG -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
+else
+    $COMPILER $SYSROOT_FLAG -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
+fi
 rm -f bsymbolic_functions.c libtest.so
 
 # done
index 6e56410..890f473 100755 (executable)
@@ -25,6 +25,7 @@ __global void blah();
 EOF
 
     if [ "$VERBOSE" = "yes" ] ; then
+        echo $COMPILER -c $CMDLINE fvisibility.c
         $COMPILER -c $CMDLINE fvisibility.c && FVISIBILITY_SUPPORT=yes
     else
         $COMPILER -c $CMDLINE fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
index 1f580d3..195960a 100755 (executable)
--- a/configure
+++ b/configure
@@ -2601,8 +2601,13 @@ if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
 fi
 
 # auto-detect -fvisibility support
-if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
+if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+       if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
+           echo "-reduce-exports was requested but this compiler does not support it"
+           echo "Re-run configure with -v for more information"
+           exit 1
+       fi
        CFG_REDUCE_EXPORTS=no
     else
        CFG_REDUCE_EXPORTS=yes
@@ -2612,6 +2617,11 @@ fi
 # detect the availability of the -Bsymbolic-functions linker optimization
 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
+       if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
+           echo "-reduce-relocations was requested but this compiler does not support it"
+           echo "Re-run configure with -v for more information"
+           exit 1
+       fi
         CFG_REDUCE_RELOCATIONS=no
     else
         CFG_REDUCE_RELOCATIONS=yes