yann@748: Propagate the patch from base glibc that changes lll_lock_t into a plain int, yann@748: without using a typedef, as glibc-2.7 now does. yann@748: yann@748: diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h yann@748: --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2006-08-04 20:56:15.000000000 +0200 yann@748: +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2008-07-28 23:49:29.000000000 +0200 yann@748: @@ -260,9 +260,6 @@ yann@748: /* Our internal lock implementation is identical to the binary-compatible yann@748: mutex implementation. */ yann@748: yann@748: -/* Type for lock object. */ yann@748: -typedef int lll_lock_t; yann@748: - yann@748: /* Initializers for lock. */ yann@748: #define LLL_LOCK_INITIALIZER (0) yann@748: #define LLL_LOCK_INITIALIZER_LOCKED (1) yann@748: diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c yann@748: --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c 2006-07-14 15:51:24.000000000 +0200 yann@748: +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c 2008-07-28 23:49:56.000000000 +0200 yann@748: @@ -25,7 +25,7 @@ yann@748: yann@748: yann@748: void yann@748: -__lll_lock_wait (lll_lock_t *futex) yann@748: +__lll_lock_wait (int *futex) yann@748: { yann@748: do yann@748: { yann@748: @@ -38,7 +38,7 @@ yann@748: yann@748: yann@748: int yann@748: -__lll_timedlock_wait (lll_lock_t *futex, const struct timespec *abstime) yann@748: +__lll_timedlock_wait (int *futex, const struct timespec *abstime) yann@748: { yann@748: /* Reject invalid timeouts. */ yann@748: if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000) yann@748: @@ -78,7 +78,7 @@ yann@748: /* These don't get included in libc.so */ yann@748: #ifdef IS_IN_libpthread yann@748: int yann@748: -lll_unlock_wake_cb (lll_lock_t *futex) yann@748: +lll_unlock_wake_cb (int *futex) yann@748: { yann@748: int val = atomic_exchange_rel (futex, 0); yann@748: yann@748: diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h yann@748: --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h 2006-09-07 18:34:43.000000000 +0200 yann@748: +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h 2008-07-28 23:50:54.000000000 +0200 yann@748: @@ -43,11 +43,6 @@ yann@748: /* Initialize locks to zero. */ yann@748: #define LLL_MUTEX_LOCK_INITIALIZER (0) yann@748: yann@748: - yann@748: -/* Type for lock object. */ yann@748: -typedef int lll_lock_t; yann@748: - yann@748: - yann@748: #define lll_futex_wait(futexp, val) \ yann@748: ({ \ yann@748: INTERNAL_SYSCALL_DECL (__err); \ yann@748: @@ -108,7 +103,7 @@ yann@748: }) yann@748: yann@748: static inline int __attribute__((always_inline)) yann@748: -__lll_mutex_trylock(lll_lock_t *futex) yann@748: +__lll_mutex_trylock(int *futex) yann@748: { yann@748: return atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0; yann@748: } yann@748: @@ -124,17 +119,17 @@ yann@748: yann@748: yann@748: static inline int __attribute__((always_inline)) yann@748: -__lll_mutex_cond_trylock(lll_lock_t *futex) yann@748: +__lll_mutex_cond_trylock(int *futex) yann@748: { yann@748: return atomic_compare_and_exchange_val_acq (futex, 2, 0) != 0; yann@748: } yann@748: #define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock)) yann@748: yann@748: yann@748: -extern void __lll_lock_wait (lll_lock_t *futex) attribute_hidden; yann@748: +extern void __lll_lock_wait (int *futex) attribute_hidden; yann@748: yann@748: static inline void __attribute__((always_inline)) yann@748: -__lll_mutex_lock(lll_lock_t *futex) yann@748: +__lll_mutex_lock(int *futex) yann@748: { yann@748: if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) yann@748: __lll_lock_wait (futex); yann@748: @@ -155,7 +150,7 @@ yann@748: __lll_robust_mutex_lock (&(futex), id) yann@748: yann@748: static inline void __attribute__ ((always_inline)) yann@748: -__lll_mutex_cond_lock (lll_lock_t *futex) yann@748: +__lll_mutex_cond_lock (int *futex) yann@748: { yann@748: if (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0) yann@748: __lll_lock_wait (futex); yann@748: @@ -167,13 +162,13 @@ yann@748: __lll_robust_mutex_lock (&(futex), (id) | FUTEX_WAITERS) yann@748: yann@748: yann@748: -extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *) yann@748: +extern int __lll_timedlock_wait (int *futex, const struct timespec *) yann@748: attribute_hidden; yann@748: extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *) yann@748: attribute_hidden; yann@748: yann@748: static inline int __attribute__ ((always_inline)) yann@748: -__lll_mutex_timedlock (lll_lock_t *futex, const struct timespec *abstime) yann@748: +__lll_mutex_timedlock (int *futex, const struct timespec *abstime) yann@748: { yann@748: int result = 0; yann@748: if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0) yann@748: @@ -197,7 +192,7 @@ yann@748: yann@748: yann@748: static inline void __attribute__ ((always_inline)) yann@748: -__lll_mutex_unlock (lll_lock_t *futex) yann@748: +__lll_mutex_unlock (int *futex) yann@748: { yann@748: int val = atomic_exchange_rel (futex, 0); yann@748: if (__builtin_expect (val > 1, 0)) yann@748: @@ -218,7 +213,7 @@ yann@748: yann@748: yann@748: static inline void __attribute__ ((always_inline)) yann@748: -__lll_mutex_unlock_force (lll_lock_t *futex) yann@748: +__lll_mutex_unlock_force (int *futex) yann@748: { yann@748: (void) atomic_exchange_rel (futex, 0); yann@748: lll_futex_wake (futex, 1); yann@748: @@ -239,7 +234,7 @@ yann@748: #define THREAD_INIT_LOCK(PD, LOCK) \ yann@748: (PD)->LOCK = LLL_LOCK_INITIALIZER yann@748: yann@748: -extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden; yann@748: +extern int lll_unlock_wake_cb (int *__futex) attribute_hidden; yann@748: yann@748: /* The states of a lock are: yann@748: 0 - untaken yann@748: diff -durN glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h yann@748: --- glibc-ports-2.6.1.orig/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h 2006-08-04 20:54:56.000000000 +0200 yann@748: +++ glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h 2008-07-28 23:51:14.000000000 +0200 yann@748: @@ -227,9 +227,6 @@ yann@748: /* Our internal lock implementation is identical to the binary-compatible yann@748: mutex implementation. */ yann@748: yann@748: -/* Type for lock object. */ yann@748: -typedef int lll_lock_t; yann@748: - yann@748: /* Initializers for lock. */ yann@748: #define LLL_LOCK_INITIALIZER (0) yann@748: #define LLL_LOCK_INITIALIZER_LOCKED (1)