bug-gnulib
[Top][All Lists]
Advanced

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

Re: [PATCH] Fix arpa_inet bugs found when installing coreutils 7.2 on So


From: Paul Eggert
Subject: Re: [PATCH] Fix arpa_inet bugs found when installing coreutils 7.2 on Solaris 8.
Date: Fri, 03 Apr 2009 13:32:46 -0700
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.3 (gnu/linux)

Bruno Haible <address@hidden> writes:

> There is no point for gnulib to redefine a function that is present in libnsl
> (and hopefully working). IMO the fix is therefore to add a 'Link' section to
> the module description module/inet_ntop, and determine its value, say,
> INET_NTOP_LIB, in the gl_INET_NTOP macro.

Thanks for catching that.  I looked into it a bit more, and discovered
that not only do we not need to build inet_ntop on Solaris 8, we don't
even need the system's inet_ntop, nor do we need to link with -lnsl.
This stuff was included only as a dependency to getaddrinfo, but that
function isn't needed or built on Solaris 8.

I worked around the problem in the following different, and I hope
simpler way, though it is a bit hacky.  This time I remembered to push
it, anyway....

-----

* modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h.
* m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl,
for Solaris 8.  This is a bit of a hack, as it means it's the
caller's responsibility to add -lnsl if needed, but most likely it
won't be needed since only getaddrinfo uses this and getaddrinfo
isn't needed on Solaris 8.
---
 ChangeLog         |    8 ++++++++
 m4/inet_ntop.m4   |   15 +++++++++++++--
 modules/arpa_inet |    2 +-
 3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 2fdb6dd..7415f5b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
 2009-04-03  Paul Eggert  <address@hidden>
 
+       Port coreutils 7.2 to Solaris 8.
+
+       * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl,
+       for Solaris 8.  This is a bit of a hack, as it means it's the
+       caller's responsibility to add -lnsl if needed, but most likely it
+       won't be needed since only getaddrinfo uses this and getaddrinfo
+       isn't neede on Solaris 8.
+
        * modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting
        problem to Solaris 8 encountered with coreutils 7.2, which
        resulted in a message "fnmatch.c:292: warning: passing argument 4
diff --git a/m4/inet_ntop.m4 b/m4/inet_ntop.m4
index 42bfc5e..2bbdca1 100644
--- a/m4/inet_ntop.m4
+++ b/m4/inet_ntop.m4
@@ -1,4 +1,4 @@
-# inet_ntop.m4 serial 8
+# inet_ntop.m4 serial 9
 dnl Copyright (C) 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -11,7 +11,18 @@ AC_DEFUN([gl_INET_NTOP],
 
   gl_REPLACE_ARPA_INET_H
 
-  AC_REPLACE_FUNCS([inet_ntop])
+  dnl The AC_SEARCH_LIBS call is a hack to persuade the Solaris 8 linker to
+  dnl find inet_ntop.
+  dnl
+  dnl It is the responsibility of gl_INET_NTOP's caller to arrange for
+  dnl -lnsl if it is needed.  Normally -lnsl is not needed on Solaris 8,
+  dnl since inet_ntop is needed only by getaddrinfo, and getaddrinfo
+  dnl isn't built on Solaris 8.
+  gl_save_LIBS=$LIBS
+  AC_SEARCH_LIBS([inet_ntop], [nsl], [],
+    [AC_REPLACE_FUNCS([inet_ntop])])
+  LIBS=$gl_save_LIBS
+
   gl_PREREQ_INET_NTOP
 ])
 
diff --git a/modules/arpa_inet b/modules/arpa_inet
index 3691fd5..d799403 100644
--- a/modules/arpa_inet
+++ b/modules/arpa_inet
@@ -19,7 +19,7 @@ BUILT_SOURCES += $(ARPA_INET_H)
 
 # We need the following in order to create <arpa/inet.h> when the system
 # doesn't have one.
-arpa/inet.h:
+arpa/inet.h: arpa_inet.in.h
        @MKDIR_P@ arpa
        rm -f address@hidden $@
        { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \
-- 
1.5.3.2


>From 9d17a13747f2286970948f17d8e22a81326ae023 Mon Sep 17 00:00:00 2001
From: Paul Eggert <address@hidden>
Date: Fri, 3 Apr 2009 13:31:23 -0700
Subject: [PATCH] Fix ChangeLog typo in my previous commit.

---
 ChangeLog |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7415f5b..a8c80a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,11 +2,12 @@
 
        Port coreutils 7.2 to Solaris 8.
 
+       * modules/arpa_inet (arpa/inet.h): Depend on arpa_inet.in.h.
        * m4/inet_ntop.m4 (gl_INET_NTOP): Search for inet_ntop in -lnsl,
        for Solaris 8.  This is a bit of a hack, as it means it's the
        caller's responsibility to add -lnsl if needed, but most likely it
        won't be needed since only getaddrinfo uses this and getaddrinfo
-       isn't neede on Solaris 8.
+       isn't needed on Solaris 8.
 
        * modules/fnmatch (Depends-on): Add mbsrtowcs, to fix a porting
        problem to Solaris 8 encountered with coreutils 7.2, which
-- 
1.5.3.2





reply via email to

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