check-exports: Fixes to make check-export work on both Solaris and Linux
authorJan Schmidt <thaytan@mad.scientist.com>
Sat, 12 Jan 2008 18:05:43 +0000 (18:05 +0000)
committerJan Schmidt <thaytan@mad.scientist.com>
Sat, 12 Jan 2008 18:05:43 +0000 (18:05 +0000)
Original commit message from CVS:
* check-exports:
Fixes to make check-export work on both Solaris and Linux
* m4/gst-error.m4:
Disable extra warning category (argument mismatch) as an error
on Forte, as it prevents the libcheck fail_if macros from compiling.
* win32.mak:
Substitute the GStreamer version so things will keep working in 0.11

ChangeLog
check-exports
m4/gst-error.m4
win32.mak

index fc47897..e6a571b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-01-12  Jan Schmidt  <Jan.Schmidt@sun.com>
+
+       * check-exports:
+         Fixes to make check-export work on both Solaris and Linux
+
+       * m4/gst-error.m4:
+         Disable extra warning category (argument mismatch) as an error
+         on Forte, as it prevents the libcheck fail_if macros from compiling.
+
+       * win32.mak:
+         Substitute the GStreamer version so things will keep working in 0.11
+
 2008-01-11  Tim-Philipp Müller  <tim at centricular dot net>
 
        Patch by: Peter Kjellerstedt <pkj axis com>
index 51b8bf4..ae72020 100755 (executable)
@@ -10,13 +10,20 @@ if [ $# -ne 2 ]; then
        exit 1
 fi
 
-export LC_ALL=C
+def_path="$1"
+def_name="$(basename $def_path)"
+lib_path="$2"
 
-def_path=$1
-def_name=$(basename $def_path)
-lib_path=$2
+lib_result="`mktemp /tmp/defname.XXXXXX`"
 
-lib_result=$(mktemp /tmp/defname.XXXXXX)
+LC_ALL=C
+export LC_ALL
+
+# On Solaris, add -p to get the correct output format
+NMARGS=
+if nm -V 2>&1 |grep Solaris > /dev/null; then
+  NMARGS=-p
+fi
 
 # FIXME 0.11: in 0.11, we should change the export filter to only export
 # _gst_foo, but not __gst_foo (we can't change this now, since we added
@@ -30,16 +37,19 @@ lib_result=$(mktemp /tmp/defname.XXXXXX)
 # __gst_element_factory_add_static_pad_template).  We suppress them here to
 # make sure they're at least not exported in the windows msvc build (they
 # were never in the .def file, so they never got exported).
-nm $lib_path | awk \
+# _end is special cased because for some reason it is reported as an exported
+# BSS symbol, unlike on linux where it's a local absolute symbol.
+nm $NMARGS $lib_path | awk \
        '{
-               if ($3 !~ /^_gst_parse_yy/ &&
-                   $3 !~ /^_gst_[a-z]*_init/ &&
-                   $3 !~ /^_gst_parse_launch/ &&
-                   $3 !~ /^__gst_element_details_/ &&
-                   $3 !~ /^__gst_element_factory_add_/ &&
-                   $3 !~ /^gst_interfaces_marshal/)
+               if ($3 !~ /^_gst_parse_yy/ && \
+                   $3 !~ /^_gst_[a-z]*_init/ && \
+                   $3 !~ /^_gst_parse_launch/ && \
+                   $3 !~ /^__gst_element_details_/ && \
+                   $3 !~ /^__gst_element_factory_add_/ && \
+                   $3 !~ /^gst_interfaces_marshal/ && \
+                   $3 ~ /^[_]*(gst_|Gst|GST_).*/)
                {
-                       if ($2 == "B" || $2 == "S")
+                       if ($2 ~ /^[BSDG]$/)
                                print "\t" $3 " DATA"
                        else if ($2 == "T")
                                print "\t" $3
@@ -49,7 +59,7 @@ nm $lib_path | awk \
 
 diffoutput=`diff -u $def_path $lib_result`
 
-rm $lib_result
+rm $lib_result
 
 if test "x$diffoutput" = "x"; then
   exit 0;
index 4c3f12c..d10cdc8 100644 (file)
@@ -35,11 +35,11 @@ AC_DEFUN([AG_GST_SET_ERROR_CFLAGS],
     dnl if -Werror isn't suported
     if test "x$ERROR_CFLAGS" == "x"
     then
-      dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED (Sun Forte case)
+      dnl try -errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH (Sun Forte case)
       dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon 
       dnl "statement not reached" disabled because there is g_assert_not_reached () in some places
-      AS_COMPILER_FLAG([-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED],
-                       [ERROR_CFLAGS="-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED"])
+      AS_COMPILER_FLAG([-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH],
+                       [ERROR_CFLAGS="-errwarn=%all,no%E_EMPTY_DECLARATION,no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH"])
 
       dnl if this also isn't suported, try only for -errwarn=%all
       if test "x$ERROR_CFLAGS" == "x"
index 96b1085..63b1310 100644 (file)
--- a/win32.mak
+++ b/win32.mak
@@ -38,7 +38,7 @@ check-exports:
        fail=0 ; \
        for l in $(win32defs); do \
          libbase=`basename "$$l" ".def"`; \
-         libso=`find "$(top_builddir)" -name "$$libbase-0.10.so"`; \
+         libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so"`; \
          libdef="$(top_srcdir)/win32/common/$$libbase.def"; \
          if test "x$$libso" != "x"; then \
            echo Checking symbols in $$libso; \