From: RĂ©mi Denis-Courmont Date: Sat, 21 Oct 2006 19:52:23 +0000 (+0000) Subject: Ensure that shared objects have no unresolved symbols. X-Git-Tag: 0.9.0-test0~9826 X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=718e1e051546b81ec650ea7bc6a7218daf038e2d;p=vlc Ensure that shared objects have no unresolved symbols. This will catch broken plugins at build-time rather than run-time. --- diff --git a/configure.ac b/configure.ac index 4ee2f0b695..4d3fc00311 100644 --- a/configure.ac +++ b/configure.ac @@ -891,6 +891,10 @@ CFLAGS="${CFLAGS_save}" RDC_PROG_CC_WFLAGS([all extra no-unused-parameter sign-compare undef pointer-arith bad-function-cast cast-align write-strings old-style-definition missing-prototypes packed volatile-register-var]) RDC_PROG_CC_FLAGS_IFELSE([-pipe]) +dnl This helps detect broken plugins with undefined symbols +dnl Better fail loudly at build-time than silenty at run-time. +RDC_PROG_LINK_FLAGS_IFELSE([-Wl,-z,defs]) + dnl Check for various optimization flags AC_CACHE_CHECK([if \$CC accepts -Os], [ac_cv_c_os], diff --git a/m4/flags.m4 b/m4/flags.m4 index 683c7f8ea4..84222ad432 100644 --- a/m4/flags.m4 +++ b/m4/flags.m4 @@ -23,6 +23,7 @@ AC_DEFUN([RDC_PROG_CC_FLAGS_IFELSE], ac_res=`eval echo '${'$as_ac_var'}'` AS_IF([test "${ac_res}" != "no"], [ + CFLAGS="${CFLAGS} $1" CXXFLAGS="${CXXFLAGS} $1" OBJCFLAGS="${OBJCFLAGS} $1" $2 @@ -40,11 +41,11 @@ AC_DEFUN([RDC_PROG_CC_WFLAGS], AC_DEFUN([RDC_PROG_LINK_FLAGS_IFELSE], [AC_LANG_ASSERT(C) - CFLAGS_save="${CFLAGS}" - as_ac_var=`echo "ac_cv_prog_cc_flags_$1" | $as_tr_sh` - AC_CACHE_CHECK([if $CC accepts $1], [$as_ac_var], [ - CFLAGS="${CFLAGS_save} $1" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], [ + LDFLAGS_save="${LDFLAGS}" + as_ac_var=`echo "ac_cv_prog_link_flags_$1" | $as_tr_sh` + AC_CACHE_CHECK([if $LINK accepts $1], [$as_ac_var], [ + LDFLAGS="${LDFLAGS_save} $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], [ eval "$as_ac_var=yes" ],[ eval "$as_ac_var=no" @@ -53,10 +54,10 @@ AC_DEFUN([RDC_PROG_LINK_FLAGS_IFELSE], ac_res=`eval echo '${'$as_ac_var'}'` AS_IF([test "${ac_res}" != "no"], [ - true + LDFLAGS="${LDFLAGS} $1" $2 ], [ - LDFLAGS="${CFLAGS_save}" + LDFLAGS="${LDFLAGS_save}" $3 ]) ])