# HG changeset patch # User jbe # Date 1502705257 -7200 # Node ID fa902b26589f5fe4e420e1df5ebc038dd0d1a469 # Parent 01f53490f26228b2eaf55e0ba560a4bb6869a0fc Removed endianess detection from moonhash_sha.c and created byteorder.h for that purpose instead diff -r 01f53490f262 -r fa902b26589f libraries/moonhash/byteorder.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libraries/moonhash/byteorder.h Mon Aug 14 12:07:37 2017 +0200 @@ -0,0 +1,24 @@ +/* Defines LITTLE_ENDIAN_DETECTED if system follows little endian byte order + scheme. Does not define anything if endianess could not be determined. */ + +#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) +# include +# if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) +# if _BYTE_ORDER == _LITTLE_ENDIAN +# define LITTLE_ENDIAN_DETECTED +# endif +# else +# warning Could not determine endianess on BSD platform, revert to fail safe. +# endif +#elif defined(__linux__) +# include +# if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define LITTLE_ENDIAN_DETECTED +# endif +# else +# warning Could not determine endianess on Linux platform, revert to fail safe. +# endif +#else +# warning Could not determine endianess, revert to fail safe. +#endif diff -r 01f53490f262 -r fa902b26589f libraries/moonhash/moonhash_sha3.c --- a/libraries/moonhash/moonhash_sha3.c Sun Aug 13 14:55:50 2017 +0200 +++ b/libraries/moonhash/moonhash_sha3.c Mon Aug 14 12:07:37 2017 +0200 @@ -1,20 +1,7 @@ /* This file is derived from "Keccak-more-compact.c", which has been downloaded from . The original file "Keccak-more-compact.c" has, according to , been put into the public domain. */ #include - -#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) -#include -#if defined(_BYTE_ORDER) && defined(_LITTLE_ENDIAN) && _BYTE_ORDER == _LITTLE_ENDIAN -#define MOONHASH_LITTLE_ENDIAN -#endif -#elif defined(__linux__) -#include -#if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN -#define MOONHASH_LITTLE_ENDIAN -#endif -#else -#warning Could not determine endianess, revert to fail safe. -#endif +#include "byteorder.h" #define FOR(i,n) for(i=0; i>1; } #define ROL(a,o) ((((u64)a)<>(64-o))) -#ifdef MOONHASH_LITTLE_ENDIAN +#ifdef LITTLE_ENDIAN_DETECTED #define load64(src) (*(uint64_t *)(src)) #define store64(dst, src) do { *(uint64_t *)(dst) = src; } while (0) #define xor64(dst, src) do { *(uint64_t *)(dst) ^= src; } while (0)