mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-25 22:40:05 +00:00
Use 3 bytes for __pad1 in pthread_rwlock_t for x32
Since long is 4 bytes for x32, we should use 3 bytes for __pad1 when a long __pad1 is replaced by a byte __rwelision and __pad1. * sysdeps/x86/nptl/bits/pthreadtypes.h (pthread_rwlock_t): Use 3 bytes for __pad1 for x32. (__PTHREAD_RWLOCK_ELISION_EXTRA): Likewise.
This commit is contained in:
parent
5c74e47cd6
commit
c8daec5c7c
@ -1,3 +1,9 @@
|
|||||||
|
2014-06-19 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
* sysdeps/x86/nptl/bits/pthreadtypes.h (pthread_rwlock_t): Use
|
||||||
|
3 bytes for __pad1 for x32.
|
||||||
|
(__PTHREAD_RWLOCK_ELISION_EXTRA): Likewise.
|
||||||
|
|
||||||
2014-06-19 Ling Ma <ling.ml@alibaba-inc.com>
|
2014-06-19 Ling Ma <ling.ml@alibaba-inc.com>
|
||||||
H.J. Lu <hongjiu.lu@intel.com>
|
H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
|
@ -185,12 +185,17 @@ typedef union
|
|||||||
int __writer;
|
int __writer;
|
||||||
int __shared;
|
int __shared;
|
||||||
signed char __rwelision;
|
signed char __rwelision;
|
||||||
|
# ifdef __ILP32__
|
||||||
|
unsigned char __pad1[3];
|
||||||
|
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0 }
|
||||||
|
# else
|
||||||
unsigned char __pad1[7];
|
unsigned char __pad1[7];
|
||||||
|
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, { 0, 0, 0, 0, 0, 0, 0 }
|
||||||
|
# endif
|
||||||
unsigned long int __pad2;
|
unsigned long int __pad2;
|
||||||
/* FLAGS must stay at this position in the structure to maintain
|
/* FLAGS must stay at this position in the structure to maintain
|
||||||
binary compatibility. */
|
binary compatibility. */
|
||||||
unsigned int __flags;
|
unsigned int __flags;
|
||||||
# define __PTHREAD_RWLOCK_ELISION_EXTRA 0, {0, 0, 0, 0, 0, 0, 0 }
|
|
||||||
# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
|
# define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
|
||||||
} __data;
|
} __data;
|
||||||
# else
|
# else
|
||||||
|
Loading…
Reference in New Issue
Block a user