yann@748
|
1 |
Propagate the patch from base glibc that changes lll_lock_t into a plain int,
|
yann@748
|
2 |
without using a typedef, as glibc-2.7 now does.
|
yann@748
|
3 |
|
yann@955
|
4 |
diff -durN glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
|
yann@955
|
5 |
--- glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2006-08-04 20:56:15.000000000 +0200
|
yann@955
|
6 |
+++ glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h 2008-07-28 23:49:29.000000000 +0200
|
yann@748
|
7 |
@@ -260,9 +260,6 @@
|
yann@748
|
8 |
/* Our internal lock implementation is identical to the binary-compatible
|
yann@748
|
9 |
mutex implementation. */
|
yann@748
|
10 |
|
yann@748
|
11 |
-/* Type for lock object. */
|
yann@748
|
12 |
-typedef int lll_lock_t;
|
yann@748
|
13 |
-
|
yann@748
|
14 |
/* Initializers for lock. */
|
yann@748
|
15 |
#define LLL_LOCK_INITIALIZER (0)
|
yann@748
|
16 |
#define LLL_LOCK_INITIALIZER_LOCKED (1)
|
yann@955
|
17 |
diff -durN glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c
|
yann@955
|
18 |
--- glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c 2006-07-14 15:51:24.000000000 +0200
|
yann@955
|
19 |
+++ glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.c 2008-07-28 23:49:56.000000000 +0200
|
yann@748
|
20 |
@@ -25,7 +25,7 @@
|
yann@748
|
21 |
|
yann@748
|
22 |
|
yann@748
|
23 |
void
|
yann@748
|
24 |
-__lll_lock_wait (lll_lock_t *futex)
|
yann@748
|
25 |
+__lll_lock_wait (int *futex)
|
yann@748
|
26 |
{
|
yann@748
|
27 |
do
|
yann@748
|
28 |
{
|
yann@748
|
29 |
@@ -38,7 +38,7 @@
|
yann@748
|
30 |
|
yann@748
|
31 |
|
yann@748
|
32 |
int
|
yann@748
|
33 |
-__lll_timedlock_wait (lll_lock_t *futex, const struct timespec *abstime)
|
yann@748
|
34 |
+__lll_timedlock_wait (int *futex, const struct timespec *abstime)
|
yann@748
|
35 |
{
|
yann@748
|
36 |
/* Reject invalid timeouts. */
|
yann@748
|
37 |
if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
|
yann@748
|
38 |
@@ -78,7 +78,7 @@
|
yann@748
|
39 |
/* These don't get included in libc.so */
|
yann@748
|
40 |
#ifdef IS_IN_libpthread
|
yann@748
|
41 |
int
|
yann@748
|
42 |
-lll_unlock_wake_cb (lll_lock_t *futex)
|
yann@748
|
43 |
+lll_unlock_wake_cb (int *futex)
|
yann@748
|
44 |
{
|
yann@748
|
45 |
int val = atomic_exchange_rel (futex, 0);
|
yann@748
|
46 |
|
yann@955
|
47 |
diff -durN glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h
|
yann@955
|
48 |
--- glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h 2006-09-07 18:34:43.000000000 +0200
|
yann@955
|
49 |
+++ glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/hppa/nptl/lowlevellock.h 2008-07-28 23:50:54.000000000 +0200
|
yann@748
|
50 |
@@ -43,11 +43,6 @@
|
yann@748
|
51 |
/* Initialize locks to zero. */
|
yann@748
|
52 |
#define LLL_MUTEX_LOCK_INITIALIZER (0)
|
yann@748
|
53 |
|
yann@748
|
54 |
-
|
yann@748
|
55 |
-/* Type for lock object. */
|
yann@748
|
56 |
-typedef int lll_lock_t;
|
yann@748
|
57 |
-
|
yann@748
|
58 |
-
|
yann@748
|
59 |
#define lll_futex_wait(futexp, val) \
|
yann@748
|
60 |
({ \
|
yann@748
|
61 |
INTERNAL_SYSCALL_DECL (__err); \
|
yann@748
|
62 |
@@ -108,7 +103,7 @@
|
yann@748
|
63 |
})
|
yann@748
|
64 |
|
yann@748
|
65 |
static inline int __attribute__((always_inline))
|
yann@748
|
66 |
-__lll_mutex_trylock(lll_lock_t *futex)
|
yann@748
|
67 |
+__lll_mutex_trylock(int *futex)
|
yann@748
|
68 |
{
|
yann@748
|
69 |
return atomic_compare_and_exchange_val_acq (futex, 1, 0) != 0;
|
yann@748
|
70 |
}
|
yann@748
|
71 |
@@ -124,17 +119,17 @@
|
yann@748
|
72 |
|
yann@748
|
73 |
|
yann@748
|
74 |
static inline int __attribute__((always_inline))
|
yann@748
|
75 |
-__lll_mutex_cond_trylock(lll_lock_t *futex)
|
yann@748
|
76 |
+__lll_mutex_cond_trylock(int *futex)
|
yann@748
|
77 |
{
|
yann@748
|
78 |
return atomic_compare_and_exchange_val_acq (futex, 2, 0) != 0;
|
yann@748
|
79 |
}
|
yann@748
|
80 |
#define lll_mutex_cond_trylock(lock) __lll_mutex_cond_trylock (&(lock))
|
yann@748
|
81 |
|
yann@748
|
82 |
|
yann@748
|
83 |
-extern void __lll_lock_wait (lll_lock_t *futex) attribute_hidden;
|
yann@748
|
84 |
+extern void __lll_lock_wait (int *futex) attribute_hidden;
|
yann@748
|
85 |
|
yann@748
|
86 |
static inline void __attribute__((always_inline))
|
yann@748
|
87 |
-__lll_mutex_lock(lll_lock_t *futex)
|
yann@748
|
88 |
+__lll_mutex_lock(int *futex)
|
yann@748
|
89 |
{
|
yann@748
|
90 |
if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0)
|
yann@748
|
91 |
__lll_lock_wait (futex);
|
yann@748
|
92 |
@@ -155,7 +150,7 @@
|
yann@748
|
93 |
__lll_robust_mutex_lock (&(futex), id)
|
yann@748
|
94 |
|
yann@748
|
95 |
static inline void __attribute__ ((always_inline))
|
yann@748
|
96 |
-__lll_mutex_cond_lock (lll_lock_t *futex)
|
yann@748
|
97 |
+__lll_mutex_cond_lock (int *futex)
|
yann@748
|
98 |
{
|
yann@748
|
99 |
if (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0)
|
yann@748
|
100 |
__lll_lock_wait (futex);
|
yann@748
|
101 |
@@ -167,13 +162,13 @@
|
yann@748
|
102 |
__lll_robust_mutex_lock (&(futex), (id) | FUTEX_WAITERS)
|
yann@748
|
103 |
|
yann@748
|
104 |
|
yann@748
|
105 |
-extern int __lll_timedlock_wait (lll_lock_t *futex, const struct timespec *)
|
yann@748
|
106 |
+extern int __lll_timedlock_wait (int *futex, const struct timespec *)
|
yann@748
|
107 |
attribute_hidden;
|
yann@748
|
108 |
extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *)
|
yann@748
|
109 |
attribute_hidden;
|
yann@748
|
110 |
|
yann@748
|
111 |
static inline int __attribute__ ((always_inline))
|
yann@748
|
112 |
-__lll_mutex_timedlock (lll_lock_t *futex, const struct timespec *abstime)
|
yann@748
|
113 |
+__lll_mutex_timedlock (int *futex, const struct timespec *abstime)
|
yann@748
|
114 |
{
|
yann@748
|
115 |
int result = 0;
|
yann@748
|
116 |
if (atomic_compare_and_exchange_bool_acq (futex, 1, 0) != 0)
|
yann@748
|
117 |
@@ -197,7 +192,7 @@
|
yann@748
|
118 |
|
yann@748
|
119 |
|
yann@748
|
120 |
static inline void __attribute__ ((always_inline))
|
yann@748
|
121 |
-__lll_mutex_unlock (lll_lock_t *futex)
|
yann@748
|
122 |
+__lll_mutex_unlock (int *futex)
|
yann@748
|
123 |
{
|
yann@748
|
124 |
int val = atomic_exchange_rel (futex, 0);
|
yann@748
|
125 |
if (__builtin_expect (val > 1, 0))
|
yann@748
|
126 |
@@ -218,7 +213,7 @@
|
yann@748
|
127 |
|
yann@748
|
128 |
|
yann@748
|
129 |
static inline void __attribute__ ((always_inline))
|
yann@748
|
130 |
-__lll_mutex_unlock_force (lll_lock_t *futex)
|
yann@748
|
131 |
+__lll_mutex_unlock_force (int *futex)
|
yann@748
|
132 |
{
|
yann@748
|
133 |
(void) atomic_exchange_rel (futex, 0);
|
yann@748
|
134 |
lll_futex_wake (futex, 1);
|
yann@748
|
135 |
@@ -239,7 +234,7 @@
|
yann@748
|
136 |
#define THREAD_INIT_LOCK(PD, LOCK) \
|
yann@748
|
137 |
(PD)->LOCK = LLL_LOCK_INITIALIZER
|
yann@748
|
138 |
|
yann@748
|
139 |
-extern int lll_unlock_wake_cb (lll_lock_t *__futex) attribute_hidden;
|
yann@748
|
140 |
+extern int lll_unlock_wake_cb (int *__futex) attribute_hidden;
|
yann@748
|
141 |
|
yann@748
|
142 |
/* The states of a lock are:
|
yann@748
|
143 |
0 - untaken
|
yann@955
|
144 |
diff -durN glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h
|
yann@955
|
145 |
--- glibc-2.6.1.orig/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h 2006-08-04 20:54:56.000000000 +0200
|
yann@955
|
146 |
+++ glibc-2.6.1/glibc-ports-2.6.1/sysdeps/unix/sysv/linux/mips/nptl/lowlevellock.h 2008-07-28 23:51:14.000000000 +0200
|
yann@748
|
147 |
@@ -227,9 +227,6 @@
|
yann@748
|
148 |
/* Our internal lock implementation is identical to the binary-compatible
|
yann@748
|
149 |
mutex implementation. */
|
yann@748
|
150 |
|
yann@748
|
151 |
-/* Type for lock object. */
|
yann@748
|
152 |
-typedef int lll_lock_t;
|
yann@748
|
153 |
-
|
yann@748
|
154 |
/* Initializers for lock. */
|
yann@748
|
155 |
#define LLL_LOCK_INITIALIZER (0)
|
yann@748
|
156 |
#define LLL_LOCK_INITIALIZER_LOCKED (1)
|