mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-05 12:40:55 +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>
|
2009-11-22 Carlos O'Donell <carlos@codesourcery.com>
|
||||||
|
|
||||||
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Avoid warnings
|
* sysdeps/unix/sysv/linux/hppa/bits/atomic.h: Avoid warnings
|
||||||
|
@ -64,7 +64,7 @@ typedef union
|
|||||||
{
|
{
|
||||||
struct __pthread_mutex_s
|
struct __pthread_mutex_s
|
||||||
{
|
{
|
||||||
int __lock;
|
int __lock __attribute__ ((aligned(16)));
|
||||||
unsigned int __count;
|
unsigned int __count;
|
||||||
int __owner;
|
int __owner;
|
||||||
/* KIND must stay at this position in the structure to maintain
|
/* 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
|
start of the 4-word lock structure, the next four words
|
||||||
are set all to 1 by the Linuxthreads
|
are set all to 1 by the Linuxthreads
|
||||||
PTHREAD_COND_INITIALIZER. */
|
PTHREAD_COND_INITIALIZER. */
|
||||||
int __lock;
|
int __lock __attribute__ ((aligned(16)));
|
||||||
/* Tracks the initialization of this structure:
|
/* Tracks the initialization of this structure:
|
||||||
0 initialized with NPTL PTHREAD_COND_INITIALIZER.
|
0 initialized with NPTL PTHREAD_COND_INITIALIZER.
|
||||||
1 initialized with Linuxthreads 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
|
start of the 4-word 16-byte aligned lock structure. The
|
||||||
next four words are all set to 1 by the Linuxthreads
|
next four words are all set to 1 by the Linuxthreads
|
||||||
PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */
|
PTHREAD_RWLOCK_INITIALIZER. We ignore them in NPTL. */
|
||||||
int __compat_padding[4];
|
int __compat_padding[4] __attribute__ ((aligned(16)));
|
||||||
int __lock;
|
int __lock;
|
||||||
unsigned int __nr_readers;
|
unsigned int __nr_readers;
|
||||||
unsigned int __readers_wakeup;
|
unsigned int __readers_wakeup;
|
||||||
|
Loading…
Reference in New Issue
Block a user