bug-gnu-utils
[Top][All Lists]
Advanced

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

gettext-0.11.2 fails for me because I have not in6_addr.in6_u (rather I


From: Rapp, Perry
Subject: gettext-0.11.2 fails for me because I have not in6_addr.in6_u (rather I have in6_addr.s6_addr)
Date: Mon, 29 Apr 2002 17:48:30 -0400

FYI: What I did to make gettext-0.11.2 compile successfully on Win2000,
cygwin, gcc-2.95.3-5


>>Abstract

Because gettext #defines s6_addr16 (to be in6_u...), the compile fails
on my 
platform (cygwin), which has a s6_addr structure member, but no in6_u
member.

>>Detail

In gettext-0.11.2,

gettext/src/hostname.c
lines 66-69:

** BEGIN
   /* Use s6_addr16 for portability.  See RFC 2553.  */
#  ifndef s6_addr16
#   define s6_addr16 in6_u.u6_addr16
#  endif
** END

(This is relevant to the macro ipv6_ntop, c. line 281 same file, used
c. line 347 same file.)

I fail to compile because s6_addr is an actual member of the
in6_addr structure on my platform, whereas in6_u is not.
To wit, quoting /usr/include/cygwin/in.h, lines (175-178)
** BEGIN
struct in6_addr
{
        unsigned char s6_addr[16];
};
** END


The cygwin declaration seems to conform to this that I found with a
quick web search,
from http://www.faqs.org/rfcs/rfc2553.html, but I know nothing about
this matter really.

** BEGIN
A new in6_addr structure holds a single IPv6 address and is defined
   as a result of including <netinet/in.h>:

      struct in6_addr {
          uint8_t  s6_addr[16];      /* IPv6 address */
      };
** END




Anyway, what I did to compile was thus:


** BEGIN
#  ifndef s6_addr16
#   ifdef __CYGWIN__
#   define s6_addr16 s6_addr
#   else
#   define s6_addr16 in6_u.u6_addr16
#   endif
#  endif
** END


Cordially,

Perry




reply via email to

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