From 32682b0c0347a4d695fbd3e02d76f9871a0cefd6 Mon Sep 17 00:00:00 2001 From: Matthew Macy Date: Fri, 1 Nov 2019 10:27:53 -0700 Subject: [PATCH] Fix icp build on FreeBSD - ROTATE_LEFT is not used by amd64, move it down within the scope it's used to silence a clang warning. - __unused is an alias for the compiler annotation __attribute__((__unused__)) on FreeBSD. Rename the field to ____unused. Reviewed-by: Brian Behlendorf Signed-off-by: Matt Macy Closes #9538 --- module/icp/algs/sha1/sha1.c | 43 ++++++++++++++++----------------- module/icp/include/sys/modctl.h | 2 +- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/module/icp/algs/sha1/sha1.c b/module/icp/algs/sha1/sha1.c index 7f28b3796b..e4b7a0c8c0 100644 --- a/module/icp/algs/sha1/sha1.c +++ b/module/icp/algs/sha1/sha1.c @@ -80,28 +80,6 @@ static uint8_t PADDING[64] = { 0x80, /* all zeros */ }; #define G(b, c, d) ((b) ^ (c) ^ (d)) #define H(b, c, d) (((b) & (c)) | (((b)|(c)) & (d))) -/* - * ROTATE_LEFT rotates x left n bits. - */ - -#if defined(__GNUC__) && defined(_LP64) -static __inline__ uint64_t -ROTATE_LEFT(uint64_t value, uint32_t n) -{ - uint32_t t32; - - t32 = (uint32_t)value; - return ((t32 << n) | (t32 >> (32 - n))); -} - -#else - -#define ROTATE_LEFT(x, n) \ - (((x) << (n)) | ((x) >> ((sizeof (x) * NBBY)-(n)))) - -#endif - - /* * SHA1Init() * @@ -269,6 +247,27 @@ typedef uint32_t sha1word; #define W(n) w_ ## n #endif /* !defined(W_ARRAY) */ +/* + * ROTATE_LEFT rotates x left n bits. + */ + +#if defined(__GNUC__) && defined(_LP64) +static __inline__ uint64_t +ROTATE_LEFT(uint64_t value, uint32_t n) +{ + uint32_t t32; + + t32 = (uint32_t)value; + return ((t32 << n) | (t32 >> (32 - n))); +} + +#else + +#define ROTATE_LEFT(x, n) \ + (((x) << (n)) | ((x) >> ((sizeof (x) * NBBY)-(n)))) + +#endif + #if defined(__sparc) diff --git a/module/icp/include/sys/modctl.h b/module/icp/include/sys/modctl.h index a0b94ef39d..6c26ad618c 100644 --- a/module/icp/include/sys/modctl.h +++ b/module/icp/include/sys/modctl.h @@ -398,7 +398,7 @@ typedef struct modctl { char mod_delay_unload; /* deferred unload */ struct modctl_list *mod_requisites; /* mods this one depends on. */ - void *__unused; /* NOTE: reuse (same size) is OK, */ + void *____unused; /* NOTE: reuse (same size) is OK, */ /* deletion causes mdb.vs.core issues */ int mod_loadcnt; /* number of times mod was loaded */ int mod_nenabled; /* # of enabled DTrace probes in mod */