- detect endianness in lookup3 on BSD.

git-svn-id: file:///svn/unbound/trunk@2833 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
Wouter Wijngaards 2013-02-07 08:18:33 +00:00
parent f2dc71b465
commit 20f4608728
2 changed files with 14 additions and 0 deletions

View file

@ -1,3 +1,6 @@
7 February 2013: Wouter
- detect endianness in lookup3 on BSD.
30 January 2013: Wouter
- includes and have_ssl fixes for nss.

View file

@ -1,4 +1,5 @@
/*
February 2013(Wouter) patch defines for BSD endianness, from Brad Smith.
January 2012(Wouter) added randomised initial value, fallout from 28c3.
March 2007(Wouter) adapted from lookup3.c original, add config.h include.
added #ifdef VALGRIND to remove 298,384,660 'unused variable k8' warnings.
@ -52,6 +53,12 @@ on 1 byte), but shoehorning those bytes into integers efficiently is messy.
#ifdef linux
# include <endian.h> /* attempt to define endianness */
#endif
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__)
#include <sys/endian.h> /* attempt to define endianness */
#endif
#ifdef __OpenBSD__
#include <machine/endian.h> /* attempt to define endianness */
#endif
/* random initial value */
static uint32_t raninit = 0xdeadbeef;
@ -68,12 +75,16 @@ hash_set_raninit(uint32_t v)
*/
#if (defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && \
__BYTE_ORDER == __LITTLE_ENDIAN) || \
(defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && \
_BYTE_ORDER == _LITTLE_ENDIAN) || \
(defined(i386) || defined(__i386__) || defined(__i486__) || \
defined(__i586__) || defined(__i686__) || defined(vax) || defined(MIPSEL))
# define HASH_LITTLE_ENDIAN 1
# define HASH_BIG_ENDIAN 0
#elif (defined(__BYTE_ORDER) && defined(__BIG_ENDIAN) && \
__BYTE_ORDER == __BIG_ENDIAN) || \
(defined(_BYTE_ORDER) && defined(_BIG_ENDIAN) && \
_BYTE_ORDER == _BIG_ENDIAN) || \
(defined(sparc) || defined(POWERPC) || defined(mc68000) || defined(sel))
# define HASH_LITTLE_ENDIAN 0
# define HASH_BIG_ENDIAN 1