mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-28 20:23:35 +08:00
Add correct aligment to pthread_*_t structures.
In the switch to NPTL the pthrad_mutex_t, pthread_cond_t, and pthread_rwlock_t structures were made binary compatible with the Linuxthread versions. However, their aligment when embedded in other structures was changed. When rebuilding libstdc++ this was detected, and the following changes return the structures to their original Linuxthreads alignments. 2009-11-25 Carlos O'Donell <carlos@codesourcery.com> * sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h: Use correct alignment for pthread_mutex_t, pthread_cond_t, and pthread_rwlock_t.
This commit is contained in:
parent
8fe357d5c6
commit
b80ec53691
@ -1,3 +1,9 @@
|
||||
2009-11-25 Carlos O'Donell <carlos@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/hppa/nptl/bits/pthreadtypes.h:
|
||||
Use correct alignment for pthread_mutex_t, pthread_cond_t,
|
||||
and pthread_rwlock_t.
|
||||
|
||||
2009-11-22 Carlos O'Donell <carlos@codesourcery.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Avoid warnings
|
||||
|
@ -64,7 +64,7 @@ typedef union
|
||||
{
|
||||
struct __pthread_mutex_s
|
||||
{
|
||||
int __lock;
|
||||
int __lock __attribute__ ((aligned(16)));
|
||||
unsigned int __count;
|
||||
int __owner;
|
||||
/* KIND must stay at this position in the structure to maintain
|
||||
@ -113,7 +113,7 @@ typedef union
|
||||
start of the 4-word lock structure, the next four words
|
||||
are set all to 1 by the Linuxthreads
|
||||
PTHREAD_COND_INITIALIZER. */
|
||||
int __lock;
|
||||
int __lock __attribute__ ((aligned(16)));
|
||||
/* Tracks the initialization of this structure:
|
||||
0 initialized with NPTL PTHREAD_COND_INITIALIZER.
|
||||
1 initialized with Linuxthreads PTHREAD_COND_INITIALIZER.
|
||||
@ -161,7 +161,7 @@ typedef union
|
||||
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];
|
||||
int __compat_padding[4] __attribute__ ((aligned(16)));
|
||||
int __lock;
|
||||
unsigned int __nr_readers;
|
||||
unsigned int __readers_wakeup;
|
||||
|
Loading…
Reference in New Issue
Block a user