]> git.sesse.net Git - vlc/commitdiff
Ensure that shared objects have no unresolved symbols.
authorRémi Denis-Courmont <rem@videolan.org>
Sat, 21 Oct 2006 19:52:23 +0000 (19:52 +0000)
committerRémi Denis-Courmont <rem@videolan.org>
Sat, 21 Oct 2006 19:52:23 +0000 (19:52 +0000)
This will catch broken plugins at build-time rather than run-time.

configure.ac
m4/flags.m4

index 4ee2f0b6956a075160ea07922380fbb48990501e..4d3fc003114b375a88cf85438e9cf40c22631ae0 100644 (file)
@@ -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],
index 683c7f8ea47b264e9e4d30103d277aaa1ab16142..84222ad432b395c5bb78ef8ec3661d27920611e3 100644 (file)
@@ -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
   ])
 ])