From f2abe47d6290cdb0141a1f30863915123f2ce997 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Thu, 21 Nov 2002 04:13:35 +0000 Subject: [PATCH] Use the '-z defs' linker option if supported to better catch undefined symbols. --- configure | 46 ++++++++++++++++++++++++++++++++++++++++++++++ configure.ac | 7 +++++++ 2 files changed, 53 insertions(+) diff --git a/configure b/configure index d4fbe3a8d92..aeb1772e0d6 100755 --- a/configure +++ b/configure @@ -10234,6 +10234,52 @@ echo "${ECHO_T}$ac_cv_c_dll_gnuelf" >&6 then LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)" LDDLLFLAGS="-Wl,-Bsymbolic" + echo "$as_me:$LINENO: checking whether the linker accepts -z defs" >&5 +echo $ECHO_N "checking whether the linker accepts -z defs... $ECHO_C" >&6 +if test "${ac_cv_c_dll_zdefs+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_wine_try_cflags_saved=$CFLAGS +CFLAGS="$CFLAGS -fPIC -shared -Wl,-Bsymbolic,-z,defs" +cat >conftest.$ac_ext <<_ACEOF +#line $LINENO "configure" +#include "confdefs.h" + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_c_dll_zdefs="yes" +else + echo "$as_me: failed program was:" >&5 +cat conftest.$ac_ext >&5 +ac_cv_c_dll_zdefs="no" +fi +rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext +CFLAGS=$ac_wine_try_cflags_saved +fi +echo "$as_me:$LINENO: result: $ac_cv_c_dll_zdefs" >&5 +echo "${ECHO_T}$ac_cv_c_dll_zdefs" >&6 + if test "$ac_cv_c_dll_zdefs" = "yes" + then + LDDLLFLAGS="$LDDLLFLAGS,-z,defs" + fi else echo "$as_me:$LINENO: checking whether we can build a UnixWare (Solaris) dll" >&5 echo $ECHO_N "checking whether we can build a UnixWare (Solaris) dll... $ECHO_C" >&6 diff --git a/configure.ac b/configure.ac index b721e38b151..9535dfc2296 100644 --- a/configure.ac +++ b/configure.ac @@ -793,6 +793,13 @@ case $host_os in then LDSHARED="\$(CC) -shared \$(SONAME:%=-Wl,-soname,%)" LDDLLFLAGS="-Wl,-Bsymbolic" + AC_CACHE_CHECK([whether the linker accepts -z defs], ac_cv_c_dll_zdefs, + [WINE_TRY_CFLAGS([-fPIC -shared -Wl,-Bsymbolic,-z,defs], + ac_cv_c_dll_zdefs="yes",ac_cv_c_dll_zdefs="no")]) + if test "$ac_cv_c_dll_zdefs" = "yes" + then + LDDLLFLAGS="$LDDLLFLAGS,-z,defs" + fi else AC_CACHE_CHECK(whether we can build a UnixWare (Solaris) dll, ac_cv_c_dll_unixware, [WINE_TRY_CFLAGS([-fPIC -Wl,-G,-h,conftest.so.1.0,-B,symbolic],