From: Paul Eggert Date: Sat, 11 May 2019 20:48:16 +0000 (-0700) Subject: b2sum: port to HP-UX C X-Git-Tag: v8.32~84 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6e97d361b47c981966f0bfef03659c572409bcba;p=thirdparty%2Fcoreutils.git b2sum: port to HP-UX C * src/blake2/blake2.h (BLAKE2_PACKED): Don’t assume __attribute__ ((packed)) works on non-Microsoft compilers. Instead, assume it works only if we have good reason to assume so, and fall back on Microsoft (or not packing) otherwise. In practice, not packing is good enough and the BLAKE2_PACKED macro is mostly just for documentation. --- diff --git a/src/blake2/blake2.h b/src/blake2/blake2.h index d25d5fdb94..3960bdb2dc 100644 --- a/src/blake2/blake2.h +++ b/src/blake2/blake2.h @@ -18,10 +18,18 @@ #include #include -#if defined(_MSC_VER) -#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop)) -#else -#define BLAKE2_PACKED(x) x __attribute__((packed)) +#ifdef __has_attribute +# if __has_attribute (packed) +# define BLAKE2_PACKED(x) x __attribute__ ((packed)) +# endif +#endif +#if !defined BLAKE2_PACKED && defined _MSC_VER +# define BLAKE2_PACKED(x) __pragma (pack (push, 1)) x __pragma (pack (pop)) +#endif +#ifndef BLAKE2_PACKED +/* This should be good enough on other platforms. + If it's not good on yours, please file a bug report. */ +# define BLAKE2_PACKED(x) x #endif #if defined(__cplusplus)