diff options
author | Rich Felker <dalias@aerifal.cx> | 2015-03-04 11:33:26 -0500 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2015-03-04 11:33:26 -0500 |
commit | e7b9887e8b65253087ab0b209dc8dd85c9f09614 (patch) | |
tree | da101017e358977eeef301ef8f24bf0326a4aa33 | |
parent | 064898cfe2233526e7639c21e780695be5ece257 (diff) | |
download | musl-e7b9887e8b65253087ab0b209dc8dd85c9f09614.tar.gz musl-e7b9887e8b65253087ab0b209dc8dd85c9f09614.tar.xz musl-e7b9887e8b65253087ab0b209dc8dd85c9f09614.zip |
fix x32 pthread type definitions
the previous definitions were copied from x86_64. not only did they fail to match the ABI sizes; they also wrongly encoded an assumption that long/pointer types are twice as large as int.
-rw-r--r-- | arch/x32/bits/alltypes.h.in | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/x32/bits/alltypes.h.in b/arch/x32/bits/alltypes.h.in index 38230c42..4f218817 100644 --- a/arch/x32/bits/alltypes.h.in +++ b/arch/x32/bits/alltypes.h.in @@ -22,10 +22,10 @@ TYPEDEF struct { long long __ll; long double __ld; } max_align_t; TYPEDEF long long time_t; TYPEDEF long long suseconds_t; -TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; unsigned long __s[7]; } __u; } pthread_attr_t; -TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } pthread_mutex_t; -TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } mtx_t; -TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } pthread_cond_t; -TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } cnd_t; -TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; void *__p[7]; } __u; } pthread_rwlock_t; -TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; void *__p[4]; } __u; } pthread_barrier_t; +TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; unsigned long __s[8]; } __u; } pthread_attr_t; +TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; volatile void *volatile __p[8]; } __u; } pthread_mutex_t; +TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; volatile void *volatile __p[8]; } __u; } mtx_t; +TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } pthread_cond_t; +TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[12]; } __u; } cnd_t; +TYPEDEF struct { union { int __i[11]; volatile int __vi[11]; void *__p[11]; } __u; } pthread_rwlock_t; +TYPEDEF struct { union { int __i[5]; volatile int __vi[5]; void *__p[5]; } __u; } pthread_barrier_t; |