Commit 230a451e by Patrick Steinhardt

sha1dc: update to fix endianess issues on AIX/HP-UX

Update our copy of sha1dc to the upstream commit 855827c (Detect
endianess on HP-UX, 2019-05-09). Changes include fixes to endian
detection on AIX and HP-UX systems as well as a define that
allows us to force aligned access, which we're not using yet.
parent e50d138e
...@@ -93,13 +93,23 @@ ...@@ -93,13 +93,23 @@
#define SHA1DC_BIGENDIAN #define SHA1DC_BIGENDIAN
/* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> */ /* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> */
#elif (defined(_AIX) || defined(__hpux))
/*
* Defines Big Endian on a whitelist of OSs that are known to be Big
* Endian-only. See
* https://public-inbox.org/git/93056823-2740-d072-1ebd-46b440b33d7e@felt.demon.nl/
*/
#define SHA1DC_BIGENDIAN
/* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> or <os whitelist> */
#elif defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR) #elif defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
/* /*
* As a last resort before we do anything else we're not 100% sure * As a last resort before we do anything else we're not 100% sure
* about below, we blacklist specific processors here. We could add * about below, we blacklist specific processors here. We could add
* more, see e.g. https://wiki.debian.org/ArchitectureSpecificsMemo * more, see e.g. https://wiki.debian.org/ArchitectureSpecificsMemo
*/ */
#else /* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> or <processor blacklist> */ #else /* Not under GCC-alike or glibc or *BSD or newlib or <processor whitelist> or <os whitelist> or <processor blacklist> */
/* We do nothing more here for now */ /* We do nothing more here for now */
/*#error "Uncomment this to see if you fall through all the detection"*/ /*#error "Uncomment this to see if you fall through all the detection"*/
...@@ -114,10 +124,11 @@ ...@@ -114,10 +124,11 @@
#endif #endif
/*ENDIANNESS SELECTION*/ /*ENDIANNESS SELECTION*/
#ifndef SHA1DC_FORCE_ALIGNED_ACCESS
#if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR) #if defined(SHA1DC_FORCE_UNALIGNED_ACCESS) || defined(SHA1DC_ON_INTEL_LIKE_PROCESSOR)
#define SHA1DC_ALLOW_UNALIGNED_ACCESS #define SHA1DC_ALLOW_UNALIGNED_ACCESS
#endif /*UNALIGNMENT DETECTION*/ #endif /*UNALIGNED ACCESS DETECTION*/
#endif /*FORCE ALIGNED ACCESS*/
#define rotate_right(x,n) (((x)>>(n))|((x)<<(32-(n)))) #define rotate_right(x,n) (((x)>>(n))|((x)<<(32-(n))))
#define rotate_left(x,n) (((x)<<(n))|((x)>>(32-(n)))) #define rotate_left(x,n) (((x)<<(n))|((x)>>(32-(n))))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment