diff options
author | Joseph Myers <joseph@codesourcery.com> | 2015-10-29 12:46:22 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2015-10-29 12:46:22 +0000 |
commit | dbb7600658d8ea633083ee99572622b04ef23a3f (patch) | |
tree | 41d2e39e7b943c26da29f40ce2307dcb8bf4451e | |
parent | 58acfe6fa7b1e28ec15ce59c5a90fe36a9c11a85 (diff) | |
download | glibc-dbb7600658d8ea633083ee99572622b04ef23a3f.zip glibc-dbb7600658d8ea633083ee99572622b04ef23a3f.tar.gz glibc-dbb7600658d8ea633083ee99572622b04ef23a3f.tar.bz2 |
Use max_align_t from <stddef.h>.
Now that we build with -std=gnu11 and can rely on a compiler providing
max_align_t in <stddef.h>, we no longer need our own version
libc_max_align_t. This patch removes it and replaces the single user
with a use of max_align_t.
Tested for x86_64 and x86 (testsuite, and that installed stripped
shared libraries are unchanged by the patch for x86_64; for x86, I see
some code reordering of no significance).
* include/libc-internal.h (libc_max_align_t): Remove typedef.
* include/scratch_buffer.h: Include <stddef.h> instead of
<libc-internal.h>.
(struct scratch_buffer): Use max_align_t instead of
libc_max_align_t.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | include/libc-internal.h | 9 | ||||
-rw-r--r-- | include/scratch_buffer.h | 5 |
3 files changed, 10 insertions, 12 deletions
@@ -1,3 +1,11 @@ +2015-10-29 Joseph Myers <joseph@codesourcery.com> + + * include/libc-internal.h (libc_max_align_t): Remove typedef. + * include/scratch_buffer.h: Include <stddef.h> instead of + <libc-internal.h>. + (struct scratch_buffer): Use max_align_t instead of + libc_max_align_t. + 2015-10-29 Florian Weimer <fweimer@redhat.com> * elf/dl-fini.c (_dl_fini): Rewrite to use variable-length array diff --git a/include/libc-internal.h b/include/libc-internal.h index 65a2a56..7a185bb 100644 --- a/include/libc-internal.h +++ b/include/libc-internal.h @@ -111,13 +111,4 @@ extern __typeof (__profile_frequency) __profile_frequency attribute_hidden; #define DIAG_IGNORE_NEEDS_COMMENT(version, option) \ _Pragma (_DIAG_STR (GCC diagnostic ignored option)) -/* This mirrors the C11 max_align_t type provided by GCC, but it is - also available in C99 mode. The aligned attributes are required - because some ABIs have reduced alignment requirements for struct - and union members. */ -typedef struct { - long long ll __attribute__ ((__aligned__ (__alignof__ (long long)))); - long double ld __attribute__ ((__aligned__ (__alignof__ (long double)))); -} libc_max_align_t; - #endif /* _LIBC_INTERNAL */ diff --git a/include/scratch_buffer.h b/include/scratch_buffer.h index 6f92694..1a50cdf 100644 --- a/include/scratch_buffer.h +++ b/include/scratch_buffer.h @@ -58,17 +58,16 @@ */ #include <stdbool.h> +#include <stddef.h> #include <stdlib.h> -#include <libc-internal.h> - /* Scratch buffer. Must be initialized with scratch_buffer_init before its use. */ struct scratch_buffer { void *data; /* Pointer to the beginning of the scratch area. */ size_t length; /* Allocated space at the data pointer, in bytes. */ char __space[1024] - __attribute__ ((aligned (__alignof__ (libc_max_align_t)))); + __attribute__ ((aligned (__alignof__ (max_align_t)))); }; /* Initializes *BUFFER so that BUFFER->data points to BUFFER->__space |