krb5-1.4.1 build failure on FreeBSD 5.4 (EAI_NODATA), and a workaround
Fred Dushin
fadushin at fourfold.org
Mon Jul 11 21:42:30 EDT 2005
I'm getting a krb5-1.4.1 build failure on FreeBSD 5.4-RELEASE:
.../krb5-1.4.1/src/lib/krb5/os/hst_realm.c: In function
`krb5int_translate_gai_error':
.../krb5-1.4.1/src/lib/krb5/os/hst_realm.c:370: error: `EAI_NODATA'
undeclared (first use in this function)
.../krb5-1.4.1/src/lib/krb5/os/hst_realm.c:370: error: (Each
undeclared identifier is reported only once
.../krb5-1.4.1/src/lib/krb5/os/hst_realm.c:370: error: for each
function it appears in.)
I believe this is partially due to autoconf, which is (correctly)
detecting getaddrinfo in FreeBSD 5.4, and hence not building the fake-
addr-info types (.../krb5-1.4.1/src/include/fake-addrinfo.h:333)
However, I find the somewhat cryptic obsoleted comments in /usr/
include/netdb.h, on FreeBSD:
/*
* Error return codes from getaddrinfo()
*/
#if 0
/* obsoleted */
#define EAI_ADDRFAMILY 1 /* address family for hostname not
supported */
#endif
#define EAI_AGAIN 2 /* temporary failure in name
resolution */
#define EAI_BADFLAGS 3 /* invalid value for ai_flags */
#define EAI_FAIL 4 /* non-recoverable failure in name
resolution */
#define EAI_FAMILY 5 /* ai_family not supported */
#define EAI_MEMORY 6 /* memory allocation failure */
#if 0
/* obsoleted */
#define EAI_NODATA 7 /* no address associated with
hostname */
#endif
#define EAI_NONAME 8 /* hostname nor servname provided, or
not known */
#define EAI_SERVICE 9 /* servname not supported for
ai_socktype */
#define EAI_SOCKTYPE 10 /* ai_socktype not supported */
#define EAI_SYSTEM 11 /* system error returned in errno */
#define EAI_BADHINTS 12
#define EAI_PROTOCOL 13
#define EAI_MAX 14
My solution has been to modify the generated autoconf.h to not set
HAVE_GETADDRINFO, and hence force the generation of the fake addrinfo
code, but this is maybe less than optimal.
EAI_NO_DATA is defined in /usr/include/lwres/netdb.h, but I don't
know off hand what that header file is for.
Any BSD experts available?
/Fred
More information about the Kerberos
mailing list