mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-25 04:01:10 +00:00
hppa: Drop 16-byte pthread lock alignment
Linux threads were removed about 12 years ago and the current nptl implementation only requires 4-byte alignment for pthread locks. The 16-byte alignment causes various issues. For example in building ignition-msgs, we have: /usr/include/google/protobuf/map.h:124:37: error: static assertion failed 124 | static_assert(alignof(value_type) <= 8, ""); | ~~~~~~~~~~~~~~~~~~~~^~~~ This is caused by the 16-byte pthread lock alignment. Signed-off-by: John David Anglin <dave.anglin@bell.net>
This commit is contained in:
parent
1b5e65ef6a
commit
ab991a3d1b
@ -40,7 +40,7 @@
|
||||
#define __SIZEOF_PTHREAD_RWLOCK_T 64
|
||||
#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
|
||||
|
||||
#define __LOCK_ALIGNMENT __attribute__ ((__aligned__(16)))
|
||||
#define __LOCK_ALIGNMENT
|
||||
#define __ONCE_ALIGNMENT
|
||||
|
||||
#endif /* bits/pthreadtypes.h */
|
||||
|
@ -25,8 +25,14 @@ struct __pthread_rwlock_arch_t
|
||||
/* In the old Linuxthreads pthread_rwlock_t, this is the
|
||||
start of the 4-word 16-byte aligned lock structure. The
|
||||
next four words are all set to 1 by the Linuxthreads
|
||||
PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */
|
||||
int __compat_padding[4] __attribute__ ((__aligned__(16)));
|
||||
PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL.
|
||||
|
||||
The 16-byte aligned lock stucture causes various pthread
|
||||
structures to be over aligned. This causes some builds
|
||||
to fail which assume a maximum alignment of 8 bytes.
|
||||
Linuxthreads has been removed for 12 years, so drop
|
||||
alignment of lock structure. */
|
||||
int __compat_padding[4];
|
||||
unsigned int __readers;
|
||||
unsigned int __writers;
|
||||
unsigned int __wrphase_futex;
|
||||
|
Loading…
Reference in New Issue
Block a user