From 69bf30596c2555b4430383d7edc4f1dbe04e72fc Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Tue, 3 Jan 2012 12:10:36 -0200 Subject: [PATCH] Fix the bsymbolic_functions test and improve the error reporting 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 --- config.tests/unix/bsymbolic_functions.test | 7 ++++++- config.tests/unix/fvisibility.test | 1 + configure | 12 +++++++++++- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/config.tests/unix/bsymbolic_functions.test b/config.tests/unix/bsymbolic_functions.test index 70720b0..d495e56 100755 --- a/config.tests/unix/bsymbolic_functions.test +++ b/config.tests/unix/bsymbolic_functions.test @@ -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 diff --git a/config.tests/unix/fvisibility.test b/config.tests/unix/fvisibility.test index 6e56410..890f473 100755 --- a/config.tests/unix/fvisibility.test +++ b/config.tests/unix/fvisibility.test @@ -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 diff --git a/configure b/configure index 1f580d3..195960a 100755 --- 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 -- 2.7.4