From fc3f2e78462b01338055cadc1e224e29d4ed4e9a Mon Sep 17 00:00:00 2001 From: Ken Raeburn Date: Sat, 20 Feb 2010 07:37:13 +0000 Subject: [PATCH] Use bswap16 and bswap32 on NetBSD git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23741 dc483132-0cff-0310-8789-dd5450dbe970 --- src/include/k5-platform.h | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/include/k5-platform.h b/src/include/k5-platform.h index fd3ceec9c..e656b52c8 100644 --- a/src/include/k5-platform.h +++ b/src/include/k5-platform.h @@ -526,8 +526,7 @@ typedef struct { int error; unsigned char did_run; } k5_init_t; # ifdef HAVE_BSWAP_64 # define SWAP64 bswap_64 # endif -#endif -#if TARGET_OS_MAC +#elif TARGET_OS_MAC # include # if 0 /* This causes compiler warnings. */ # define SWAP16 OSSwapInt16 @@ -540,6 +539,19 @@ static inline unsigned int k5_swap16 (unsigned int x) { # endif # define SWAP32 OSSwapInt32 # define SWAP64 OSSwapInt64 +#elif defined(HAVE_SYS_BSWAP_H) +/* XXX NetBSD/x86 5.0.1 defines bswap16 and bswap32 as inline + functions only, so autoconf doesn't pick up on their existence. + So, no feature macro test for them here. The 64-bit version isn't + inline at all, though, for whatever reason. */ +# include +# define SWAP16 bswap16 +# define SWAP32 bswap32 +/* However, bswap64 causes lots of warnings about 'long long' + constants; probably only on 32-bit platforms. */ +# if LONG_MAX > 0x7fffffffL +# define SWAP64 bswap64 +# endif #endif /* Note that on Windows at least this file can be included from C++ -- 2.26.2