* lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: Include <stdalign.h> and <stdint.h>. Do not include <stddef.h>. Do not include <stdlib.h> twice, in md4.c. (UNALIGNED_P): Simplify by using alignof. Use uintptr_t, not size_t, because we are accessing a pointer's bit-pattern, not a size. * modules/crypto/gc-md4 (Depends-on): Add stdalign. * modules/crypto/gc-md5, modules/crypto/gc-sha1, modules/crypto/md4: * modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256: * modules/crypto/sha512: Likewise. --- ChangeLog | 11 +++++++++++ lib/md4.c | 13 +++---------- lib/md5.c | 6 +++--- lib/sha1.c | 6 +++--- lib/sha256.c | 6 +++--- lib/sha512.c | 6 +++--- modules/crypto/gc-md4 | 1 + modules/crypto/gc-md5 | 1 + modules/crypto/gc-sha1 | 1 + modules/crypto/md4 | 1 + modules/crypto/md5 | 1 + modules/crypto/sha1 | 1 + modules/crypto/sha256 | 1 + modules/crypto/sha512 | 1 + 14 files changed, 34 insertions(+), 22 deletions(-)
diff --git a/ChangeLog b/ChangeLog index 379bd4b..7aafff7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,17 @@ (alignof): Remove. * modules/argp (Depends-on): Add stdalign. + crypto libraries: use stdalign + * lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: + Include <stdalign.h> and <stdint.h>. Do not include <stddef.h>. + Do not include <stdlib.h> twice, in md4.c. + (UNALIGNED_P): Simplify by using alignof. Use uintptr_t, not size_t, + because we are accessing a pointer's bit-pattern, not a size. + * modules/crypto/gc-md4 (Depends-on): Add stdalign. + * modules/crypto/gc-md5, modules/crypto/gc-sha1, modules/crypto/md4: + * modules/crypto/md5, modules/crypto/sha1, modules/crypto/sha256: + * modules/crypto/sha512: Likewise. + 2011-10-15 Bruno Haible <br...@clisp.org> xstrtoll: Fix compilation failure. diff --git a/lib/md4.c b/lib/md4.c index aaa82e2..6807a83 100644 --- a/lib/md4.c +++ b/lib/md4.c @@ -24,8 +24,8 @@ #include "md4.h" -#include <stddef.h> -#include <stdlib.h> +#include <stdalign.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> @@ -239,14 +239,7 @@ md4_process_bytes (const void *buffer, size_t len, struct md4_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned - /* To check alignment gcc has an appropriate operator. Other - compilers don't. */ -# if __GNUC__ >= 2 -# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0) -# else -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) -# endif +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { diff --git a/lib/md5.c b/lib/md5.c index d37ca72..7d575ac 100644 --- a/lib/md5.c +++ b/lib/md5.c @@ -24,7 +24,8 @@ #include "md5.h" -#include <stddef.h> +#include <stdalign.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> #include <sys/types.h> @@ -254,8 +255,7 @@ md5_process_bytes (const void *buffer, size_t len, struct md5_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { diff --git a/lib/sha1.c b/lib/sha1.c index 7ec950e..828810b 100644 --- a/lib/sha1.c +++ b/lib/sha1.c @@ -26,7 +26,8 @@ #include "sha1.h" -#include <stddef.h> +#include <stdalign.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> @@ -241,8 +242,7 @@ sha1_process_bytes (const void *buffer, size_t len, struct sha1_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { diff --git a/lib/sha256.c b/lib/sha256.c index c125542..aa529c6 100644 --- a/lib/sha256.c +++ b/lib/sha256.c @@ -24,7 +24,8 @@ #include "sha256.h" -#include <stddef.h> +#include <stdalign.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> @@ -373,8 +374,7 @@ sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx) if (len >= 64) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (uint32_t) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (uint32_t) != 0) if (UNALIGNED_P (buffer)) while (len > 64) { diff --git a/lib/sha512.c b/lib/sha512.c index c0bed95..1c5117f 100644 --- a/lib/sha512.c +++ b/lib/sha512.c @@ -24,7 +24,8 @@ #include "sha512.h" -#include <stddef.h> +#include <stdalign.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> @@ -381,8 +382,7 @@ sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx) if (len >= 128) { #if !_STRING_ARCH_unaligned -# define alignof(type) offsetof (struct { char c; type x; }, x) -# define UNALIGNED_P(p) (((size_t) p) % alignof (u64) != 0) +# define UNALIGNED_P(p) ((uintptr_t) (p) % alignof (u64) != 0) if (UNALIGNED_P (buffer)) while (len > 128) { diff --git a/modules/crypto/gc-md4 b/modules/crypto/gc-md4 index cdc6005..e527db5 100644 --- a/modules/crypto/gc-md4 +++ b/modules/crypto/gc-md4 @@ -8,6 +8,7 @@ lib/md4.c m4/md4.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/gc-md5 b/modules/crypto/gc-md5 index a1075b8..efa1c18 100644 --- a/modules/crypto/gc-md5 +++ b/modules/crypto/gc-md5 @@ -8,6 +8,7 @@ lib/md5.c m4/md5.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/gc-sha1 b/modules/crypto/gc-sha1 index b9efdda..4ee0a22 100644 --- a/modules/crypto/gc-sha1 +++ b/modules/crypto/gc-sha1 @@ -8,6 +8,7 @@ lib/sha1.c m4/sha1.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/md4 b/modules/crypto/md4 index 0a4d061..e0b2b04 100644 --- a/modules/crypto/md4 +++ b/modules/crypto/md4 @@ -7,6 +7,7 @@ lib/md4.c m4/md4.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/md5 b/modules/crypto/md5 index 8cad978..4ae0c57 100644 --- a/modules/crypto/md5 +++ b/modules/crypto/md5 @@ -7,6 +7,7 @@ lib/md5.c m4/md5.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha1 b/modules/crypto/sha1 index 2a347b0..8d00f31 100644 --- a/modules/crypto/sha1 +++ b/modules/crypto/sha1 @@ -7,6 +7,7 @@ lib/sha1.c m4/sha1.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha256 b/modules/crypto/sha256 index a5732bd..f3f1d64 100644 --- a/modules/crypto/sha256 +++ b/modules/crypto/sha256 @@ -7,6 +7,7 @@ lib/sha256.c m4/sha256.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha512 b/modules/crypto/sha512 index 9d871d4..a5065c4 100644 --- a/modules/crypto/sha512 +++ b/modules/crypto/sha512 @@ -7,6 +7,7 @@ lib/sha512.c m4/sha512.m4 Depends-on: +stdalign stdint u64 -- 1.7.4.4