On 01/12/2013 02:49 AM, Tom G. Christensen wrote: > I think the test still needs to be buildable. > ... > For Solaris 8 & 9 it needs to link with libsocket to get these functions
I installed into gnulib the following, which I hope fixes the above: --- ChangeLog | 8 ++++++++ modules/net_if-tests | 10 ++++++++++ tests/test-net_if.c | 8 ++++++-- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7afe8e6..79f857e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,13 @@ 2013-01-12 Paul Eggert <egg...@cs.ucla.edu> + net_if-tests: port to older Solaris + Problem reported by Tom G. Christensen in + <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>. + * modules/net_if-tests (NET_IF_LIB): New substitution. + (test_net_if_LDADD): New makefile macro, which uses NET_IF_LIB. + (HAVE_IF_NAMEINDEX): New C macro. + * tests/test-net_if.c: Bypass most of the test if !HAVE_IF_NAMEINDEX. + system-quote-tests: port to older Solaris Problem reported by Tom G. Christensen in <http://lists.gnu.org/archive/html/bug-gnulib/2013-01/msg00086.html>. diff --git a/modules/net_if-tests b/modules/net_if-tests index ace657d..1318803 100644 --- a/modules/net_if-tests +++ b/modules/net_if-tests @@ -5,7 +5,17 @@ tests/signature.h Depends-on: configure.ac: +NET_IF_LIB= +gl_saved_libs="$LIBS" +AC_SEARCH_LIBS([if_nameindex], [socket], + [AC_DEFINE([HAVE_IF_NAMEINDEX], [1], [Define if you have if_nameindex.]) + if test "$ac_cv_search_if_nameindex" != "none required"; then + NET_IF_LIB="$ac_cv_search_if_nameindex" + fi]) +LIBS="$gl_saved_libs" +AC_SUBST([NET_IF_LIB]) Makefile.am: TESTS += test-net_if check_PROGRAMS += test-net_if +test_net_if_LDADD = $(LDADD) @NET_IF_LIB@ diff --git a/tests/test-net_if.c b/tests/test-net_if.c index f3f0b2e..13ca82e 100644 --- a/tests/test-net_if.c +++ b/tests/test-net_if.c @@ -24,7 +24,7 @@ static struct if_nameindex ni; /* We do not yet have replacements for if_* functions on systems that lack a native <net/if.h>. */ -#if HAVE_NET_IF_H +#if HAVE_NET_IF_H && HAVE_IF_NAMEINDEX # include "signature.h" SIGNATURE_CHECK (if_freenameindex, void, (struct if_nameindex *)); SIGNATURE_CHECK (if_indextoname, char *, (unsigned int, char *)); @@ -38,7 +38,7 @@ SIGNATURE_CHECK (if_nametoindex, unsigned int, (const char *)); int main (int argc, char *argv[]) { -#if HAVE_NET_IF_H +#if HAVE_NET_IF_H && HAVE_IF_NAMEINDEX struct if_nameindex *ifnp, *p; p = ifnp = if_nameindex (); @@ -89,5 +89,9 @@ main (int argc, char *argv[]) if_freenameindex (ifnp); #endif /* HAVE_NET_IF_H */ +#if !HAVE_NET_IF_H || HAVE_IF_NAMEINDEX return !IF_NAMESIZE + ni.if_index + !!ni.if_name; +#else + return 0; +#endif } -- 1.7.11.7