bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Build errors on Solaris 2.6 & 7


From: Paul Eggert
Subject: Re: Build errors on Solaris 2.6 & 7
Date: Sat, 12 Jan 2013 21:54:54 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130106 Thunderbird/17.0.2

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  <address@hidden>
 
+       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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]