diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2004-07-28 20:09:39 +0000 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2004-07-28 20:09:39 +0000 |
commit | 94185e124d75a9d732de29fa642123eaf8605e0c (patch) | |
tree | 0bd000dfad72a6b12284b2af641db7a71685824d | |
parent | 4b7668c12a014b731213c5f20cebce91df25e977 (diff) | |
download | coreutils-94185e124d75a9d732de29fa642123eaf8605e0c.tar.xz |
Don't include <sys/types.h> or <stdlib.h>; <stddef.h>
suffices with C89 or better.
(alignof): New macro, portable to all C89 hosts.
(UNALIGNED): Use it. Use uintptr_t if available, and assume
everything is unaligned otherwise; this is more portable than
assuming 'unsigned long int' will always work.
-rw-r--r-- | lib/md5.c | 15 | ||||
-rw-r--r-- | lib/sha1.c | 15 |
2 files changed, 12 insertions, 18 deletions
@@ -1,6 +1,6 @@ /* md5.c - Functions to compute MD5 message digest of files or memory blocks according to the definition of MD5 in RFC 1321 from April 1992. - Copyright (C) 1995, 1996, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 2001, 2003, 2004 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. Bugs can be reported to bug-glibc@prep.ai.mit.edu. @@ -26,9 +26,7 @@ #include "md5.h" -#include <sys/types.h> - -#include <stdlib.h> +#include <stddef.h> #include <string.h> #include "unlocked-io.h" @@ -246,12 +244,11 @@ md5_process_bytes (const void *buffer, size_t len, struct md5_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) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) +# define alignof(type) offsetof (struct { char c; type x; }, x) +# ifdef UINTPTR_MAX +# define UNALIGNED_P(p) (((uintptr_t) p) % alignof (md5_uint32) != 0) # else -# define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) +# define UNALIGNED_P(p) 1 # endif if (UNALIGNED_P (buffer)) while (len > 64) diff --git a/lib/sha1.c b/lib/sha1.c index 52766bac5..d2647877e 100644 --- a/lib/sha1.c +++ b/lib/sha1.c @@ -1,7 +1,7 @@ /* sha.c - Functions to compute SHA1 message digest of files or memory blocks according to the NIST specification FIPS-180-1. - Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc. + Copyright (C) 2000, 2001, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -28,9 +28,7 @@ #include "sha1.h" -#include <sys/types.h> - -#include <stdlib.h> +#include <stddef.h> #include <string.h> #include "unlocked-io.h" @@ -244,12 +242,11 @@ sha_process_bytes (const void *buffer, size_t len, struct sha_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) (((md5_uintptr) p) % __alignof__ (md5_uint32) != 0) +# define alignof(type) offsetof (struct { char c; type x; }, x) +# ifdef UINTPTR_MAX +# define UNALIGNED_P(p) (((uintptr_t) p) % alignof (md5_uint32) != 0) # else -# define UNALIGNED_P(p) (((md5_uintptr) p) % sizeof (md5_uint32) != 0) +# define UNALIGNED_P(p) 1 # endif if (UNALIGNED_P (buffer)) while (len > 64) |