# HG changeset patch # User Paul Eggert # Date 1318810667 25200 # Node ID d8fd2f096b83365eb336dc63bc22486b28ec3ad7 # Parent 3c249f388e463ace2a2de8ed4997de07671c31f1 crypto libraries: use stdalign * lib/md4.c, lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c: Include and . Do not include . Do not include 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. diff --git a/ChangeLog b/ChangeLog --- 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 and . Do not include . + Do not include 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-27 Bruno Haible raise test: Avoid a test failure on Linux/MIPS. diff --git a/lib/md4.c b/lib/md4.c --- a/lib/md4.c +++ b/lib/md4.c @@ -24,8 +24,8 @@ #include "md4.h" -#include -#include +#include +#include #include #include #include @@ -239,14 +239,7 @@ 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 --- a/lib/md5.c +++ b/lib/md5.c @@ -24,7 +24,8 @@ #include "md5.h" -#include +#include +#include #include #include #include @@ -254,8 +255,7 @@ 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 --- a/lib/sha1.c +++ b/lib/sha1.c @@ -26,7 +26,8 @@ #include "sha1.h" -#include +#include +#include #include #include @@ -241,8 +242,7 @@ 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 --- a/lib/sha256.c +++ b/lib/sha256.c @@ -24,7 +24,8 @@ #include "sha256.h" -#include +#include +#include #include #include @@ -373,8 +374,7 @@ 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 --- a/lib/sha512.c +++ b/lib/sha512.c @@ -24,7 +24,8 @@ #include "sha512.h" -#include +#include +#include #include #include @@ -381,8 +382,7 @@ 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 --- a/modules/crypto/gc-md4 +++ b/modules/crypto/gc-md4 @@ -8,6 +8,7 @@ m4/md4.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/gc-md5 b/modules/crypto/gc-md5 --- a/modules/crypto/gc-md5 +++ b/modules/crypto/gc-md5 @@ -8,6 +8,7 @@ m4/md5.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/gc-sha1 b/modules/crypto/gc-sha1 --- a/modules/crypto/gc-sha1 +++ b/modules/crypto/gc-sha1 @@ -8,6 +8,7 @@ m4/sha1.m4 Depends-on: +stdalign stdint crypto/gc diff --git a/modules/crypto/md4 b/modules/crypto/md4 --- a/modules/crypto/md4 +++ b/modules/crypto/md4 @@ -7,6 +7,7 @@ m4/md4.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/md5 b/modules/crypto/md5 --- a/modules/crypto/md5 +++ b/modules/crypto/md5 @@ -7,6 +7,7 @@ m4/md5.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha1 b/modules/crypto/sha1 --- a/modules/crypto/sha1 +++ b/modules/crypto/sha1 @@ -7,6 +7,7 @@ m4/sha1.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha256 b/modules/crypto/sha256 --- a/modules/crypto/sha256 +++ b/modules/crypto/sha256 @@ -7,6 +7,7 @@ m4/sha256.m4 Depends-on: +stdalign stdint configure.ac: diff --git a/modules/crypto/sha512 b/modules/crypto/sha512 --- a/modules/crypto/sha512 +++ b/modules/crypto/sha512 @@ -7,6 +7,7 @@ m4/sha512.m4 Depends-on: +stdalign stdint u64