From: Michał Kępień Date: Mon, 3 Jun 2019 12:13:23 +0000 (+0200) Subject: Fix on BSD systems X-Git-Tag: v9.15.1~17^2~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7ab1fb2a8d5d83380d63400781370297f2502e9c;p=thirdparty%2Fbind9.git Fix on BSD systems Current versions of DragonFly BSD, FreeBSD, NetBSD, and OpenBSD all support the modern variants of functions converting values between host and big-endian/little-endian byte order while older ones might not. Ensure works properly in both cases. --- diff --git a/lib/isc/include/isc/endian.h b/lib/isc/include/isc/endian.h index 35ea578b330..f713cec0255 100644 --- a/lib/isc/include/isc/endian.h +++ b/lib/isc/include/isc/endian.h @@ -39,18 +39,24 @@ # define __LITTLE_ENDIAN LITTLE_ENDIAN # define __PDP_ENDIAN PDP_ENDIAN -#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) +#elif defined(__DragonFly__) || defined(__FreeBSD__) || \ + defined(__NetBSD__) || defined (__OpenBSD__) || defined(__bsdi__) # include -# define be16toh(x) betoh16(x) -# define le16toh(x) letoh16(x) - -# define be32toh(x) betoh32(x) -# define le32toh(x) letoh32(x) - -# define be64toh(x) betoh64(x) -# define le64toh(x) letoh64(x) +/* + * Recent BSDs should have [bl]e{16,32,64}toh() defined in . + * Older ones might not, but these should have the alternatively named + * [bl]etoh{16,32,64}() functions defined. + */ +# ifndef be16toh +# define be16toh(x) betoh16(x) +# define le16toh(x) letoh16(x) +# define be32toh(x) betoh32(x) +# define le32toh(x) letoh32(x) +# define be64toh(x) betoh64(x) +# define le64toh(x) letoh64(x) +# endif /* !be16toh */ #elif defined(_WIN32) /* Windows is always little endian */