[Top][All Lists]
[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
- gettext-0.11.2 fails for me because I have not in6_addr.in6_u (rather I have in6_addr.s6_addr),
Rapp, Perry <=