]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* po/nl.po: Update from translation team.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
3e8d1eab
JJ
12007-08-16 Jakub Jelinek <jakub@redhat.com>
2
3 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
4 (__lll_robust_timedlock): Pass private as last argument to
5 __lll_robust_timedlock_wait.
6 (__lll_unlock): Fix a pasto.
7
e4720b0e
JJ
82007-08-15 Jakub Jelinek <jakub@redhat.com>
9
10 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
11 sparc_old_sem): New structs.
12 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
13 (__sem_wait_cleanup): New function.
14 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
15 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
16 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
17 lll_futex_wait.
18 (__old_sem_wait): New function.
19 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
20 nptl/sysdeps/unix/sysv/linux/sparc version.
21 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
22 Likewise.
23 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
24 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
25 (__new_sem_trywait): Use sparc_old_sem structure.
26 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
27 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
28 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
29 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
30 lll_futex_timed_wait.
31 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
32 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
33 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
34 lll_futex_wake.
35 (__old_sem_post): New function.
36 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
37 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
38 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
39 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
40 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
41 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
42
d13f4a43
UD
432007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
44
45 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
46 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
47 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
48 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
49 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
50 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
51 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
52 Use FUTEX_WAKE_OP.
53 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
54 kernel-features.h and tcb-offsets.h.
55 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
56 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
57 process private.
58 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
59 tcb-offsets.h.
60 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
61 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
62 process private.
63 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
64 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
65 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
66 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
67 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
68 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
69 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
70
702a9414
JJ
712007-08-14 Jakub Jelinek <jakub@redhat.com>
72
467d1345
JJ
73 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
74 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
75 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
76 lll_futex_timed_wait.
77
702a9414
JJ
78 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
79 __lll_robust_unlock): Rewrite as macros instead of inline functions.
80 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
81 __lll_robust_unlock, __lll_wait_tid): Likewise.
82
22502ea2
UD
832007-08-13 Jakub Jelinek <jakub@redhat.com>
84
85 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
86 Fix a pasto.
87 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
88 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
89 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
90 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
91 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
92 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
93 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
94 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
95 kernel-features.h.
96 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
97 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
98 process private. Switch DW_CFA_advance_loc1 and some
99 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
100 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
101 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
102 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
103 process private. Switch DW_CFA_advance_loc{1,2} and some
104 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
105 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
106 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
107 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
108 Likewise.
109 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
110 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
111 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
112 Likewise.
113 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
114 (__pthread_cond_broadcast): Compare %r8 instead of
115 dep_mutex-cond_*(%rdi) with $-1.
116 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
117 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
118 of oring.
119
4baf59ad
UD
1202007-08-13 Ulrich Drepper <drepper@redhat.com>
121
122 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
123
9c6f6953
UD
1242007-08-13 Jakub Jelinek <jakub@redhat.com>
125
126 * allocatestack.c: Include kernel-features.h.
127 * pthread_create.c: Likewise.
128 * pthread_mutex_init.c: Likewise.
129 * init.c: Likewise.
130 * pthread_cond_timedwait.c: Likewise.
131 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
132 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
133 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
134 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
135 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
136 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
137 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
138 Likewise.
139 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
140 Likewise.
141 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
142 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
143 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
144 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
145
974a1f0f
UD
1462007-08-12 Jakub Jelinek <jakub@redhat.com>
147
148 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
149 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
150 byte elements. One of them is the new __shared element.
151 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
152 adjust names of other padding elements.
153 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
154 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
155 byte elements. One of them is the new __shared element.
156 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
157 adjust names of other padding elements.
158 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
159 Renamed __pad1 element to __shared, adjust names of other padding
160 elements.
161 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
162 (pthread_rwlock_t): Likewise.
163 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
164 typo.
165
1662007-08-09 Anton Blanchard <anton@samba.org>
167
168 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
169
f47e2626
UD
1702007-08-12 Ulrich Drepper <drepper@redhat.com>
171
172 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
173 <kernel-features.h>.
174 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
175
5bd8a249
UD
1762007-08-11 Ulrich Drepper <drepper@redhat.com>
177
178 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
179 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
180 dealing with robust mutexes.
181 * pthread_mutex_timedlock.c: Likewise.
182 * pthread_mutex_trylock.c: Likewise.
183 * pthread_mutex_unlock.c: Likewise.
184 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
185
1862007-08-06 Jakub Jelinek <jakub@redhat.com>
187
188 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
189 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
190 (PTHREAD_MUTEX_PSHARED): Define.
191 * pthread_mutex_init.c (__pthread_mutex_init): Set
192 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
193 mutexes.
194 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
195 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
196 as second argument to lll_lock.
197 (LLL_MUTEX_TRYLOCK): Take mutex as argument
198 instead of its __data.__lock field.
199 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
200 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
201 to lll_robust_lock.
202 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
203 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
204 instead of mutex->__data.__kind directly, pass
205 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
206 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
207 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
208 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
209 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
210 to lll_timedlock, lll_robust_timedlock, lll_unlock and
211 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
212 of mutex->__data.__kind directly.
213 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
214 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
215 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
216 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
217 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
218 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
219 and lll_futex_wake.
220 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
221 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
222 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
223 directly.
224 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
225 Take mutex as argument instead of its __data.__lock field, pass
226 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
227 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
228 __data.__lock field.
229 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
230 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
231 to lll_robust_cond_lock.
232 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
233 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
234 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
235 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
236 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
237 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
238 lll_futex_wait.
239 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
240 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
241 lll_futex_wake.
242 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
243 pshared variable, pass it to lll_lock, lll_unlock,
244 lll_futex_timedwait and lll_futex_wake.
245 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
246 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
247 and lll_futex_wake.
248 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
249 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
250 macro.
251 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
252 lll_futex_wake_unlock): Likewise.
253 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
254 Likewise.
255 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
256 lll_futex_wake_unlock): Likewise.
257 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
258 Likewise.
259 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
260 lll_futex_wake_unlock): Likewise.
261 (lll_futex_wake): Fix a typo.
262 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
263 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
264 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
265 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
266 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
267 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
268 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
269 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
270 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
271 (__pthread_cond_timedwait): Likewise.
272 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
273 (__condvar_cleanup, __pthread_cond_wait): Likewise.
274
0470fa46
JJ
2752007-08-05 Jakub Jelinek <jakub@redhat.com>
276
277 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
278 Don't use CGOTSETUP and CGOTRESTORE macros.
279 (CGOTSETUP, CGOTRESTORE): Remove.
280 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
281 @local symbol.
282
64f6281c
UD
2832007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
284
285 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
286 definitions for private futexes.
287 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
288 kernel-features.h and lowlevellock.h. Use private futexes if
289 they are available.
290 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
291 (__lll_mutex_lock_wait): Rename to
292 (__lll_lock_wait): ... this. Don't compile in for libc.so.
293 (__lll_mutex_timedlock_wait): Rename to ...
294 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
295 Don't compile in for libc.so.
296 (__lll_mutex_unlock_wake): Rename to ...
297 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
298 (__lll_timedwait_tid): Use __NR_gettimeofday.
299 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
300 the header from assembler. Renamed all lll_mutex_* resp.
301 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
302 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
303 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
304 Define.
305 (__lll_lock_wait_private): Add prototype.
306 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
307 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
308 __lll_unlock_wake): Likewise.
309 (lll_lock): Add private argument. Call __lll_lock_wait_private
310 if private is constant LLL_PRIVATE.
311 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
312 lll_timedlock, lll_robust_timedlock): Add private argument.
313 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
314 if private is constant LLL_PRIVATE.
315 (lll_robust_unlock, lll_robust_dead): Add private argument.
316 (lll_lock_t): Remove.
317 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
318 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
319 lll_cond_wake, lll_cond_broadcast): Remove.
320 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
321 kernel-features.h and lowlevellock.h.
322 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
323 (LOAD_FUTEX_WAIT): Define.
324 (__lll_robust_mutex_lock_wait): Rename to ...
325 (__lll_robust_lock_wait): ... this. Add private argument.
326 Use LOAD_FUTEX_WAIT macro.
327 (__lll_robust_mutex_timedlock_wait): Rename to ...
328 (__lll_robust_timedlock_wait): ... this. Add private argument.
329 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
330 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
331 lowlevellock.h.
332 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
333 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
334 __lll_mutex_{lock,unlock}_*.
335 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
336 lowlevellock.h and pthread-errnos.h.
337 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
338 FUTEX_CMP_REQUEUE, EINVAL): Remove.
339 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
340 __lll_mutex_{lock,unlock}_*.
341 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
342 lowlevellock.h and pthread-errnos.h.
343 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
344 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
345 __lll_mutex_{lock,unlock}_*.
346 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
347 lowlevellock.h.
348 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
349 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
350 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
351 (__condvar_tw_cleanup): Likewise.
352 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
353 lowlevellock.h.
354 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
355 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
356 __lll_mutex_{lock,unlock}_*.
357 ( __condvar_w_cleanup): Likewise.
358 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
359 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
360 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
361 lowlevellock.h.
362 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
363 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
364 __lll_mutex_{lock,unlock}_*.
365 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
366 lowlevellock.h.
367 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
368 FUTEX_PRIVATE_FLAG): Remove.
369 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
370 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
371 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
372 lowlevellock.h.
373 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
374 FUTEX_PRIVATE_FLAG): Remove.
375 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
376 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
377 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
378 lowlevellock.h.
379 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
380 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
381 __lll_mutex_{lock,unlock}_*.
382 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
383 lowlevellock.h.
384 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
385 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
386 __lll_mutex_{lock,unlock}_*.
387 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
388 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
389 (__new_sem_post): Use standard initial exec code sequences.
390 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
391 lowlevellock.h.
392 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
393 FUTEX_PRIVATE_FLAG): Remove.
394 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
395 exec code sequences.
396 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
397 (__new_sem_trywait): Use standard initial exec code sequences.
398 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
399 (__new_sem_wait): Use standard initial exec code sequences.
400
e51deae7
UD
4012007-07-31 Anton Blanchard <anton@samba.org>
402
403 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
404 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
405 atomic_full_barrier.
406
4072007-07-31 Jakub Jelinek <jakub@redhat.com>
408
409 * allocatestack.c (stack_cache_lock): Change type to int.
410 (get_cached_stack, allocate_stack, __deallocate_stack,
411 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
412 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
413 as second argument to lll_lock and lll_unlock macros on
414 stack_cache_lock.
415 * pthread_create.c (__find_in_stack_list): Likewise.
416 (start_thread): Similarly with pd->lock. Use lll_robust_dead
417 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
418 as second argument.
419 * descr.h (struct pthread): Change lock and setxid_futex field
420 type to int.
421 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
422 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
423 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
424 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
425 Likewise.
426 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
427 * pthread_cond_init.c (__pthread_cond_init): Likewise.
428 * pthreadP.h (__attr_list_lock): Change type to int.
429 * pthread_attr_init.c (__attr_list_lock): Likewise.
430 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
431 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
432 lll_{,un}lock.
433 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
434 also for lll_futex_{wake,wait}.
435 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
436 a pointer to const.
437 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
438 LLL_SHARED as second argument to lll_{,un}lock.
439 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
440 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
441 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
442 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
443 Likewise.
444 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
445 as second argument to lll_{,un}lock macros on pd->lock.
446 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
447 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
448 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
449 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
450 Likewise.
451 * sysdeps/pthread/createthread.c (do_clone, create_thread):
452 Likewise.
453 * pthread_once.c (once_lock): Change type to int.
454 (__pthread_once): Pass LLL_PRIVATE as second argument to
455 lll_{,un}lock macros on once_lock.
456 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
457 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
458 rwlock->__data.__shared as second argument to them and similarly
459 for lll_futex_w*.
460 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
461 Likewise.
462 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
463 Likewise.
464 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
465 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
466 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
467 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
468 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
469 to lll_{,un}lock macros on __sem_mappings_lock.
470 * sem_open.c (check_add_mapping): Likewise.
471 (__sem_mappings_lock): Change type to int.
472 * semaphoreP.h (__sem_mappings_lock): Likewise.
473 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
474 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
475 instead of lll_*mutex_*, pass LLL_SHARED as last
476 argument.
477 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
478 pass LLL_SHARED as last argument.
479 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
480 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
481 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
482 pass LLL_SHARED as last argument.
483 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
484 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
485 LLL_SHARED as last argument.
486 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
487 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
488 Similarly.
489 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
490 __libc_lock_lock_recursive, __libc_lock_unlock,
491 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
492 argument to lll_{,un}lock.
493 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
494 _IO_lock_unlock): Likewise.
495 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
496 compound literal.
497 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
498 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
499 __fork_lock.
500 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
501 free_mem): Likewise.
502 (__fork_lock): Change type to int.
503 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
504 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
505 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
506 lll_futex_wake.
507 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
508 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
509 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
510 New function.
511 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
512 pass it through to lll_futex_*wait, only compile in when
513 IS_IN_libpthread.
514 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
515 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
516 argument and pass it through to lll_futex_*wait.
517 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
518 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
519 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
520 inline functions to __lll_* resp. __lll_robust_*.
521 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
522 (lll_mutex_dead): Add private argument.
523 (__lll_lock_wait_private): New prototype.
524 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
525 __lll_robust_lock_timedwait): Add private argument to prototypes.
526 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
527 call __lll_lock_wait_private, otherwise pass private to
528 __lll_lock_wait.
529 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
530 __lll_robust_timedlock): Add private argument, pass it to
531 __lll_*wait functions.
532 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
533 call __lll_unlock_wake_private, otherwise pass private to
534 __lll_unlock_wake.
535 (__lll_robust_unlock): Add private argument, pass it to
536 __lll_robust_unlock_wake.
537 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
538 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
539 argument, pass it through to __lll_* inline function.
540 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
541 (lll_lock_t): Remove.
542 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
543 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
544 lll_cond_wake, lll_cond_broadcast): Remove.
545 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
546 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
547 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
548 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
549 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
550 the header from assembler. Renamed all lll_mutex_* resp.
551 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
552 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
553 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
554 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
555 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
556 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
557 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
558 Remove prototype.
559 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
560 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
561 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
562 (lll_trylock): Likewise, use __lll_trylock_asm, pass
563 MULTIPLE_THREADS_OFFSET as another asm operand.
564 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
565 MULTIPLE_THREADS_OFFSET as last asm operand, call
566 __lll_lock_wait_private if private is constant LLL_PRIVATE,
567 otherwise pass private as another argument to __lll_lock_wait.
568 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
569 lll_timedlock, lll_robust_timedlock): Add private argument, pass
570 private as another argument to __lll_*lock_wait call.
571 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
572 MULTIPLE_THREADS_OFFSET as another asm operand, call
573 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
574 otherwise pass private as another argument to __lll_unlock_wake.
575 (lll_robust_unlock): Add private argument, pass private as another
576 argument to __lll_unlock_wake.
577 (lll_robust_dead): Add private argument, use __lll_private_flag
578 macro.
579 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
580 LLL_MUTEX_LOCK_INITIALIZER.
581 (lll_lock_t): Remove.
582 (LLL_LOCK_INITIALIZER_WAITERS): Define.
583 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
584 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
585 lll_cond_wake, lll_cond_broadcast): Remove.
586 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
587 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
588 2007-05-2{3,9} changes.
589 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
590 kernel-features.h and lowlevellock.h.
591 (LOAD_PRIVATE_FUTEX_WAIT): Define.
592 (LOAD_FUTEX_WAIT): Rewritten.
593 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
594 define.
595 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
596 (__lll_mutex_lock_wait): Rename to ...
597 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
598 %ecx, %ecx is now private argument. Don't compile in for libc.so.
599 (__lll_mutex_timedlock_wait): Rename to ...
600 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
601 contains private argument. Don't compile in for libc.so.
602 (__lll_mutex_unlock_wake): Rename to ...
603 (__lll_unlock_wake): ... this. %ecx contains private argument.
604 Don't compile in for libc.so.
605 (__lll_timedwait_tid): Use __NR_gettimeofday.
606 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
607 kernel-features.h and lowlevellock.h.
608 (LOAD_FUTEX_WAIT): Define.
609 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
610 define.
611 (__lll_robust_mutex_lock_wait): Rename to ...
612 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
613 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
614 macro.
615 (__lll_robust_mutex_timedlock_wait): Rename to ...
616 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
617 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
618 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
619 lowlevellock.h.
620 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
621 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
622 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
623 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
624 to __lll_lock_wait in %edx.
625 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
626 Include lowlevellock.h and pthread-errnos.h.
627 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
628 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
629 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
630 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
631 pass LLL_SHARED in %ecx to both __lll_lock_wait and
632 __lll_unlock_wake.
633 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
634 Include lowlevellock.h and pthread-errnos.h.
635 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
636 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
637 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
638 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
639 pass LLL_SHARED in %ecx to both __lll_lock_wait and
640 __lll_unlock_wake.
641 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
642 Include lowlevellock.h.
643 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
644 Don't define.
645 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
646 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
647 pass LLL_SHARED in %ecx to both __lll_lock_wait and
648 __lll_unlock_wake. Use __NR_gettimeofday.
649 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
650 Include lowlevellock.h.
651 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
652 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
653 to __lll_*, pass cond_lock address in %edx rather than %ecx to
654 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
655 and __lll_unlock_wake.
656 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
657 Include lowlevellock.h.
658 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
659 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
660 MUTEX(%ebx) address in %edx rather than %ecx to
661 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
662 and __lll_unlock_wake. Move return value from %ecx to %edx
663 register.
664 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
665 Include lowlevellock.h.
666 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
667 Don't define.
668 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
669 MUTEX(%ebp) address in %edx rather than %ecx to
670 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
671 and __lll_unlock_wake. Move return value from %ecx to %edx
672 register. Use __NR_gettimeofday.
673 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
674 Include lowlevellock.h.
675 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
676 Don't define.
677 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
678 MUTEX(%ebp) address in %edx rather than %ecx to
679 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
680 and __lll_unlock_wake. Move return value from %ecx to %edx
681 register. Use __NR_gettimeofday.
682 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
683 Include lowlevellock.h.
684 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
685 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
686 MUTEX(%edi) address in %edx rather than %ecx to
687 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
688 and __lll_unlock_wake.
689 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
690 Include lowlevellock.h.
691 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
692 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
693 MUTEX(%ebx) address in %edx rather than %ecx to
694 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
695 and __lll_unlock_wake. Move return value from %ecx to %edx
696 register.
697 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
698 lowlevellock.h.
699 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
700 define.
701 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
702 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
703 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
704 lowlevellock.h.
705 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
706 (sem_timedwait): Use __NR_gettimeofday.
707 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
708 lowlevellock.h.
709 (LOCK): Don't define.
710 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
711 lowlevellock.h.
712 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
713 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
714 are waiters.
715 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
716 2007-05-2{3,9} changes.
717 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
718 kernel-features.h and lowlevellock.h.
719 (LOAD_PRIVATE_FUTEX_WAIT): Define.
720 (LOAD_FUTEX_WAIT): Rewritten.
721 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
722 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
723 (__lll_mutex_lock_wait): Rename to ...
724 (__lll_lock_wait): ... this. %esi is now private argument.
725 Don't compile in for libc.so.
726 (__lll_mutex_timedlock_wait): Rename to ...
727 (__lll_timedlock_wait): ... this. %esi contains private argument.
728 Don't compile in for libc.so.
729 (__lll_mutex_unlock_wake): Rename to ...
730 (__lll_unlock_wake): ... this. %esi contains private argument.
731 Don't compile in for libc.so.
732 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
733 kernel-features.h and lowlevellock.h.
734 (LOAD_FUTEX_WAIT): Define.
735 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
736 (__lll_robust_mutex_lock_wait): Rename to ...
737 (__lll_robust_lock_wait): ... this. %esi argument contains private.
738 Use LOAD_FUTEX_WAIT macro.
739 (__lll_robust_mutex_timedlock_wait): Rename to ...
740 (__lll_robust_timedlock_wait): ... this. %esi argument contains
741 private, use LOAD_FUTEX_WAIT macro.
742 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
743 lowlevellock.h.
744 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
745 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
746 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
747 __lll_lock_wait and __lll_unlock_wake.
748 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
749 Include lowlevellock.h and pthread-errnos.h.
750 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
751 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
752 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
753 pass LLL_SHARED in %esi to both __lll_lock_wait and
754 __lll_unlock_wake.
755 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
756 Include lowlevellock.h and pthread-errnos.h.
757 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
758 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
759 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
760 pass LLL_SHARED in %esi to both __lll_lock_wait and
761 __lll_unlock_wake.
762 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
763 Include lowlevellock.h.
764 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
765 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
766 pass LLL_SHARED in %esi to both __lll_lock_wait and
767 __lll_unlock_wake.
768 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
769 Include lowlevellock.h.
770 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
771 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
772 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
773 and __lll_unlock_wake.
774 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
775 Include lowlevellock.h.
776 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
777 Don't define.
778 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
779 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
780 and __lll_unlock_wake.
781 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
782 Include lowlevellock.h.
783 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
784 Don't define.
785 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
786 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
787 and __lll_unlock_wake.
788 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
789 Include lowlevellock.h.
790 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
791 Don't define.
792 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
793 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
794 and __lll_unlock_wake.
795 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
796 Include lowlevellock.h.
797 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
798 Don't define.
799 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
800 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
801 and __lll_unlock_wake.
802 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
803 Include lowlevellock.h.
804 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
805 Don't define.
806 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
807 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
808 and __lll_unlock_wake.
809 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
810 lowlevellock.h.
811 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
812 define.
813 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
814 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
815 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
816 lowlevellock.h.
817 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
818 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
819 lowlevellock.h.
820 (LOCK): Don't define.
821 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
822 lowlevellock.h.
823 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
824 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
825 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
826 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
827 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
828 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
829 (__lll_lock_wait_private): New function.
830 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
831 it to lll_futex_*wait. Don't compile in for libc.so.
832 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
833 Remove.
834 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
835 (struct sparc_pthread_barrier): Remove.
836 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
837 struct sparc_pthread_barrier. Pass
838 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
839 and lll_futex_wait macros.
840 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
841 Remove.
842 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
843 Include sparc pthread_barrier_wait.c instead of generic one.
844
6f59d56e
UD
8452007-07-30 Jakub Jelinek <jakub@redhat.com>
846
1475e201
UD
847 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
848
6f59d56e
UD
849 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
850 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
851 %ecx.
852 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
853 (pthread_rwlock_timedwrlock): Likewise.
854 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
855 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
856
558f0300
JJ
8572007-07-31 Jakub Jelinek <jakub@redhat.com>
858
859 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
860
cedb4109
UD
8612007-07-26 Jakub Jelinek <jakub@redhat.com>
862
863 * tst-locale2.c (useless): Add return statement.
864
085a4412
UD
8652007-07-24 Jakub Jelinek <jakub@redhat.com>
866
867 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
868 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
869 * pthread_create.c (start_thread): Likewise.
870 * init.c (sighandler_setxid): Likewise.
871 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
872 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
873 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
874 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
875 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
876 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
877 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
878 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
879 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
880 Likewise.
881 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
882 Likewise.
883 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
884 Likewise.
885 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
886 __rtld_notify): Likewise.
887 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
888 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
889 __pthread_once): Likewise.
890 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
891 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
892 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
893 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
894 (lll_futex_wait): Add private argument, define as wrapper around
895 lll_futex_timed_wait.
896 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
897 use __lll_private_flag macro.
898 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
899 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
900 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
901 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
902 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
903 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
904 (lll_futex_wait): Add private argument, define as wrapper around
905 lll_futex_timed_wait.
906 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
907 use __lll_private_flag macro.
908 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
909 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
910 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
911 Define.
912 (lll_futex_timed_wait, lll_futex_wake): Use it.
913 (lll_private_futex_wait, lll_private_futex_timed_wait,
914 lll_private_futex_wake): Removed.
915 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
916 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
917 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
918 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
919 (lll_futex_wait): Add private argument, define as wrapper around
920 lll_futex_timed_wait.
921 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
922 use __lll_private_flag macro.
923 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
924 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
925 to lll_futex_*.
926 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
927 (lll_private_futex_wait, lll_private_futex_timed_wait,
928 lll_private_futex_wake): Removed.
929 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
930 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
931 (lll_private_futex_wait, lll_private_futex_timed_wait,
932 lll_private_futex_wake): Removed.
933 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
934 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
935 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
936 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
937 (lll_futex_wait): Add private argument, define as wrapper around
938 lll_futex_timed_wait.
939 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
940 use __lll_private_flag macro.
941 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
942 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
943 to lll_futex_*.
944 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
945 Define.
946 (lll_futex_timed_wait, lll_futex_wake): Use it.
947 (lll_private_futex_wait, lll_private_futex_timed_wait,
948 lll_private_futex_wake): Removed.
949
ef0af159
JJ
9502007-07-27 Jakub Jelinek <jakub@redhat.com>
951
952 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
953 of the structure for sparc32.
954
9552007-07-26 Aurelien Jarno <aurelien@aurel32.net>
956
957 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
958
eb4f5909
UD
9592007-07-23 Ulrich Drepper <drepper@redhat.com>
960
961 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
962 code used when private futexes are assumed.
963 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
964 Likewise.
965
b5f13526
UD
9662007-07-23 Jakub Jelinek <jakub@redhat.com>
967
968 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
969 (__lll_private_flag): Define.
970 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
971 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
972 __lll_private_flag.
973 (lll_private_futex_wait, lll_private_futex_timedwait,
974 lll_private_futex_wake): Define as wrapper around non-_private
975 macros.
976 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
977 (__lll_private_flag): Define.
978 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
979 (lll_private_futex_wait, lll_private_futex_timedwait,
980 lll_private_futex_wake): Define as wrapper around non-_private
981 macros.
982
eb7721f2
UD
9832007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
984
985 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
986 parameter to lll_futex_wait call.
987 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
988
989 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
990 Replace lll_futex_wait with lll_private_futex_wait.
991 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
992 Add LLL_SHARED parameter to lll_futex_wake().
993
994 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
995 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
996 lll_private_futex_wake.
997 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
998 bit from private parm before syscall.
999 (lll_futex_timed_wait): Likewise.
1000 (lll_futex_wake): Likewise.
1001 (lll_futex_wake_unlock): Likewise.
1002 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1003 (lll_robust_mutex_unlock): Likewise.
1004 (lll_mutex_unlock_force): Likewise.
1005 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1006
defc45f2
UD
10072007-07-23 Ulrich Drepper <drepper@redhat.com>
1008
1009 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1010 compilation when unconditionally using private futexes.
1011 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1012 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1013 Likewise.
1014 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1015 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1016
087722b8
UD
10172007-07-17 Jakub Jelinek <jakub@redhat.com>
1018
1019 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1020 Define.
1021
765c6b0c
UD
10222007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1023
1024 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1025 kernel-features.h.
1026
7d9d8bd1
RM
10272007-05-16 Roland McGrath <roland@redhat.com>
1028
1029 * init.c (__nptl_initial_report_events): New variable.
1030 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1031 to that.
1032
a4915df2
UD
10332007-06-22 Jakub Jelinek <jakub@redhat.com>
1034
1035 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1036 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1037
e4eb675d
UD
10382007-06-19 Ulrich Drepper <drepper@redhat.com>
1039
1040 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1041 implementation.
1042
ae1ad3ae
UD
10432007-06-18 Ulrich Drepper <drepper@redhat.com>
1044
1045 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1046 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1047 * pthread_mutex_timedlock.c: Likewise.
1048 * pthread_mutex_trylock.c: Likewise.
1049 * pthread_mutex_unlock.c: Likewise.
1050
89074592
UD
10512007-06-17 Andreas Schwab <schwab@suse.de>
1052
1053 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1054 sections.
1055
d4201cc4
UD
10562007-06-17 Ulrich Drepper <drepper@redhat.com>
1057
1058 * allocatestack.c (allocate_stack): Make code compile if
1059 __ASSUME_PRIVATE_FUTEX is set.
1060
339dbf0e
UD
10612007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1062
1063 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1064 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1065 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1066 (__pthread_rwlock_wrlock): Likewise.
1067 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1068 (pthread_rwlock_timedrdlock): Likewise.
1069 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1070 (pthread_rwlock_timedwrlock): Likewise.
1071 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1072 (__pthread_rwlock_unlock): Likewise.
1073
10742007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1075
1076 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1077 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1078 Split __flags into __flags, __shared, __pad1 and __pad2.
1079 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1080 futexes if they are available.
1081 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1082 in libc-lowlevellock.S allow using private futexes.
1083 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1084 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1085 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1086 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1087 lll_private_futex_timed_wait and lll_private_futex_wake.
1088 (lll_robust_mutex_unlock): Fix typo.
1089 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1090 field in futex command setup.
1091 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1092 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1093 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1094 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1095 if they are available. Remove clear_once_control.
1096 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1097 futexes if they are available.
1098 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1099 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1100 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1101 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1102 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1103 Wake only when there are waiters.
1104 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1105 support. Indicate that there are waiters. Remove unnecessary
1106 extra cancellation test.
1107 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1108 left-over duplication of __sem_wait_cleanup.
1109
26f56c1c
UD
11102007-06-07 Ulrich Drepper <drepper@redhat.com>
1111
1112 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1113 parameter to lll_futex_wait, lll_futex_timed_wait, and
1114 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1115 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1116 lll_private_futex_wake.
1117 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1118 * allocatestack.c: Adjust use of lll_futex_* macros.
1119 * init.c: Likewise.
1120 * lowlevellock.h: Likewise.
1121 * pthread_barrier_wait.c: Likewise.
1122 * pthread_cond_broadcast.c: Likewise.
1123 * pthread_cond_destroy.c: Likewise.
1124 * pthread_cond_signal.c: Likewise.
1125 * pthread_cond_timedwait.c: Likewise.
1126 * pthread_cond_wait.c: Likewise.
1127 * pthread_create.c: Likewise.
1128 * pthread_mutex_lock.c: Likewise.
1129 * pthread_mutex_setprioceiling.c: Likewise.
1130 * pthread_mutex_timedlock.c: Likewise.
1131 * pthread_mutex_unlock.c: Likewise.
1132 * pthread_rwlock_timedrdlock.c: Likewise.
1133 * pthread_rwlock_timedwrlock.c: Likewise.
1134 * pthread_rwlock_unlock.c: Likewise.
1135 * sysdeps/alpha/tls.h: Likewise.
1136 * sysdeps/i386/tls.h: Likewise.
1137 * sysdeps/ia64/tls.h: Likewise.
1138 * sysdeps/powerpc/tls.h: Likewise.
1139 * sysdeps/pthread/aio_misc.h: Likewise.
1140 * sysdeps/pthread/gai_misc.h: Likewise.
1141 * sysdeps/s390/tls.h: Likewise.
1142 * sysdeps/sh/tls.h: Likewise.
1143 * sysdeps/sparc/tls.h: Likewise.
1144 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1145 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1146 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1147 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1148 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1149 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1150 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1151 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1152 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1153 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1154 Likewise.
1155 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1156 * sysdeps/x86_64/tls.h: Likewise.
1157
ee5d5755
UD
11582007-05-29 Ulrich Drepper <drepper@redhat.com>
1159
b03b0c29
UD
1160 * pthread_getattr_np.c: No need to install a cancellation handler,
1161 this is no cancellation point.
1162 * pthread_getschedparam.c: Likewise.
1163 * pthread_setschedparam.c: Likewise.
1164 * pthread_setschedprio.c: Likewise.
1165 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1166 lll_unlock_wake_cb.
1167 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1168 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1169 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1170 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1171 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1172 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1173 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1174 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1175 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1176 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1177 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1178 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1179
0154658d
UD
1180 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1181 whether there are more than one thread makes no sense here since
1182 we only call the slow path if the locks are taken.
1183 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1184
ee5d5755
UD
1185 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1186 COND_NWAITERS_SHIFT.
1187 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1188 COND_CLOCK_BITS.
1189 * pthread_cond_init.c: Likewise.
1190 * pthread_cond_timedwait.c: Likewise.
1191 * pthread_cond_wait.c: Likewise.
1192 * pthread_condattr_getclock.c: Likewise.
1193 * pthread_condattr_setclock.c: Likewise.
1194 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1195 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1196 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1197 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1198 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1199
991fa82b
UD
12002007-05-28 Jakub Jelinek <jakub@redhat.com>
1201
40f57573
UD
1202 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1203 unistd.h.
1204
991fa82b
UD
1205 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1206 insn suffix.
1207 (THREAD_GSCOPE_GET_FLAG): Remove.
1208 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1209 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1210 changes.
1211 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1212 (THREAD_GSCOPE_GET_FLAG): Remove.
1213 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1214 instead of THREAD_GSCOPE_GET_FLAG.
1215 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1216 it.
1217 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1218 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1219 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1220 THREAD_GSCOPE_WAIT): Define.
1221 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1222 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1223 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1224 THREAD_GSCOPE_WAIT): Define.
1225 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1226 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1227 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1228 THREAD_GSCOPE_WAIT): Define.
1229 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1230 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1231 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1232 THREAD_GSCOPE_WAIT): Define.
1233
12342007-05-24 Richard Henderson <rth@redhat.com>
1235
1236 * descr.h (struct pthread): Add header.gscope_flag.
1237 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1238 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1239 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1240 THREAD_GSCOPE_WAIT): Define.
1241
e59660bc
UD
12422007-05-27 Ulrich Drepper <drepper@redhat.com>
1243
1244 * init.c: Make it compile with older kernel headers.
1245
1246 * tst-initializers1.c: Show through exit code which test failed.
1247
1248 * pthread_rwlock_init.c: Also initialize __shared field.
1249 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1250 element in rwlock structure into four byte elements. One of them is
1251 the new __shared element.
1252 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1253 Likewise.
cd0dbd89 1254 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1255 __shared, adjust names of other padding elements.
1256 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1257 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1258 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1259 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1260 FUTEX_PRIVATE_FLAG.
1261 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1262 futex to use private operations if possible.
1263 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1264 Likewise.
1265 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1266 Likewise.
1267 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1268 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1269 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1270 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1271 Likewise.
1272 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1273 Likewise.
1274 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1275 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1276
d8ff3792
UD
12772007-05-26 Ulrich Drepper <drepper@redhat.com>
1278
546346b6
UD
1279 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1280 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1281 * pthread_rwlock_timedrdlock.c: Likewise.
1282 * pthread_rwlock_tryrdlock.c: Likewise.
1283
a2dd3360
UD
1284 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1285 optimization.
1286
6df7ffad
UD
1287 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1288 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1289 duplication of __sem_wait_cleanup.
1290
1291 * allocatestack.c: Revert last change.
1292 * init.c: Likewise.
1293 * sysdeps/i386/tls.h: Likewise.
1294 * sysdeps/x86_64/tls.h: Likewise.
1295 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1296 header structure.
1297 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1298
d8ff3792
UD
1299 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1300 Add private field.
1301 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1302 * pthread_barrier_init.c: Set private flag if pshared and private
1303 futexes are supported.
1304 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1305 private field in futex command setup.
1306 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1307
3d2dd6ca
UD
13082007-05-25 Ulrich Drepper <drepper@redhat.com>
1309
42e6c665
UD
1310 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1311 support.
1312 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1313 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1314 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1315 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1316 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1317
3d2dd6ca
UD
1318 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1319 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1320 fields in the structure.
1321 (__old_sem_init): New function.
1322 * sem_open.c: Initialize all fields of the structure.
1323 * sem_getvalue.c: Adjust for renamed element.
1324 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1325 (gen-as-const-headers): Add structsem.sym.
1326 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1327 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1328 struct new_sem. Add struct old_sem.
1329 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1330 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1331 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1332 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1333 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1334 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1335 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1336 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1337 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1338 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1339 * tst-sem10.c: New file.
1340 * tst-sem11.c: New file.
1341 * tst-sem12.c: New file.
1342 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1343 of struct sem.
1344
20a4d722
JJ
13452007-05-25 Ulrich Drepper <drepper@redhat.com>
1346 Jakub Jelinek <jakub@redhat.com>
1347
1348 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1349 Move __pthread_enable_asynccancel right before futex syscall.
1350 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1351 Likewise.
1352
13532007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1354
1355 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1356 THREAD_COPY_PRIVATE_FUTEX): Define.
1357 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1358 THREAD_COPY_PRIVATE_FUTEX): Define.
1359 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1360 * init.c (__pthread_initialize_minimal_internal): Use
1361 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1362
1363 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1364 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1365 THREAD_GSCOPE_FLAG_WAIT): Define.
1366 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1367 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1368 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1369 PTR_DEMANGLE.
1370 (THREAD_GSCOPE_GET_FLAG): Define.
1371 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1372 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1373 instead of ->header.gscope_flag directly.
1374
5a8075b1
UD
13752007-05-23 Ulrich Drepper <drepper@redhat.com>
1376
1377 * init.c (__pthread_initialize_minimal_internal): Check whether
1378 private futexes are available.
1379 * allocatestack.c (allocate_stack): Copy private_futex field from
1380 current thread into the new stack.
1381 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1382 futexes if they are available.
1383 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1384 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1385 in libc-lowlevellock.S allow using private futexes.
1386 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1387 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1388 FUTEX_PRIVATE_FLAG.
1389 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1390 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1391 if they are available.
1392 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1393 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1394 * sysdeps/i386/tcb-offsets.sym: Likewise.
1395 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1396 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1397
6d59823c
UD
13982007-05-21 Ulrich Drepper <drepper@redhat.com>
1399
1400 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1401 Remove ptr_wait_lookup_done again.
1402 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1403 (__pthread_initialize_minimal_internal): Initialize
1404 _dl_wait_lookup_done pointer in _rtld_global directly.
1405 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1406 Remove code to code _dl_wait_lookup_done.
1407 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1408 encrypted for now.
1409
2c9718f3
JJ
14102007-05-21 Jakub Jelinek <jakub@redhat.com>
1411
1412 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1413 pthread_mutex_init failed with ENOTSUP.
1414
df94b641
UD
14152007-05-19 Ulrich Drepper <drepper@redhat.com>
1416
1417 * allocatestack.c (__wait_lookup_done): New function.
1418 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1419 Add ptr_wait_lookup_done.
1420 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1421 * pthreadP.h: Declare __wait_lookup_done.
1422 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1423 Define macros to implement reference handling of global scope.
1424 * sysdeps/x86_64/tls.h: Likewise.
1425 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1426 Initialize GL(dl_wait_lookup_done).
1427
bec51a30
UD
14282007-05-17 Ulrich Drepper <drepper@redhat.com>
1429
113ad5fc
UD
1430 [BZ #4512]
1431 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1432 is detected.
1433 * pthread_mutex_timedlock.c: Likewise.
1434 * pthread_mutex_trylock.c: Likewise.
1435 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1436
1437 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1438 * tst-robust9.c: New file.
1439 * tst-robustpi9.c: New file.
1440
bec51a30
UD
1441 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1442 unnecessary extra cancellation test.
1443
83d87915
UD
14442007-05-14 Ulrich Drepper <drepper@redhat.com>
1445
83d87915
UD
1446 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
1447 extra cancellation test.
1448 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1449
3771196d
UD
14502007-05-10 Ulrich Drepper <drepper@redhat.com>
1451
341c566f
UD
1452 * descr.h (struct pthread): Rearrange members to fill hole in
1453 64-bit layout.
1454
3771196d
UD
1455 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1456 (__pthread_setaffinity_new): If syscall was successful and
1457 RESET_VGETCPU_CACHE is defined, use it before returning.
1458 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
1459
7d29b542
JJ
14602007-05-10 Jakub Jelinek <jakub@redhat.com>
1461
1462 [BZ #4455]
1463 * tst-align2.c: Include stackinfo.h.
1464 * tst-getpid1.c: Likewise.
1465
16105fe0
UD
14662007-05-02 Carlos O'Donell <carlos@systemhalted.org>
1467
29c113f0
UD
1468 [BZ #4455]
1469 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
1470 * tst-getpid1.c (do_test): Likewise.
1471
16105fe0
UD
1472 [BZ #4456]
1473 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
1474 (allocate_stack): Likewise.
1475
6780bc44
UD
14762007-05-07 Ulrich Drepper <drepper@redhat.com>
1477
1478 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1479 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
1480 (__lll_robust_timedlock_wait): Likewise.
1481 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
1482
aa75f64c
UD
14832007-05-06 Mike Frysinger <vapier@gentoo.org>
1484
15eca720 1485 [BZ #4465]
aa75f64c
UD
1486 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
1487 * tst-cancel4.c (tf_fdatasync): New test.
1488
f672076e
UD
14892007-04-27 Ulrich Drepper <drepper@redhat.com>
1490
1bb5f5a1
UD
1491 [BZ #4392]
1492 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
1493 check mutexes like normal mutexes.
1494
f672076e
UD
1495 [BZ #4306]
1496 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
1497 Initialize the whole sigevent structure to appease valgrind.
1498
bce20b9a
UD
14992007-04-25 Ulrich Drepper <drepper@redhat.com>
1500
1501 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
1502 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
1503
0c786eac
UD
15042007-04-06 Ulrich Drepper <drepper@redhat.com>
1505
1506 * tst-locale1.c: Avoid warnings.
1507 * tst-locale2.c: Likewise.
1508
e1f0c5bc
UD
15092007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
1510
1511 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1512 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
1513
965cba04
UD
15142007-03-16 Jakub Jelinek <jakub@redhat.com>
1515
1516 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
1517 __extern_always_inline where appropriate.
1518 * sysdeps/pthread/pthread.h: Likewise.
1519
a5ea509b
RH
15202007-03-13 Richard Henderson <rth@redhat.com>
1521
1522 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
1523 separate cfi regions for the two subsections.
1524
00a1430e
UD
15252007-02-25 Ulrich Drepper <drepper@redhat.com>
1526
1527 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
1528 new thread, don't just decrement it.
1529 Patch by Suzuki K P <suzuki@in.ibm.com>.
1530
63a2f305
UD
15312007-02-21 Ulrich Drepper <drepper@redhat.com>
1532
1533 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
1534 PTHFCT_CALL definition.
1535
2484468b
UD
15362007-02-18 Ulrich Drepper <drepper@redhat.com>
1537
1538 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
1539 available, don't use it.
1540
5ed61e0f
UD
15412007-02-09 Jakub Jelinek <jakub@redhat.com>
1542
1543 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1544 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
1545 call into the kernel to delay.
1546
10ccaa5c
UD
15472007-01-18 Ulrich Drepper <drepper@redhat.com>
1548
f8a17855
UD
1549 * tst-initializers1.c: We want to test the initializers as seen
1550 outside of libc, so undefined _LIBC.
1551
10ccaa5c
UD
1552 * pthread_join.c (cleanup): Avoid warning.
1553
ea1533e0
UD
15542007-01-17 Ulrich Drepper <drepper@redhat.com>
1555
1476bce6
UD
1556 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1557 (__lll_timedwait_tid): Add unwind info.
1558
ea1533e0
UD
1559 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
1560 function table, mangle the pointers.
1561 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
1562 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
1563 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
1564 demangle pointers before use.
1565 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
1566 demangle pointer.
1567 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
1568 * sysdeps/pthread/setxid.h: Likewise.
1569
8980796b
UD
15702007-01-12 Ulrich Drepper <drepper@redhat.com>
1571
1572 * tst-rwlock7.c: Show some more information in case of correct
1573 behavior.
1574
a1d87b5d
UD
15752007-01-11 Ulrich Drepper <drepper@redhat.com>
1576
1577 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1578 (lll_futex_timed_wait): Undo part of last change, don't negate
1579 return value.
1580
11bf311e 15812007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 1582
11bf311e
UD
1583 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
1584 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 1585
11bf311e 15862006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 1587
11bf311e 1588 * shlib-versions: Fix sparc64 linux target specification.
a744da90 1589
11bf311e 15902007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 1591
11bf311e
UD
1592 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1593 Adjust include path for pthread_barrier_wait.c move.
fc242bef 1594
11bf311e 15952006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 1596
11bf311e
UD
1597 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
1598 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 1599
11bf311e
UD
16002006-12-06 Jakub Jelinek <jakub@redhat.com>
1601
1602 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
1603 6 argument cancellable syscalls.
1604 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
1605 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
1606 6 argument cancellable syscalls.
1607 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 1608
66f17705
UD
16092006-12-09 Ulrich Drepper <drepper@redhat.com>
1610
1611 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
1612 (__rtld_mrlock_initialize): Add missing closing parenthesis.
1613
11bf311e
UD
16142006-10-30 Jakub Jelinek <jakub@redhat.com>
1615
1616 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
1617 __sync_lock_release instead of __sync_lock_release_si.
1618
536e40e2
UD
16192006-10-29 Jakub Jelinek <jakub@redhat.com>
1620
1621 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
1622 Define.
1623 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
1624 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
1625 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1626 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
1627 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
1628 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
1629 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
1630 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1631 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1632 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1633 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
1634
11bf311e
UD
16352006-10-27 Ulrich Drepper <drepper@redhat.com>
1636
1637 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
1638 * pthread_barrier_wait.c: ...here.
1639 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
1640 * pthread_cond_broadcast.c: ...here.
1641 * sysdeps/pthread/pthread_cond_signal.c: Move to...
1642 * pthread_cond_signal.c: ...here.
1643 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
1644 * pthread_cond_timedwait.c: ...here.
1645 * sysdeps/pthread/pthread_cond_wait.c: Move to...
1646 * pthread_cond_wait.c: ...here.
1647 * sysdeps/pthread/pthread_once.c: Move to...
1648 * pthread_once.c: ...here.
1649 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
1650 * pthread_rwlock_rdlock.c: ...here.
1651 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
1652 * pthread_rwlock_timedrdlock.c: ...here.
1653 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
1654 * pthread_rwlock_timedwrlock.c: ...here.
1655 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
1656 * pthread_rwlock_unlock.c: ...here.
1657 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
1658 * pthread_rwlock_wrlock.c: ...here.
1659 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
1660 * pthread_spin_destroy.c: ...here.
1661 * sysdeps/pthread/pthread_spin_init.c: Move to...
1662 * pthread_spin_init.c: ...here.
1663 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
1664 * pthread_spin_unlock.c: ...here.
1665 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
1666 * pthread_getcpuclockid.c: ...here.
1667
1668 * init.c: USE_TLS support is now always enabled.
1669 * tst-tls5.h: Likewise.
1670 * sysdeps/alpha/tls.h: Likewise.
1671 * sysdeps/i386/tls.h: Likewise.
1672 * sysdeps/ia64/tls.h: Likewise.
1673 * sysdeps/powerpc/tls.h: Likewise.
1674 * sysdeps/s390/tls.h: Likewise.
1675 * sysdeps/sh/tls.h: Likewise.
1676 * sysdeps/sparc/tls.h: Likewise.
1677 * sysdeps/x86_64/tls.h: Likewise.
1678
006a8f6f 16792006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
1680
1681 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
1682 __rtld_mrlock_change): Update oldval if atomic compare and exchange
1683 failed.
1684
1685 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
1686 Define to THREAD_SELF->header.multiple_threads.
1687 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
1688 Likewise.
1689 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
1690 Likewise.
1691 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
1692 (SINGLE_THREAD_P): Likewise.
1693 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
1694 (SINGLE_THREAD_P): Likewise.
1695 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
1696 (SINGLE_THREAD_P): Likewise.
1697 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
1698 (SINGLE_THREAD_P): Likewise.
1699 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
1700 Likewise.
1701 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1702 (SINGLE_THREAD_P): Likewise.
1703 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1704 (SINGLE_THREAD_P): Likewise.
1705 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
1706 Likewise.
1707
11bf311e 17082006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 1709
11bf311e
UD
1710 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
1711 by default rather than 2_3_3.
32c075e1 1712
11bf311e 17132006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 1714
11bf311e
UD
1715 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
1716 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
1717 atomic_* instead of catomic_* macros.
1718
17192006-10-12 Ulrich Drepper <drepper@redhat.com>
1720
1721 [BZ #3285]
1722 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
1723 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
1724 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
1725 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
1726 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
1727 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
1728 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
1729 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1730 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
1731 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
1732 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
1733 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
1734 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
1735
17362006-10-11 Ulrich Drepper <drepper@redhat.com>
1737
1738 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
1739 cancelable syscalls with six parameters.
1740
1741 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
1742 operations instead of atomic_*.
32c075e1 1743
11bf311e 17442006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 1745
11bf311e 1746 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 1747
11bf311e 17482006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 1749
11bf311e
UD
1750 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
1751 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
1752 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
1753 New file.
1754 * pthread_attr_setstack.c: Allow overwriting the version number of the
1755 new symbol.
1756 * pthread_attr_setstacksize.c: Likewise.
1757 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
1758 it.
1759 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
1760 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 1761
457b559e
UD
17622006-09-24 Ulrich Drepper <drepper@redhat.com>
1763
1764 [BZ #3251]
1765 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
1766 Patch by Petr Baudis.
1767
0466106e
UD
17682006-09-18 Jakub Jelinek <jakub@redhat.com>
1769
1770 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
1771
1772 * tst-cancel2.c (tf): Loop as long as something was written.
1773
bd6d3b7d
UD
17742006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1775
1776 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
1777 mutexes wake all mutexes.
1778 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
1779 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
1780 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1781
30aa5785
UD
17822006-09-12 Ulrich Drepper <drepper@redhat.com>
1783
1784 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
1785 to guarantee the thread is always canceled.
1786
2b6a801e
UD
17872006-09-08 Jakub Jelinek <jakub@redhat.com>
1788
1789 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
1790 Include stdlib.h.
1791 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
1792 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
1793 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1794 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1795 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 1796
346e6ad4
UD
17972006-09-08 Ulrich Drepper <drepper@redhat.com>
1798
1799 [BZ #3123]
1800 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
1801 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
1802 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1803 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1804 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
1805 * Makefile (tests): Add tst-cond22.
1806 * tst-cond22.c: New file.
1807
b051fc44
UD
18082006-09-05 Ulrich Drepper <drepper@redhat.com>
1809
1810 [BZ #3124]
1811 * descr.h (struct pthread): Add parent_cancelhandling.
1812 * sysdeps/pthread/createthread.c (create_thread): Pass parent
1813 cancelhandling value to child.
1814 * pthread_create.c (start_thread): If parent thread was canceled
1815 reset the SIGCANCEL mask.
1816 * Makefile (tests): Add tst-cancel25.
1817 * tst-cancel25.c: New file.
1818
d052233c
UD
18192006-09-05 Jakub Jelinek <jakub@redhat.com>
1820 Ulrich Drepper <drepper@redhat.com>
1821
1822 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
1823 counterp if it is already zero.
1824 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
1825
cd248c3f
UD
18262006-03-04 Jakub Jelinek <jakub@redhat.com>
1827 Roland McGrath <roland@redhat.com>
1828
1829 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
1830 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
1831 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
1832 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
1833 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
1834 lll_robust_mutex_timedlock, lll_mutex_unlock,
1835 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
1836 Add _L_*_ symbols around the subsection.
1837 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
1838 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
1839
18402006-03-03 Jakub Jelinek <jakub@redhat.com>
1841 Roland McGrath <roland@redhat.com>
1842
1843 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1844 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
1845 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
1846 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
1847 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
1848 lll_robust_mutex_timedlock, lll_mutex_unlock,
1849 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
1850 Add _L_*_ symbols around the subsection.
1851 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
1852 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
1853
b80770b2
UD
18542006-08-31 Ulrich Drepper <drepper@redhat.com>
1855
1856 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
1857 change because it can disturb too much existing code. If real hard
1858 reader preference is needed we'll introduce another type.
1859 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1860 (pthread_rwlock_timedwrlock): Likewise.
1861 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
1862 Likewise.
1863
bee2df0b
UD
18642006-08-30 Ulrich Drepper <drepper@redhat.com>
1865
1866 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
1867 reader preference.
1868 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1869 (pthread_rwlock_timedwrlock): Likewise.
1870 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
1871 Likewise.
1872
d678ebc1
UD
18732006-08-25 Jakub Jelinek <jakub@redhat.com>
1874
1875 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
1876 Only define ifdef SHARED.
1877
ba408f84
UD
18782006-08-23 Ulrich Drepper <drepper@redhat.com>
1879
1880 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
1881 (free_stacks): ...here.
1882 (__free_stack_cache): New function.
1883 * pthreadP.h: Declare __free_stack_cache.
1884 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
1885 ptr_freeres.
1886 * init.c (pthread_functions): Initialize ptr_freeres.
1887 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
1888 New freeres function.
1889
376e973a
UD
18902006-07-30 Joseph S. Myers <joseph@codesourcery.com>
1891
1892 [BZ #3018]
1893 * Makefile (extra-objs): Add modules to extra-test-objs instead.
1894
2b34af01
UD
18952006-08-20 Ulrich Drepper <drepper@redhat.com>
1896
1897 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
1898 _XOPEN_REALTIME_THREADS.
1899
89c85f87
UD
19002006-08-15 Jakub Jelinek <jakub@redhat.com>
1901
1902 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
1903 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
1904 HAVE_CLOCK_GETTIME_VSYSCALL.
1905 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
1906
f17efcb4
UD
19072006-08-14 Jakub Jelinek <jakub@redhat.com>
1908
1909 * sysdeps/unix/sysv/linux/bits/posix_opt.h
1910 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
1911 * descr.h (struct priority_protection_data): New type.
1912 (struct pthread): Add tpp field.
1913 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
1914 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
1915 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
1916 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
1917 TPP mutexes.
1918 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
1919 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
1920 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
1921 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
1922 * tpp.c: New file.
1923 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
1924 boosted by TPP.
1925 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
1926 * pthread_mutexattr_getprioceiling.c
1927 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
1928 in the SCHED_FIFO priority range.
1929 * pthread_mutexattr_setprioceiling.c
1930 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
1931 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
1932 if mutex is not TPP. Ceiling is now in __data.__lock.
1933 * pthread_mutex_setprioceiling.c: Include stdbool.h.
1934 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
1935 is now in __data.__lock. Add locking.
1936 * pthread_create.c (__free_tcb): Free pd->tpp structure.
1937 * Makefile (libpthread-routines): Add tpp.
1938 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
1939 * tst-tpp.h: New file.
1940 * tst-mutexpp1.c: New file.
1941 * tst-mutexpp6.c: New file.
1942 * tst-mutexpp10.c: New file.
1943 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
1944 * tst-mutex6.c (TEST_FUNCTION): Likewise.
1945
22bb134c
UD
19462006-08-12 Ulrich Drepper <drepper@redhat.com>
1947
1948 [BZ #2843]
1949 * pthread_join.c (pthread_join): Account for self being canceled
1950 when checking for deadlocks.
1951 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
1952 (tf1): Don't print anything after pthread_join returns, this would be
1953 another cancellation point.
1954 (tf2): Likewise.
1955 * tst-join6.c: New file.
1956 * Makefile (tests): Add tst-join6.
1957
f1762c0c
UD
19582006-08-03 Ulrich Drepper <drepper@redhat.com>
1959
9c06eb66
UD
1960 [BZ #2892]
1961 * pthread_setspecific.c (__pthread_setspecific): Check
1962 out-of-range index before checking for unused key.
1963
f1762c0c
UD
1964 * sysdeps/pthread/gai_misc.h: New file.
1965
7bb1b2c9
UD
19662006-08-01 Ulrich Drepper <drepper@redhat.com>
1967
1968 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
1969 file. Don't use sysctl.
1970 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
1971 overwrite the file if this is likely not true.
1972
b06e7e9a
UD
19732006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
1974
1975 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
1976 * Makefile (tests): Add tst-getpid3.
1977 * tst-getpid3.c: New file.
1978
b894c2ea
RM
19792006-07-30 Roland McGrath <roland@redhat.com>
1980
1981 * Makefile (libpthread-routines): Add ptw-sigsuspend.
1982
1983 * sysdeps/unix/sysv/linux/i386/not-cancel.h
1984 (pause_not_cancel): New macro.
1985 (nanosleep_not_cancel): New macro.
1986 (sigsuspend_not_cancel): New macro.
1987 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
1988 nanosleep_not_cancel macro from <not-cancel.h>.
1989 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
1990 macro from <not-cancel.h>.
1991
df47504c
UD
19922006-07-28 Ulrich Drepper <drepper@redhat.com>
1993 Jakub Jelinek <jakub@redhat.com>
1994
1995 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
1996 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
1997 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
1998 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
1999 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2000 * pthread_mutex_lock.c: Likewise.
2001 * pthread_mutex_timedlock.c: Likewise.
2002 * pthread_mutex_trylock.c: Likewise.
2003 * pthread_mutex_unlock.c: Likewise.
2004 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2005 all mutexes.
2006 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2007 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2008 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2009 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2010 pthread-pi-defines.sym.
2011 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2012 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2013 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2014 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2015 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2016 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2017 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2018 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2019 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2020 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2021 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2022 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2023 * tst-mutex2.c: Likewise.
2024 * tst-mutex3.c: Likewise.
2025 * tst-mutex4.c: Likewise.
2026 * tst-mutex5.c: Likewise.
2027 * tst-mutex6.c: Likewise.
2028 * tst-mutex7.c: Likewise.
2029 * tst-mutex7a.c: Likewise.
2030 * tst-mutex8.c: Likewise.
2031 * tst-mutex9.c: Likewise.
2032 * tst-robust1.c: Likewise.
2033 * tst-robust7.c: Likewise.
2034 * tst-robust8.c: Likewise.
2035 * tst-mutexpi1.c: New file.
2036 * tst-mutexpi2.c: New file.
2037 * tst-mutexpi3.c: New file.
2038 * tst-mutexpi4.c: New file.
2039 * tst-mutexpi5.c: New file.
2040 * tst-mutexpi6.c: New file.
2041 * tst-mutexpi7.c: New file.
2042 * tst-mutexpi7a.c: New file.
2043 * tst-mutexpi8.c: New file.
2044 * tst-mutexpi9.c: New file.
2045 * tst-robust1.c: New file.
2046 * tst-robust2.c: New file.
2047 * tst-robust3.c: New file.
2048 * tst-robust4.c: New file.
2049 * tst-robust5.c: New file.
2050 * tst-robust6.c: New file.
2051 * tst-robust7.c: New file.
2052 * tst-robust8.c: New file.
2053 * Makefile (tests): Add the new tests.
2054
2055 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2056 * pthread_mutex_destroy.c: Remove unneeded label.
2057
f3be81a9
UD
20582006-07-01 Ulrich Drepper <drepper@redhat.com>
2059
2060 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2061 computations to compile time.
2062
c26ca5e1
UD
20632006-06-04 Ulrich Drepper <drepper@redhat.com>
2064
2065 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2066
6f8a7dff
UD
20672006-05-15 Ulrich Drepper <drepper@redhat.com>
2068
c26ca5e1 2069 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2070
3d237e42
UD
20712006-05-11 Ulrich Drepper <drepper@redhat.com>
2072
04974d63
UD
2073 * pthread_key_create.c (__pthread_key_create): Do away with
2074 __pthread_keys_lock.
2075
2076 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2077 (__kernel_cpumask_size): Mark as hidden.
2078 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2079
3d237e42
UD
2080 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2081 * semaphoreP.h (__sem_mappings_lock): Likewise.
2082
790fc6e4
UD
20832006-05-10 Ulrich Drepper <drepper@redhat.com>
2084
2085 * pthread_atfork.c: Mark __dso_handle as hidden.
2086
be434a72
UD
20872006-05-09 Ulrich Drepper <drepper@redhat.com>
2088
2089 [BZ #2644]
2090 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2091 the reload problem. Change the one path in pthread_cancel_init
2092 which causes the problem. Force gcc to reload. Simplify callers.
2093 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2094 (_Unwind_GetBSP): Undo last patch.
2095
3142b1ac
UD
20962006-05-07 Ulrich Drepper <drepper@redhat.com>
2097
bf3635d3
UD
2098 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2099 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2100
2101 [BZ #2644]
2102 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2103 pointers are reloaded after pthread_cancel_init calls.
2104
27488789
UD
21052006-05-01 Ulrich Drepper <drepper@redhat.com>
2106
2107 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2108 __always_inline.
2109
a6375d11
UD
21102006-04-27 Ulrich Drepper <drepper@redhat.com>
2111
2112 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2113 Allocate new object which is passed to timer_sigev_thread so that
2114 the timer can be deleted before the new thread is scheduled.
2115
16a1d952
RM
21162006-04-26 Roland McGrath <roland@redhat.com>
2117
2118 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2119
7960f2a7
UD
21202006-04-08 Ulrich Drepper <drepper@redhat.com>
2121
ab9a9ff8
UD
2122 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2123 suffix for conditional jumps.
2124 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2125 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2126 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2127 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2128 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2129 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2130
7960f2a7
UD
2131 * init.c (sigcancel_handler): Compare with correct PID even if the
2132 thread is in the middle of a fork call.
2133 (sighandler_setxid): Likewise.
2134 Reported by Suzuki K P <suzuki@in.ibm.com> .
2135
2035d91c
UD
21362006-04-07 Jakub Jelinek <jakub@redhat.com>
2137
2138 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2139
0292b0dd
UD
21402006-04-06 Ulrich Drepper <drepper@redhat.com>
2141
2142 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2143 fails [Coverity CID 105].
2144
6738b3c0
UD
21452006-04-05 Ulrich Drepper <drepper@redhat.com>
2146
2147 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2148
359157a5
RM
21492006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2150
2151 [BZ #2505]
2152 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2153 Define __lll_rel_instr using lwsync.
2154
cd277b2d
UD
21552006-03-27 Ulrich Drepper <drepper@redhat.com>
2156
2157 * allocatestack.c (allocate_stack): Always initialize robust_head.
2158 * descr.h: Define struct robust_list_head.
2159 (struct pthread): Use robust_list_head in robust mutex list definition.
2160 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2161 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2162 (__pthread_initialize_minimal_internal): Register robust_list with
2163 the kernel.
2164 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2165 Declare __set_robust_list_avail.
2166 * pthread_create.c (start_thread): Register robust_list of new thread.
2167 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2168 waiters.
2169 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2170 number of users, it's unreliable.
2171 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2172 set_robust_list syscall is available.
2173 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2174 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2175 Set robust_head.list_op_pending before trying to lock a robust mutex.
2176 * pthread_mutex_timedlock.c: Likewise.
2177 * pthread_mutex_trylock.c: Likewise.
2178 * pthread_mutex_unlock.c: Likewise for unlocking.
2179 * Makefile (tests): Add tst-robust8.
2180 * tst-robust8.c: New file.
2181
facac085
UD
21822006-03-08 Andreas Schwab <schwab@suse.de>
2183
2184 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2185 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2186
7ccbe1a1
RM
21872006-03-05 Roland McGrath <roland@redhat.com>
2188
2189 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2190 and $config_os doesn't match *linux*.
2191
043cee37
RM
21922006-03-05 David S. Miller <davem@sunset.davemloft.net>
2193
2194 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2195 Use __syscall_error.
2196 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2197 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2198 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2199 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2200 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2201 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2202
88bce79e
UD
22032006-03-02 Ulrich Drepper <drepper@redhat.com>
2204
2205 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2206
672ec465
UD
22072006-03-01 Ulrich Drepper <drepper@redhat.com>
2208
2209 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2210 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2211 mutex.
2212 (__lll_robust_timedlock_wait): Likewise.
2213 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2214 (__lll_robust_lock_wait): Likewise.
2215 (__lll_robust_timedlock_wait): Likewise.
2216 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2217 (__lll_robust_lock_wait): Likewise.
2218 (__lll_robust_timedlock_wait): Likewise.
2219
c4a4875d
RM
22202006-03-01 Jakub Jelinek <jakub@redhat.com>
2221
2222 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2223 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2224 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2225 lll_robust_mutex_unlock): Define.
2226 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2227
3192fd8e
RM
22282006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2229
2230 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2231 instead of <clone.S>.
2232
14d44b19
RM
22332006-02-27 Jakub Jelinek <jakub@redhat.com>
2234
2235 * Makefile (libpthread-routines): Add
2236 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2237 and pthread_mutex_[sg]etprioceiling.
2238 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2239 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2240 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2241 pthread_mutex_setprioceiling.
2242 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2243 PTHREAD_PRIO_PROTECT): New enum values.
2244 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2245 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2246 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2247 prototypes.
2248 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2249 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2250 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2251 Define.
2252 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2253 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2254 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2255 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2256 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2257 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2258 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2259 protocol mutexes.
2260 * pthread_mutex_getprioceiling.c: New file.
2261 * pthread_mutex_setprioceiling.c: New file.
2262 * pthread_mutexattr_getprioceiling.c: New file.
2263 * pthread_mutexattr_setprioceiling.c: New file.
2264 * pthread_mutexattr_getprotocol.c: New file.
2265 * pthread_mutexattr_setprotocol.c: New file.
2266
62f6b9b2
RM
22672006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2268
2269 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2270
e0a3ed4f
RM
22712006-02-27 Roland McGrath <roland@redhat.com>
2272
2273 * sysdeps/pthread/Subdirs: List nptl here too.
2274 * configure (libc_add_on_canonical): New variable.
2275
2276 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2277
2278 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2279 self to get main source tree's file.
2280 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2281 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2282 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2283 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2284 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2285 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2286 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2287 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2288 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2289 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2290 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2291 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2292 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2293
2294 * Makefile: Use $(sysdirs) in vpath directive.
2295
2296 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2297 (CPPFLAGS-timer_routines.c): Likewise.
2298
2299 * Makeconfig (includes): Variable removed.
2300
84cfa284
RM
23012006-02-26 Roland McGrath <roland@redhat.com>
2302
2303 * sysdeps/generic/pt-raise.c: Moved to ...
2304 * pt-raise.c: ... here.
2305 * sysdeps/generic/lowlevellock.h: Moved to ...
2306 * lowlevellock.h: ... here.
2307
c5132ca1
RM
23082006-02-23 Roland McGrath <roland@redhat.com>
2309
2310 * descr.h (struct pthread): Add final member `end_padding'.
2311 (PTHREAD_STRUCT_END_PADDING): Use it.
2312
23132006-02-20 Roland McGrath <roland@redhat.com>
2314
2315 * sysdeps/mips: Directory removed, saved in ports repository.
2316 * sysdeps/unix/sysv/linux/mips: Likewise.
2317
a93317a1
UD
23182006-02-18 Ulrich Drepper <drepper@redhat.com>
2319
2320 * tst-robust1.c: Add second mutex to check that the mutex list is
2321 handled correctly.
2322
f1740bc4
UD
23232006-02-17 Jakub Jelinek <jakub@redhat.com>
2324
2325 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2326 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2327 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2328 lll_robust_mutex_unlock): New macros.
2329 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2330 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2331 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2332 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2333 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2334
a7245bf5
UD
23352006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2336
2337 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2338 definitions.
2339 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2340
49bfc1fe
UD
23412006-02-17 Ulrich Drepper <drepper@redhat.com>
2342
2343 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2344 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2345 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2346 (lll_robust_mutex_unlock): Likewise.
2347
56e987ac
UD
23482006-02-13 Jakub Jelinek <jakub@redhat.com>
2349
2350 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2351 Set robust_list.__next rather than robust_list.
2352 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2353 (__pthread_list_t): New typedef.
2354 (pthread_mutex_t): Replace __next and __prev fields with __list.
2355 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2356 (__pthread_list_t): New typedef.
2357 (pthread_mutex_t): Replace __next and __prev fields with __list.
2358 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2359 (__pthread_list_t, __pthread_slist_t): New typedefs.
2360 (pthread_mutex_t): Replace __next and __prev fields with __list.
2361 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2362 (__pthread_list_t, __pthread_slist_t): New typedefs.
2363 (pthread_mutex_t): Replace __next and __prev fields with __list.
2364 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2365 (__pthread_list_t, __pthread_slist_t): New typedefs.
2366 (pthread_mutex_t): Replace __next and __prev fields with __list.
2367 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2368 (__pthread_slist_t): New typedef.
2369 (pthread_mutex_t): Replace __next field with __list.
2370
683040c3
UD
23712006-02-15 Ulrich Drepper <drepper@redhat.com>
2372
25bc77e6 2373 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2374 PTHREAD_MUTEX_OWNERDEAD.
2375 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2376 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2377 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2378 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2379 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2380 to PTHREAD_MUTEX_INCONSISTENT.
2381 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2382 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2383 * pthread_mutex_trylock.c: Likewise.
2384 * pthread_mutex_timedlock.c: Likewise.
2385 * pthread_mutex_unlock.c: Likewise.
2386 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2387 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2388 lowlevelrobustlock.sym.
2389 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2390 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2391 definitions.
2392 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2393 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2394 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2395 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2396 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2397
bbf209a4
UD
23982006-02-12 Ulrich Drepper <drepper@redhat.com>
2399
b007ce7c
UD
2400 * allocatestack.c (allocate_stack): Initialize robust_list.
2401 * init.c (__pthread_initialize_minimal_internal): Likewise.
2402 * descr.h (struct xid_command): Pretty printing.
2403 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2404 robust_list. Adjust macros.
2405 * pthread_create.c (start_thread): Adjust robust_list handling.
2406 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2407 but the owner for all robust mutex types.
2408 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2409 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2410 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2411 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2412
bbf209a4
UD
2413 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2414 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2415
b576fca1
UD
24162006-02-08 Jakub Jelinek <jakub@redhat.com>
2417
2418 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2419 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2420
a6df7387
UD
24212006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2422
2423 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2424 Return status.
2425 (lll_futex_timed_wait): Define.
2426
7c65e900
UD
24272006-01-19 Ulrich Drepper <drepper@redhat.com>
2428
2429 * tst-cancel4.c: Test ppoll.
2430
5f9f21e8
AJ
24312006-01-18 Andreas Jaeger <aj@suse.de>
2432
cf407dfb 2433 [BZ #2167]
5f9f21e8
AJ
2434 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2435 (pthread_mutex_t): Follow changes for other archs. Based on patch
2436 by Jim Gifford <patches@jg555.com>.
2437
251278c6
UD
24382006-01-13 Richard Henderson <rth@redhat.com>
2439
2440 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2441
de59a291
RM
24422006-01-10 Roland McGrath <roland@redhat.com>
2443
2444 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
2445 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2446 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2447 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2448 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2449 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2450 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2451 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2452 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 2453 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 2454
931786ee
RM
24552006-01-09 Roland McGrath <roland@redhat.com>
2456
5d42c8c3
RM
2457 * tst-initializers1-c89.c: New file.
2458 * tst-initializers1-c99.c: New file.
2459 * tst-initializers1-gnu89.c: New file.
2460 * tst-initializers1-gnu99.c: New file.
2461 * Makefile (tests): Add them.
2462 (CFLAGS-tst-initializers1-c89.c): New variable.
2463 (CFLAGS-tst-initializers1-c99.c): New variable.
2464 (CFLAGS-tst-initializers1-gnu89.c): New variable.
2465 (CFLAGS-tst-initializers1-gnu99.c): New variable.
2466
931786ee
RM
2467 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2468 Use __extension__ on anonymous union definition.
2469 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2470 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2471 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2472 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 2473 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 2474
8dd18431
RM
24752006-01-08 Jakub Jelinek <jakub@redhat.com>
2476
2477 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2478 Don't give the union a name because it changes the mangled name.
2479 Instead name the struct for __data.
2480 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
2481 Likewise.
2482 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
2483 Likewise.
2484
ae11e412
UD
24852006-01-09 Jakub Jelinek <jakub@redhat.com>
2486
2487 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
2488 stack bias to mc_ftp field.
2489
c6885aa1
UD
24902006-01-07 Ulrich Drepper <drepper@redhat.com>
2491
2492 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 2493 being too clever and reloading the futex value where it shouldn't.
c6885aa1 2494
ae4ad00a
UD
24952006-01-06 Ulrich Drepper <drepper@redhat.com>
2496
2497 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
2498 correct type.
2499
ced368f7
UD
25002006-01-06 Jakub Jelinek <jakub@redhat.com>
2501
2502 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
2503 Add cfi directives.
2504
d804f5df
UD
25052006-01-06 Ulrich Drepper <drepper@redhat.com>
2506
cbbbb188 2507 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
2508 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
2509 rename in tcbhead_t.
2510
d804f5df
UD
2511 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2512 Don't give the union a name because it changes the mangled name.
2513 Instead name the struct for __data.
2514 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2515 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2516 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2517 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2518 * pthread_create.c (start_thread): Adjust robust mutex free loop.
2519 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
2520
679d83ba
UD
25212006-01-05 Ulrich Drepper <drepper@redhat.com>
2522
2523 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2524 Return status.
2525 (lll_futex_timed_wait): Define.
2526 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2527 * sysdeps/pthread/aio_misc.h: New file.
2528
06dc5bf3
RM
25292006-01-03 Joseph S. Myers <joseph@codesourcery.com>
2530
2531 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
2532
9759bbf1
UD
25332006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
2534
2535 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2536 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
2537 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2538
db59b28b
UD
25392006-01-04 Ulrich Drepper <drepper@redhat.com>
2540
2541 * tst-cancel24.cc: Use C headers instead of C++ headers.
2542
b01fe5f7
UD
25432006-01-03 Jakub Jelinek <jakub@redhat.com>
2544
2545 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
2546 sparc-linux configured glibc.
2547 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
2548 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
2549 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
2550 atomic_compare_and_exchange_val_24_acq instead of
2551 atomic_compare_and_exchange_val_acq.
2552 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
2553 instead of atomic_exchange_rel.
2554 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
2555 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
2556 file.
2557 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
2558 file.
2559 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
2560 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
2561 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
2562 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
2563 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
2564 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
2565 New file.
2566 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2567 New file.
2568 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
2569 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
2570 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
2571 file.
2572 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
2573 file.
2574 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
2575
35c2fd59
UD
25762006-01-03 Ulrich Drepper <drepper@redhat.com>
2577
2578 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
2579 mutex initializers.
2580
305bb37e
UD
25812006-01-02 Jakub Jelinek <jakub@redhat.com>
2582
2583 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
2584 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2585 THREAD_COPY_POINTER_GUARD): Define.
2586 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
2587 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
2588
cc792128
UD
25892006-01-01 Ulrich Drepper <drepper@redhat.com>
2590
2591 * version.c: Update copyright year.
2592
db0a00d3
UD
25932005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2594
2595 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
2596 .eh_frame section, use cfi_* directives.
2597 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
2598
b36205c4
UD
25992005-12-30 Ulrich Drepper <drepper@redhat.com>
2600
2601 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
2602 now.
2603
8b4f1598
UD
26042005-12-29 Ulrich Drepper <drepper@redhat.com>
2605
2606 * sysdeps/pthread/sigaction.c: Removed.
2607 * sigaction.c: New file.
2608 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
2609
fec5592d
UD
26102005-12-28 Ulrich Drepper <drepper@redhat.com>
2611
2612 * Makefile (tests): Add tst-signal7.
2613 * tst-signal7.c: New file.
2614
db169ed5
RM
26152005-12-27 Roland McGrath <roland@redhat.com>
2616
2617 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
2618 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
2619 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
2620 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2621 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2622 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2623 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2624 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2625 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2626 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2627 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
2628
bfffffae
UD
26292005-12-27 Jakub Jelinek <jakub@redhat.com>
2630
2631 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
2632 and __prev field to pthread_mutex_t.
2633 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2634 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2635 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2636 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2637 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
2638 to pthread_mutex_t.
2639
1bcfb5a5
UD
26402005-12-26 Ulrich Drepper <drepper@redhat.com>
2641
2642 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
2643 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
2644 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
2645 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
2646 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
2647 and PTHREAD_MUTEXATTR_FLAG_BITS.
2648 * descr.h (struct pthread): Add robust_list field and define
2649 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
2650 * pthread_mutexattr_getrobust.c: New file.
2651 * pthread_mutexattr_setrobust.c: New file.
2652 * pthread_mutex_consistent.c: New file.
2653 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
2654 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
2655 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
2656 Adjust pthread_mutex_t initializers.
2657 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
2658 field to pthread_mutex_t.
2659 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
2660 and __prev field to pthread_mutex_t.
2661 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
2662 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
2663 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
2664 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
2665 * pthread_mutexattr_gettype.c: Likewise.
2666 * pthread_mutexattr_setpshared.c: Likewise.
2667 * pthread_mutexattr_settype.c: Likewise.
2668 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
2669 Initialize mutex kind according to robust flag.
2670 * pthread_mutex_lock.c: Implement local robust mutex.
2671 * pthread_mutex_timedlock.c: Likewise.
2672 * pthread_mutex_trylock.c: Likewise.
2673 * pthread_mutex_unlock.c: Likewise.
2674 * pthread_create.c (start_thread): Mark robust mutexes which remained
2675 locked as dead.
2676 * tst-robust1.c: New file.
2677 * tst-robust2.c: New file.
2678 * tst-robust3.c: New file.
2679 * tst-robust4.c: New file.
2680 * tst-robust5.c: New file.
2681 * tst-robust6.c: New file.
2682 * tst-robust7.c: New file.
2683 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
2684 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
2685 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
2686 tst-robust5, tst-robust6, and tst-robust7.
2687
2688 * tst-typesizes.c: New file.
2689 * Makefile (tests): Add tst-typesizes.
2690
2691 * tst-once3.c: More debug output.
2692
9333ed0d
UD
26932005-12-24 Ulrich Drepper <drepper@redhat.com>
2694
d4d138a4
UD
2695 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
2696 missing after last change.
2697
bfffffae 2698 * version.c: Update copyright year.
9333ed0d 2699
dcc73a8d
UD
27002005-12-23 Ulrich Drepper <drepper@redhat.com>
2701
2702 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
2703 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
2704 * pthread_mutex_trylock.c: Likewise.
2705 * pthread_mutex_timedlock.c: Likewise.
2706 * pthread_mutex_unlock.c: Likewise.
2707
879f3ca6
RM
27082005-12-22 Roland McGrath <roland@redhat.com>
2709
2710 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
2711 so that #include_next's search location is not reset to the -I..
2712 directory where <nptl/...> can be found.
2713
077a0da7
UD
27142005-12-22 Ulrich Drepper <drepper@redhat.com>
2715
2716 [BZ #1913]
2717 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
2718 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
2719 * tst-cancel24.cc: New file.
2720 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 2721
8dea90aa
RM
27222005-12-21 Roland McGrath <roland@redhat.com>
2723
2724 * libc-cancellation.c: Use <> rather than "" #includes.
2725 * pt-cleanup.c: Likewise.
2726 * pthread_create.c: Likewise.
2727 * pthread_join.c: Likewise.
2728 * pthread_timedjoin.c: Likewise.
2729 * pthread_tryjoin.c: Likewise.
2730 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
2731 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
2732 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
2733 * unwind.c: Likewise.
2734
8da21f96
UD
27352005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2736
2737 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
2738 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
2739 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2740 THREAD_COPY_POINTER_GUARD): Define.
2741
00c2b3b9
UD
27422005-12-19 Jakub Jelinek <jakub@redhat.com>
2743
2744 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
2745 rather than one.
2746 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2747 THREAD_COPY_POINTER_GUARD): Define.
2748 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
2749 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
2750 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2751 THREAD_COPY_POINTER_GUARD): Define.
2752 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
2753 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
2754 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
2755 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
2756 Use PTR_DEMANGLE for B0 if defined.
2757
827b7087
UD
27582005-12-17 Ulrich Drepper <drepper@redhat.com>
2759
2760 * pthread_create.c (__pthread_create_2_1): Use
2761 THREAD_COPY_POINTER_GUARD if available.
2762 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
2763 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
2764 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
2765 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
2766 * sysdeps/x86_64/tls.h: Likewise.
2767
2826ac7e
RM
27682005-12-15 Roland McGrath <roland@redhat.com>
2769
2770 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
2771
b6ab06ce
UD
27722005-12-13 Ulrich Drepper <drepper@redhat.com>
2773
2774 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
2775 sysdeps/generic.
2776 * errno-loc.c: New file.
2777
f0d1a3b5
RM
27782005-12-12 Roland McGrath <roland@redhat.com>
2779
2780 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
2781 adjustments before choosing stack size. Update minimum stack size
2782 calculation to match allocate_stack change.
2783
db13ddbc
UD
27842005-12-12 Ulrich Drepper <drepper@redhat.com>
2785
2786 * allocatestack.c (allocate_stack): Don't demand that there is an
2787 additional full page available on the stack beside guard, TLS, the
2788 minimum stack.
2789
088f460f
UD
27902005-11-24 Ulrich Drepper <drepper@redhat.com>
2791
2792 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
2793 (__cleanup_fct_attribute): Use __regparm__ not regparm.
2794
2795 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
2796 compiling 32-bit code we must define __cleanup_fct_attribute.
2797
16feadf2
UD
2798005-11-24 Jakub Jelinek <jakub@redhat.com>
2799
2800 [BZ #1920]
2801 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
2802 __attribute__ instead of __attribute.
2803 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
2804 (__cleanup_fct_attribute): Likewise.
2805
e6e493bb
UD
28062005-11-17 Jakub Jelinek <jakub@redhat.com>
2807
2808 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
2809 a write barrier before writing libgcc_s_getcfa.
2810
8e635611
UD
28112005-11-06 Ulrich Drepper <drepper@redhat.com>
2812
2813 * sysdeps/unix/sysv/linux/configure: Removed.
2814
ce33ee7c
UD
28152005-11-05 Ulrich Drepper <drepper@redhat.com>
2816
2817 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
2818 optional init_array/fini_array support.
2819
20d511e0
RM
28202005-10-24 Roland McGrath <roland@redhat.com>
2821
2822 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
2823 versioned_symbol use.
2824
fe60d146
RM
28252005-10-16 Roland McGrath <roland@redhat.com>
2826
2827 * init.c (__pthread_initialize_minimal_internal): Even when using a
2828 compile-time default stack size, apply the minimum that allocate_stack
2829 will require, and round up to page size.
2830
0faa1cf5
RM
28312005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
2832
2833 * Makefile ($(test-modules)): Remove static pattern rule.
2834
f9126cc2
UD
28352005-10-14 Jakub Jelinek <jakub@redhat.com>
2836 Ulrich Drepper <drepper@redhat.com>
2837
2838 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
2839 alignment in callback function.
2840 * Makefile: Add rules to build and run tst-align3.
2841 * tst-align3.c: New file.
2842
015a5d22
RM
28432005-10-03 Jakub Jelinek <jakub@redhat.com>
2844
2845 * allocatestack.c (setxid_signal_thread): Add
2846 INTERNAL_SYSCALL_DECL (err).
2847
b71ce910
UD
28482005-10-02 Jakub Jelinek <jakub@redhat.com>
2849
2850 * allocatestack.c (setxid_signal_thread): Need to use
2851 atomic_compare_and_exchange_bool_acq.
2852
dff9a7a1
UD
28532005-10-01 Ulrich Drepper <drepper@redhat.com>
2854 Jakub Jelinek <jakub@redhat.com>
2855
2856 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
2857 CANCEL_RESTMASK.
2858 (struct pthread): Move specific_used field to avoid padding.
2859 Add setxid_futex field.
2860 * init.c (sighandler_setxid): Reset setxid flag and release the
2861 setxid futex.
2862 * allocatestack.c (setxid_signal_thread): New function. Broken
2863 out of the bodies of the two loops in __nptl_setxid. For undetached
2864 threads check whether they are exiting and if yes, don't send a signal.
2865 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
2866 * pthread_create.c (start_thread): For undetached threads, check
2867 whether setxid bit is set. If yes, wait until signal has been
2868 processed.
2869
2870 * allocatestack.c (STACK_VARIABLES): Initialize them.
2871 * pthread_create.c (__pthread_create_2_1): Initialize pd.
2872
560b4709
UD
28732004-09-02 Jakub Jelinek <jakub@redhat.com>
2874
2875 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
2876 waiters, awake all waiters on the associated mutex.
2877
5eac4760
RM
28782005-09-22 Roland McGrath <roland@redhat.com>
2879
2880 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
2881 ../sysdeps/x86_64/hp-timing.h).
2882
a3615024
UD
28832005-08-29 Jakub Jelinek <jakub@redhat.com>
2884
2885 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
2886 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2887 (lll_futex_wake_unlock): Define.
2888 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
2889 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2890 (lll_futex_wake_unlock): Define.
2891 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
2892 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2893 (lll_futex_wake_unlock): Define.
2894 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
2895 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2896 (lll_futex_wake_unlock): Define.
2897 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
2898 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2899 (lll_futex_wake_unlock): Define.
2900 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
2901 lll_futex_wake_unlock.
2902 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
2903 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2904 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
2905 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
2906 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
2907 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
2908
bf017034
UD
29092005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2910
2911 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
2912 Fix typo in register name.
2913
fd4af664
UD
29142005-08-23 Ulrich Drepper <drepper@redhat.com>
2915
8558d715
UD
2916 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2917 Use __sigfillset. Document that sigfillset does the right thing wrt
2918 to SIGSETXID.
fd4af664 2919
3fd1bc67
UD
29202005-07-11 Jakub Jelinek <jakub@redhat.com>
2921
44d75caf 2922 [BZ #1102]
3fd1bc67
UD
2923 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
2924 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
2925 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
2926 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
2927 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
2928 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
2929 in the structure.
2930 * Makefile (tests): Add tst-initializers1.
2931 (CFLAGS-tst-initializers1.c): Set.
2932 * tst-initializers1.c: New test.
2933
553185e2
UD
29342005-07-11 Jakub Jelinek <jakub@redhat.com>
2935
2936 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
2937 Make sure __flags are located at offset 48 from the start of the
2938 structure.
2939
8df08cb2
RM
29402005-07-02 Roland McGrath <roland@redhat.com>
2941
2942 * Makeconfig: Comment fix.
2943
253eb3a0
UD
29442005-07-05 Jakub Jelinek <jakub@redhat.com>
2945
2946 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
2947 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
2948 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
2949 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
2950 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
2951 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2952 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
2953 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
2954 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
2955 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
2956
bb6e8ca3
UD
29572005-06-25 Jakub Jelinek <jakub@redhat.com>
2958
2959 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
2960 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2961 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
2962 fields.
2963 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2964 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
2965 field. Put in sysinfo field unconditionally.
2966 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2967 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
2968 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2969 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
2970 fields.
2971 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
2972 * pthread_create.c (__pthread_create_2_1): Use
2973 THREAD_COPY_STACK_GUARD macro.
2974 * Makefile: Add rules to build and run tst-stackguard1{,-static}
2975 tests.
2976 * tst-stackguard1.c: New file.
2977 * tst-stackguard1-static.c: New file.
2978
99c7f870
UD
29792005-06-14 Alan Modra <amodra@bigpond.net.au>
2980
2981 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
2982 Invoke CGOTSETUP and CGOTRESTORE.
2983 (CGOTSETUP, CGOTRESTORE): Define.
2984
8074c5c5
RM
29852005-05-29 Richard Henderson <rth@redhat.com>
2986
2987 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
2988 (tf_write, tf_writev): Use it.
2989 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
2990 the system minimum.
2991
c179df4e
UD
29922005-05-23 Jakub Jelinek <jakub@redhat.com>
2993
2994 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2995 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
2996 __librt_*_asynccancel@local.
2997
b0e196a4
UD
29982005-05-17 Alan Modra <amodra@bigpond.net.au>
2999
3000 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3001 all occurrences of JUMPTARGET. Instead append @local to labels.
3002
f7d78e18
UD
30032005-05-20 Jakub Jelinek <jakub@redhat.com>
3004
3005 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3006 size/alignment of struct pthread rather than tcbhead_t.
3007 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3008 Likewise.
3009 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3010 Likewise.
3011 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3012 Likewise.
3013
363dd976
UD
30142005-05-19 Richard Henderson <rth@redhat.com>
3015
3016 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3017 __sync_val_compare_and_swap, not explicit _si variant.
3018 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3019
1ad9da69
UD
30202005-05-03 Ulrich Drepper <drepper@redhat.com>
3021
3022 [BZ #915]
3023 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3024
5085cd1f
UD
30252005-05-03 Jakub Jelinek <jakub@redhat.com>
3026
3027 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3028 .eh_frame section, use cfi_* directives.
3029
ad529081
UD
30302005-04-27 Jakub Jelinek <jakub@redhat.com>
3031
3032 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3033 of "" includes.
3034
dea99685
UD
30352005-04-27 Ulrich Drepper <drepper@redhat.com>
3036
c06aad09 3037 [BZ #1075]
dea99685
UD
3038 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3039 aio_write blocks.
3040
84060bad
RM
30412005-04-27 Roland McGrath <roland@redhat.com>
3042
5e2d8ac8
RM
3043 * Makefile (tests): Remove tst-clock2.
3044
84060bad
RM
3045 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3046 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3047 translating to the kernel clockid_t for our own process/thread clock.
3048
3049 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3050
4a035b9d
RM
30512005-04-15 Jakub Jelinek <jakub@redhat.com>
3052
3053 * old_pthread_cond_init.c: Include <errno.h>.
3054 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3055 process shared or uses clock other than CLOCK_REALTIME.
3056 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3057
edac0e8f
UD
30582005-04-13 David S. Miller <davem@davemloft.net>
3059
3060 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3061 * sysdeps/sparc/sparc64/clone.S: New file.
3062
613d8d52
RM
30632005-04-05 Jakub Jelinek <jakub@redhat.com>
3064
44d75caf 3065 [BZ #1102]
613d8d52
RM
3066 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3067 __inline instead of inline.
3068 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3069
ee618985
UD
30702005-03-31 Jakub Jelinek <jakub@redhat.com>
3071
3072 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3073 functionally equivalent, but shorter instructions.
3074 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3075 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3076 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3077 Likewise.
3078 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3079 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3080 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3081 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3082 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3083 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3084 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3085 Likewise.
3086 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3087 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3088 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3089 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3090 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3091
f850220b
AJ
30922005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3093
3094 * sysdeps/mips/Makefile: New file.
3095 * sysdeps/mips/nptl-sysdep.S: New file.
3096 * sysdeps/mips/tcb-offsets.sym: New file.
3097 * sysdeps/mips/pthread_spin_lock.S: New file.
3098 * sysdeps/mips/pthread_spin_trylock.S: New file.
3099 * sysdeps/mips/pthreaddef.h: New file.
3100 * sysdeps/mips/tls.h: New file.
3101 * sysdeps/mips/jmpbuf-unwind.h: New file.
3102 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3103 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3104 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3105 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3106 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3107 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3108 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3109 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3110 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3111 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3112
1e6da2b0
UD
31132005-03-23 Ulrich Drepper <drepper@redhat.com>
3114
c06aad09 3115 [BZ #1112]
1e6da2b0
UD
3116 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3117 variable to scerr.
3118
5233d576
RM
31192005-03-10 Jakub Jelinek <jakub@redhat.com>
3120
3121 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3122
3053ff11
RM
31232005-02-25 Roland McGrath <roland@redhat.com>
3124
3125 * alloca_cutoff.c: Correct license text.
3126 * tst-unload.c: Likewise.
3127 * sysdeps/pthread/allocalim.h: Likewise.
3128 * sysdeps/pthread/pt-initfini.c: Likewise.
3129 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3130 * sysdeps/pthread/bits/sigthread.h: Likewise.
3131 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3132 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3133
9cfe5381
RM
31342005-02-16 Roland McGrath <roland@redhat.com>
3135
3136 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3137 Use unsigned int * for ptr_nthreads.
3138
7de00121
RM
31392005-02-14 Alan Modra <amodra@bigpond.net.au>
3140
20d511e0 3141 [BZ #721]
7de00121
RM
3142 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3143 gcc4.
3144
4bae262d
UD
31452005-02-07 Richard Henderson <rth@redhat.com>
3146
613d8d52 3147 [BZ #787]
4bae262d
UD
3148 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3149 argument.
3150
75df54b7
RM
31512004-11-03 Marcus Brinkmann <marcus@gnu.org>
3152
3153 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3154 order of arguments in invocation of atomic_add_zero.
3155
ea9c93cc
UD
31562005-01-26 Jakub Jelinek <jakub@redhat.com>
3157
9cfe5381 3158 [BZ #737]
ea9c93cc
UD
3159 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3160 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3161 at least gotntpoff relocation and addition.
3162 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3163 Likewise.
3164 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3165 Likewise.
3166 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3167 Likewise.
3168
9dcafc55
UD
31692005-01-06 Ulrich Drepper <drepper@redhat.com>
3170
3171 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3172 entry for static tls deallocation fix.
3173 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3174 also contains information whether the memory pointed to is static
3175 TLS or not.
3176 * sysdeps/i386/tls.h: Likewise.
3177 * sysdeps/ia64/tls.h: Likewise.
3178 * sysdeps/powerpc/tls.h: Likewise.
3179 * sysdeps/s390/tls.h: Likewise.
3180 * sysdeps/sh/tls.h: Likewise.
3181 * sysdeps/sparc/tls.h: Likewise.
3182 * sysdeps/x86_64/tls.h: Likewise.
3183
a71c152c
UD
31842004-12-27 Ulrich Drepper <drepper@redhat.com>
3185
3186 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3187
d143c49e
UD
31882004-12-21 Jakub Jelinek <jakub@redhat.com>
3189
3190 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3191 %esp.
3192 * Makefile (tests): Add tst-align2.
3193 * tst-align2.c: New test.
3194 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3195 -mpreferred-stack-boundary=4.
3196
50130ded
RM
31972004-12-18 Roland McGrath <roland@redhat.com>
3198
3199 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3200 New file removed withdrawn for the moment.
3201
cbc53df0
RH
32022004-12-17 Richard Henderson <rth@redhat.com>
3203
3204 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3205 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3206
fb9d5c73
UD
32072004-12-16 Ulrich Drepper <drepper@redhat.com>
3208
03332aa6
UD
3209 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3210 Increased PTHREAD_STACK_MIN.
3211
fb9d5c73
UD
3212 * tst-context1.c (stacks): Use bigger stack size.
3213
e853ea00
UD
32142004-12-16 Jakub Jelinek <jakub@redhat.com>
3215
3216 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3217 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3218
f23673fc
UD
32192004-12-15 Jakub Jelinek <jakub@redhat.com>
3220
3221 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3222 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3223 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3224
917fbe70
UD
32252004-12-15 Ulrich Drepper <drepper@redhat.com>
3226
3227 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3228
1f9d7c27
UD
32292004-12-14 Ulrich Drepper <drepper@redhat.com>
3230
3231 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3232 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3233
3234 * tst-getpid1.c: If child crashes, report this first. Print which
3235 signal.
3236
bf7c04cd
UD
32372004-12-09 Ulrich Drepper <drepper@redhat.com>
3238
3239 * init.c (__pthread_initialize_minimal_internal): Also unblock
3240 SIGSETXID.
3241
32422004-12-01 Jakub Jelinek <jakub@redhat.com>
3243
3244 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3245 _POSIX_THREAD_CPUTIME): Define to 0.
3246 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3247 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3248 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3249 __timer_signal_thread_tclk): Remove.
3250 (init_module): Remove their initialization.
3251 (thread_cleanup): Remove their cleanup assertions.
3252 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3253 __timer_signal_thread_tclk): Remove.
3254 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3255 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3256 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3257
484cc801
UD
32582004-12-07 Jakub Jelinek <jakub@redhat.com>
3259
3260 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3261 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3262
3263 * Makefile (tests): Add tst-getpid2.
3264 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3265 (do_test): Use it. Use __clone2 instead of clone on ia64.
3266 * tst-getpid2.c: New test.
3267
2da9a6a1
UD
32682004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3269
3270 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3271
1ff241b8
UD
32722004-12-04 Ulrich Drepper <drepper@redhat.com>
3273
3274 * Makefile (tests): Add tst-getpid1.
3275 * tst-getpid1.c: New file.
3276 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3277 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3278
3f488b9c
RM
32792004-12-02 Roland McGrath <roland@redhat.com>
3280
3281 * Makefile (libpthread-nonshared): Variable removed.
3282 ($(objpfx)libpthread_nonshared.a): Target removed.
3283 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3284 These are now handled by generic magic from
3285 libpthread-static-only-routines being set.
3286
597ce09c
UD
32872004-11-27 Ulrich Drepper <drepper@redhat.com>
3288
3289 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3290 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3291 _POSIX_THREAD_PRIO_PROTECT): Define.
3292 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3293 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3294 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3295
60e4523a
UD
32962004-11-26 Jakub Jelinek <jakub@redhat.com>
3297
3298 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3299 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3300 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3301 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
3302 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3303 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3304 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3305
f1f2cafc
UD
33062004-11-24 Ulrich Drepper <drepper@redhat.com>
3307
bca2d208
UD
3308 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3309
f1f2cafc
UD
3310 * Makefile (libpthread-routines): Add pthread_setschedprio.
3311 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3312 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3313 * pthread_setschedprio.c: New file.
3314
b639d0c9
UD
33152004-11-20 Jakub Jelinek <jakub@redhat.com>
3316
ef2bb413
UD
3317 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3318 * pthread_cancel.c (pthread_create): Likewise.
3319
b639d0c9
UD
3320 * Makefile (libpthread-routines): Add vars.
3321 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3322 * init.c (__default_stacksize, __is_smp): Remove.
3323 * vars.c: New file.
3324 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3325 and define a wrapper macro.
3326 (PTHREAD_STATIC_FN_REQUIRE): Define.
3327 * allocatestack.c (__find_thread_by_id): Undefine.
3328 * pthread_create (__pthread_keys): Remove.
3329 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3330 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3331 PTHREAD_STATIC_FN_REQUIRE.
3332
3defcff3
UD
33332004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3334
3335 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3336 parameter to REGISTER macro.
3337
ec188f92
RM
33382004-11-17 Roland McGrath <roland@redhat.com>
3339
3340 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3341 Make sure SIGCANCEL is blocked as well.
3342
ccd8de9a
UD
33432004-11-10 Jakub Jelinek <jakub@redhat.com>
3344
3345 * sysdeps/pthread/setxid.h: New file.
3346 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3347 (struct xid_command): Add forward decl.
3348 (struct pthread_functions): Change return type of __nptl_setxid hook
3349 to int.
3350 * pthreadP.h (__nptl_setxid): Change return type to int.
3351 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3352 calling thread, return its return value and set errno on failure.
3353 * descr.h (struct xid_command): Change id type to long array.
3354
3355 * Makefile: Add rules to build and test tst-setuid1 and
3356 tst-setuid1-static.
3357 * tst-setuid1.c: New test.
3358 * tst-setuid1-static.c: New test.
3359
ed2ced8a
UD
33602004-11-10 Jakub Jelinek <jakub@redhat.com>
3361
3362 * Makefile (tests): Add tst-exit3.
3363 * tst-exit3.c: New test.
3364
948603ee
UD
33652004-11-09 Ulrich Drepper <drepper@redhat.com>
3366
3367 * Makefile (tests): Add tst-exit2.
3368 * tst-exit2.c: New file.
3369
ba5ffd2a
RM
33702004-11-09 Roland McGrath <roland@redhat.com>
3371
3372 [BZ #530]
3373 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3374 here, before calling clone.
3375 * pthread_create.c (start_thread): Don't do it here.
3376
c4d7bd39
RM
33772004-11-02 Jakub Jelinek <jakub@redhat.com>
3378
3379 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3380
543fb0c8
UD
33812004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3382
3383 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3384 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3385 assembler warning.
3386
a1fbd858
UD
33872004-10-28 Jakub Jelinek <jakub@redhat.com>
3388
3389 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3390 if sched_priority is not between minprio and maxprio.
3391
c2a4357a
UD
33922004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3393
3394 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3395 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3396
3397 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3398 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3399
78d8d211
UD
34002004-10-24 Ulrich Drepper <drepper@redhat.com>
3401
3402 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3403 not-cancelable I/O functions.
3404
dd28590f
UD
34052004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3406
3407 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3408 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3409 make sure 2 is stored in the futex and we looked at the old value.
3410 Fix a few other problems to return the correct value.
3411
f8c97af7
RH
34122004-10-14 Richard Henderson <rth@redhat.com>
3413
3414 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3415 make gcc4 happy.
3416
3feb8efa
UD
34172004-10-06 Jakub Jelinek <jakub@redhat.com>
3418
3419 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3420 of pthread-functions.h and pthreaddef.h.
3421 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3422
3423 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3424 Change __data.__nwaiters from int to unsigned int.
3425
3426 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3427 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3428
3429 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3430 before return type.
3431
3432 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3433 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3434
67060ef5
UD
34352004-10-06 Ulrich Drepper <drepper@redhat.com>
3436
3437 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3438 test fails, remove message queue.
3439 (tf_msgsnd): Likewise.
3440
f38a3086
UD
34412004-10-05 Jakub Jelinek <jakub@redhat.com>
3442
3443 * tst-clock1.c: Change #ifdef to #if defined.
3444 * tst-clock2.c: Likewise.
3445 * tst-cond11.c: Likewise.
3446
2c03b6db
UD
3447 * sysdeps/pthread/timer_create.c (timer_create): Use
3448 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
3449 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
3450 THREAD_CPUTIME.
3451
6ab5f50d
UD
34522004-10-05 Jakub Jelinek <jakub@redhat.com>
3453
3454 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
3455 _POSIX_THREAD_CPUTIME): Define to 0.
3456
e4bb4853
UD
34572004-10-04 Ulrich Drepper <drepper@redhat.com>
3458
3459 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
3460 and _POSIX_THREAD_CPUTIME to zero.
3461 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3462 * tst-barrier2.c: Fix testing for POSIX feature.
3463 * tst-clock1.c: Likewise.
3464 * tst-clock2.c: Likewise.
3465 * tst-cond11.c: Likewise.
3466 * tst-cond4.c: Likewise.
3467 * tst-cond6.c: Likewise.
3468 * tst-flock2.c: Likewise.
3469 * tst-mutex4.c: Likewise.
3470 * tst-mutex9.c: Likewise.
3471 * tst-rwlock12.c: Likewise.
3472 * tst-rwlock4.c: Likewise.
3473 * tst-signal1.c: Likewise.
3474 * tst-spin2.c: Likewise.
3475 * sysdeps/pthread/posix-timer.h: Likewise.
3476 * sysdeps/pthread/timer_create.c: Likewise.
3477 * sysdeps/pthread/timer_routines.c: Likewise.
3478
c1b48791
UD
34792004-10-01 Ulrich Drepper <drepper@redhat.com>
3480
927f0673
UD
3481 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3482 (__lll_mutex_timedlock_wait): Address futex correctly.
3483
c1b48791 3484 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 3485 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
3486 make sure 2 is stored in the futex and we looked at the old value.
3487 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3488 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
3489 which might very well made the code not working at all before.
7b87aca6 3490 [BZ #417]
c1b48791 3491
e9f4e844
UD
34922004-09-28 Ulrich Drepper <drepper@redhat.com>
3493
4f21c95d
UD
3494 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
3495 allow SIGSETXID to be sent.
3496 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
3497 for SIGSETXID to be defined.
3498 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
3499 SIGSETXID cannot be blocked.
3500
e9f4e844
UD
3501 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3502 Add __extension__ to long long types.
3503 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3504 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3505 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3506 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3507 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
3508 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3509 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3510
5f66b766
UD
35112004-09-25 Ulrich Drepper <drepper@redhat.com>
3512
3513 * descr.h (struct pthread): Add stopped_start field.
3514 * sysdeps/pthread/createthread.c (create_thread): Set
3515 start_stopped flag in descriptor for new thread appropriately.
3516 * pthread_create.c (start_thread): Only take lock to be stopped on
3517 startup if stopped_start flag says so.
3518
362038b0
UD
35192004-09-24 Ulrich Drepper <drepper@redhat.com>
3520
3f80a99b
UD
3521 * pthread_create.c (__pthread_create_2_1): Remember whether thread
3522 is created detached and if yes, do not try to free the stack in case
3523 the thread creation failed.
3524 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
3525 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
3526 case there has been no error. [BZ #405]
3527
362038b0
UD
3528 * pthread_create.c (start_thread): Don't wait for scheduler data
3529 etc to be set at the beginning of the function. The cancellation
3530 infrastructure must have been set up. And enable async
3531 cancellation before potentially going to sleep. [BZ #401]
3532
65f0beb9
UD
35332004-09-20 Ulrich Drepper <drepper@redhat.com>
3534
3c12b91a 3535 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
3536 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
3537 for now.
3538 * Makefile: Don't build pthread_set*id code for now.
3539
2edb61e3
UD
35402004-09-19 Ulrich Drepper <drepper@redhat.com>
3541
3542 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
3543 internal use.
3544 * allocatestack.c (__nptl_setxid): New function.
3545 * descr.h (struct xid_command): Define type.
3546 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
3547 (sighandler_setxid): New function.
3548 (__pthread_initialize_minimal): Register sighandler_setxid for
3549 SIGCANCEL.
3550 * pt-allocrtsig.c: Update comment.
3551 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
3552 Declare __nptl_setxid.
3553 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
3554 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
3555 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
3556 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
3557 and pthread_setresuid_np.
3558 * pthread_setgid_np.c: New file.
3559 * pthread_setuid_np.c: New file.
3560 * pthread_setegid_np.c: New file.
3561 * pthread_seteuid_np.c: New file.
3562 * pthread_setregid_np.c: New file.
3563 * pthread_setreuid_np.c: New file.
3564 * pthread_setresgid_np.c: New file.
3565 * pthread_setresuid_np.c: New file.
3566 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
3567 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
3568 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
3569 and pthread_setresuid_np.
3570 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
3571 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
3572 pthread_setregid, and pthread_setresgid.
3573
1ab1fa6f
UD
35742004-09-18 Ulrich Drepper <drepper@redhat.com>
3575
3576 * allocatestack.c (allocate_stack): Return EAGAIN instead of
3577 ENOMEM when out of memory.
3578
ae9e6b36
RM
35792004-09-10 Roland McGrath <roland@redhat.com>
3580
3581 [BZ #379]
3582 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
3583 code, since we don't try to use the broken CLONE_STOPPED any more.
3584 * pthread_create.c (start_thread): Likewise.
3585
424bd2f8
RH
35862004-09-15 Richard Henderson <rth@redhat.com>
3587
3588 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
3589
17b8a52d
UD
35902004-09-01 David Mosberger <davidm@hpl.hp.com>
3591
3592 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
3593 (__libc_unwind_longjmp): Delete macro and declare as function.
3594 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
3595 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
3596 nptl directory.
3597 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
3598 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
3599 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
3600
ccc63b07
UD
36012004-09-12 Ulrich Drepper <drepper@redhat.com>
3602
3603 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
3604 for __USE_XOPEN2K.
3605 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
3606 types also for __USE_XOPEN2K.
3607 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3608 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3609 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3610 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3611 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3612 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3613 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3614 [BZ #320]
3615
31f93b3b
UD
36162004-09-08 Ulrich Drepper <drepper@redhat.com>
3617
3618 * sysdeps/pthread/pthread.h
3619 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
3620 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
3621 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
3622 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
3623 [BZ #375]
3624
e0329987
UD
36252004-09-07 Ulrich Drepper <drepper@redhat.com>
3626
590b40f7
UD
3627 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
3628 PSEUDO to be used with . prefix.
3629
67254a97
UD
3630 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
3631 Use atomic_increment instead of atomic_exchange_and_add.
3632 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
3633 Likewise.
3634 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
3635 Likewise.
3636 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3637 Likewise.
3638
3639 * allocatestack.c (allocate_stack): Use atomic_increment_val
3640 instead of atomic_exchange_and_add.
3641 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
3642 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3643 Likewise.
3644 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
3645 Likewise.
3646
e0329987
UD
3647 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
3648 the initialization function might throw.
3649
42d86dd6 36502005-09-05 Richard Henderson <rth@redhat.com>
e0329987 3651
42d86dd6
RH
3652 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
3653 Move definition inside libpthread, libc, librt check. Provide
3654 definition for rtld.
3655
73f7c32c
UD
36562004-09-02 Ulrich Drepper <drepper@redhat.com>
3657
f76c8499
UD
3658 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
3659 * sysdeps/i386/jmpbuf-unwind.h: Likewise
3660 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3661 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3662 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3663 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3664 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3665 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
3666 * unwind.c: Use it.
3667
73f7c32c
UD
3668 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
3669 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
3670 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3671 Likewise.
3672 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
3673 Decrement __nwaiters. If pthread_cond_destroy has been called and
3674 this is the last waiter, signal pthread_cond_destroy caller and
3675 avoid using the pthread_cond_t structure after unlock.
3676 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3677 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3678 Read clock type from the least significant bits of __nwaiters instead
3679 of __clock.
3680 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3681 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
3682
36832004-08-31 Jakub Jelinek <jakub@redhat.com>
3684
3685 [BZ #342]
3686 * Makefile (tests): Add tst-cond20 and tst-cond21.
3687 * tst-cond20.c: New test.
3688 * tst-cond21.c: New test.
3689 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
3690 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
3691 it unsigned int.
3692 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
3693 Likewise.
3694 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3695 (pthread_cond_t): Likewise.
3696 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
3697 Likewise.
3698 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3699 Likewise.
3700 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
3701 Likewise.
3702 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
3703 (cond_nwaiters): New.
3704 (clock_bits): New.
3705 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
3706 if there are waiters not signalled yet.
3707 Wait until all already signalled waiters wake up.
3708 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
3709 __nwaiters. If pthread_cond_destroy has been called and this is the
3710 last waiter, signal pthread_cond_destroy caller and avoid using
3711 the pthread_cond_t structure after unlock.
3712 (__pthread_cond_wait): Increment __nwaiters in the beginning,
3713 decrement it when leaving. If pthread_cond_destroy has been called
3714 and this is the last waiter, signal pthread_cond_destroy caller.
3715 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
3716 Likewise. Read clock type from the least significant bits of
3717 __nwaiters instead of __clock.
3718 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
3719 whether clock ID can be encoded in COND_CLOCK_BITS bits.
3720 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
3721 clock type just from the last COND_CLOCK_BITS bits of value.
3722 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
3723 instead of __clock, just from second bit of condattr's value.
3724
409f7493
UD
37252004-08-30 Jakub Jelinek <jakub@redhat.com>
3726
3727 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
3728 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
3729 != 64.
3730 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
3731
92c6ccd1
RM
37322004-08-15 Roland McGrath <roland@frob.com>
3733
3734 * pthread_atfork.c: Update copyright terms including special exception
3735 for these trivial files, which are statically linked into executables
3736 that use dynamic linking for the significant library code.
3737
4d004cfb
UD
37382004-08-09 Jakub Jelinek <jakub@redhat.com>
3739
3740 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
3741 pthread_rwlock_rdlock.
3742 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
3743 Decrease __nr_readers_queued after reacquiring lock.
3744 * sysdeps/pthread/pthread_rwlock_timedrdlock
3745 (pthread_rwlock_timedrdlock): Likewise.
3746 Reported by Bob Cook <bobcook47@hotmail.com>.
3747
90595fb6
RM
37482004-08-11 Jakub Jelinek <jakub@redhat.com>
3749
3750 * tst-rwlock14.c (tf): Read main thread handle from *ARG
3751 before pthread_barrier_wait.
3752
fa46f7ab
UD
37532004-08-07 Ulrich Drepper <drepper@redhat.com>
3754
3755 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
3756 Remove unnecessary exception handling data.
3757
15ef4b55
UD
37582004-07-23 Jakub Jelinek <jakub@redhat.com>
3759
3760 [BZ #284]
3761 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
3762 instead of clockid_t.
3763
4fb907b7
RM
37642004-07-21 Roland McGrath <roland@redhat.com>
3765
3766 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
3767
37682004-07-19 Roland McGrath <roland@redhat.com>
3769
3770 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
3771
8f73811b
RM
37722004-07-02 Roland McGrath <roland@redhat.com>
3773
3774 * configure: Don't exit.
3775
290639c3
UD
37762004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3777
3778 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3779 (__pthread_cond_timedwait): Check for invalid nanosecond in
3780 timeout value.
3781
8e5aaad9
UD
37822004-07-07 Ulrich Drepper <drepper@redhat.com>
3783
3784 * Makefile: Add rules to build and run tst-fini1.
3785 * tst-fini1.c: New file.
3786 * tst-fini1mod.c: New file.
3787
ce6e047f
UD
37882004-07-05 Ulrich Drepper <drepper@redhat.com>
3789
3790 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
3791 if no cancellation support is needed.
3792 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
3793 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
3794 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3795 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
3796 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3797 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
3798 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
3799 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
3800 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
3801
3802 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
3803 only if not already defined.
3804
9b9ef823
UD
38052004-07-05 Jakub Jelinek <jakub@redhat.com>
3806
2dd18ce2
UD
3807 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
3808 constraint "m" instead of "0" for futex.
3809
9b9ef823
UD
3810 * shlib-versions: Add powerpc64-.*-linux.*.
3811
38205402
UD
38122004-07-04 Jakub Jelinek <jakub@redhat.com>
3813
3814 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
3815 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
3816 for valid tv_nsec.
3817 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
3818 1 billion and 64-bit tv_nsec which is valid when truncated to 32
3819 bits.
3820
78a9c837
RM
38212004-06-29 Roland McGrath <roland@redhat.com>
3822
3823 * Banner: NPTL no longer has its own version number.
3824 * Makefile (nptl-version): Variable removed.
3825 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
3826 using $(version), the glibc version number.
3827
d3d35527
UD
38282004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3829
3830 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
3831 Fix branch offset for a PLT entry.
3832 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
3833 Likewise.
3834 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3835 Likewise.
3836 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
3837 Likewise.
3838 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
3839 Likewise.
3840
346f18ae
UD
38412004-06-28 Jakub Jelinek <jakub@redhat.com>
3842
3843 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
3844 unconditionally.
3845
f3a19754
UD
38462004-06-28 Jakub Jelinek <jakub@redhat.com>
3847
3848 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
3849 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
3850 instead of tv_sec.
3851 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
3852 (pthread_rwlock_timedrdlock): Likewise.
3853
539842a4
UD
38542004-06-22 Jakub Jelinek <jakub@redhat.com>
3855
3856 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
3857 Set __r7 to val, not mutex.
3858
46f4c578
UD
38592004-06-27 Ulrich Drepper <drepper@redhat.com>
3860
3861 * Makefile: Add rules to build tst-rwlock14.
3862 * tst-rwlock14.c: New file.
3863
38642004-06-24 Boris Hu <boris.hu@intel.com>
3865
3866 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
3867 check.
3868 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
3869
9898e99c
AJ
38702004-06-19 Andreas Jaeger <aj@suse.de>
3871
3872 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
3873 assembler in last patch.
3874
7c3164bc
UD
38752004-06-17 Ulrich Drepper <drepper@redhat.com>
3876
3877 * sysdeps/pthread/pthread_cond_timedwait.c
3878 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
3879 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
3880 (__pthread_cond_timedwait): Check for invalid nanosecond in
3881 timeout value.
3882 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3883 * tst-cond19.c: New file.
3884 * Makefile: Add rules to build and run tst-cond19.
3885
72e61500
UD
38862004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
3887
3888 * tst-context1.c (GUARD_PATTERN): Defined.
3889 (tst_context_t): Define struct containing ucontext_t & guard words.
3890 (ctx): Declare as an array of tst_context_t.
3891 (fct): Verify uc_link & guard words are still valid.
3892 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
3893
7c370086
UD
38942004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3895
3896 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3897 Add __data.__futex field, reshuffle __data.__clock.
3898 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
3899 (__pthread_cond_signal): Increment __futex at the same time as
3900 __wakeup_seq or __total_seq. Pass address of __futex instead of
3901 address of low 32-bits of __wakeup_seq to futex syscall.
3902 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
3903 (__pthread_cond_wait): Likewise. Pass __futex value from before
3904 releasing internal lock to FUTEX_WAIT.
3905 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3906 (__pthread_cond_timedwait): Likewise.
3907 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
3908 (FUTEX_CMP_REQUEUE): Define.
3909 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
3910 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
3911 Pass __futex value from before the unlock and __futex address instead
3912 of address of low 32-bits of __wakeup_seq to futex syscall.
3913 Fallback to FUTEX_WAKE all on any errors.
3914
a9e526e7
RM
39152004-06-08 Jakub Jelinek <jakub@redhat.com>
3916
3917 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
3918 comment typo.
3919 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
3920 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
3921 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
3922 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
3923 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
3924
f1847a84
RM
39252004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
3926
3927 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
3928 Add memory clobber to inline assembly.
3929 (__lll_mutex_trylock): Likewise.
3930 (__lll_mutex_cond_trylock): Likewise.
3931
f7c81e1a
UD
39322004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
3933
3934 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
3935 Pass val argument as 6th system call argument in %r7.
3936
75fccede
UD
39372004-05-21 Jakub Jelinek <jakub@redhat.com>
3938
3939 * Makefile (tests): Add tst-cond16.
3940 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
3941 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
3942 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
3943 Add __data.__futex field, reshuffle __data.__clock.
3944 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
3945 (__pthread_cond_signal): Increment __futex at the same time as
3946 __wakeup_seq or __total_seq. Pass address of __futex instead of
3947 address of low 32-bits of __wakeup_seq to futex syscall.
3948 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
3949 (__pthread_cond_wait): Likewise. Pass __futex value from before
3950 releasing internal lock to FUTEX_WAIT.
3951 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
3952 (__pthread_cond_timedwait): Likewise.
3953 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
3954 (FUTEX_CMP_REQUEUE): Define.
3955 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
3956 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
3957 Pass __futex value from before the unlock and __futex address instead
3958 of address of low 32-bits of __wakeup_seq to futex syscall.
3959 Fallback to FUTEX_WAKE all on any errors.
3960 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
3961 Define.
3962 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
3963 internally. Return non-zero if error, zero if success.
3964 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
3965 Add __data.__futex field, reshuffle __data.__clock.
3966 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
3967 Define.
3968 (lll_futex_requeue): Add val argument, return 1 unconditionally
3969 for the time being.
3970 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
3971 Add __data.__futex field, reshuffle __data.__clock.
3972 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
3973 Define.
3974 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
3975 internally. Return non-zero if error, zero if success.
3976 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3977 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
3978 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
3979 Define.
3980 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
3981 internally. Return non-zero if error, zero if success.
3982 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
3983 Add __data.__futex field, reshuffle __data.__clock.
3984 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
3985 Define.
3986 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
3987 internally. Return non-zero if error, zero if success.
3988 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
3989 Add __data.__futex field, reshuffle __data.__clock.
3990 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3991 Add __data.__futex field, reshuffle __data.__clock.
3992 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
3993 Increment __futex at the same time as __wakeup_seq or __total_seq.
3994 Pass address of __futex instead of address of low 32-bits of
3995 __wakeup_seq to futex syscall.
3996 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
3997 Pass __futex value from before releasing internal lock
3998 to FUTEX_WAIT.
3999 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4000 Likewise. Avoid unnecessary shadowing of variables.
4001 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4002 Set __futex to 2 * __total_seq. Pass __futex value from before the
4003 unlock and __futex address instead of address of low 32-bits of
4004 __wakeup_seq to futex_requeue macro, adjust for new return value
4005 meaning.
4006 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4007 (__pthread_cond_signal): Increment __futex at the same time as
4008 __wakeup_seq or __total_seq. Pass address of __futex instead of
4009 address of low 32-bits of __wakeup_seq to futex syscall.
4010 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4011 (__pthread_cond_wait): Likewise. Pass __futex value from before
4012 releasing internal lock to FUTEX_WAIT.
4013 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4014 (__pthread_cond_timedwait): Likewise.
4015 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4016 (FUTEX_CMP_REQUEUE): Define.
4017 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4018 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4019 Pass __futex value from before the unlock and __futex address instead
4020 of address of low 32-bits of __wakeup_seq to futex syscall.
4021 Fallback to FUTEX_WAKE all on any errors.
4022
40232004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4024
4025 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4026 Add nop to align the end of critical section.
4027 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4028
fbf86dda
UD
40292004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4030
4031 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4032 Add __broadcast_seq field.
4033 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4034 all waiters as woken with woken_seq and bump broadcast counter.
4035 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4036 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4037 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4038 Comment typo fixes. Avoid returning -ETIMEDOUT.
4039
40402004-06-01 Ulrich Drepper <drepper@redhat.com>
4041
4042 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4043 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4044 Reported by Kaz Kojima.
4045
ffdd5e50
UD
40462004-05-25 Jakub Jelinek <jakub@redhat.com>
4047
4048 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4049
3abc82c8
UD
40502004-05-21 Jakub Jelinek <jakub@redhat.com>
4051
4052 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4053 __broadcast_seq with bc_seq after acquiring internal lock instead of
4054 before it.
4055
893a3511
UD
40562004-05-18 Jakub Jelinek <jakub@redhat.com>
4057
4058 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4059 compilation.
4060 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4061 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4062 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4063 (pthread_cond_t): Add __data.__broadcast_seq field.
4064 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4065 (FRAME_SIZE): Define.
4066 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4067 Comment typo fixes.
4068 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4069 Define.
4070 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4071 typo fixes.
4072 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4073 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4074 fixes.
4075
40762004-05-18 Ulrich Drepper <drepper@redhat.com>
4077
4078 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4079 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4080 Add __broadcast_seq field.
4081 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4082 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4083 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4084 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4085 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4086 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4087 all waiters as woken with woken_seq and bump broadcast counter.
4088 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4089 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4090 __broadcast_seq field.
4091 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4092 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4093 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4094 * pthread_cond_init.c: Initialize __broadcast_seq field.
4095 * Makefile (tests): Add tst-cond17 and tst-cond18.
4096 Add .NOTPARALLEL goal.
4097 * tst-cond16.c: New file. From Jakub.
4098 * tst-cond17.c: New file. From Jakub.
4099 * tst-cond18.c: New file. From Jakub.
4100
4123718e
UD
41012004-05-16 Ulrich Drepper <drepper@redhat.com>
4102
4103 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4104 unwind info.
4105
4106 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4107 Parametrize frame size. Correct some unwind info.
4108 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4109
2d7ae210
UD
41102004-05-04 Jakub Jelinek <jakub@redhat.com>
4111
4112 * tst-stack3.c: Note testing functionality beyond POSIX.
4113
50c2b6d7
UD
41142004-05-04 Jakub Jelinek <jakub@redhat.com>
4115
4116 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4117 Change conditional from ifdef to if.
4118
27b02589
UD
41192004-04-23 Jakub Jelinek <jakub@redhat.com>
4120
4121 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4122 SYSDEP_CANCEL_ERROR): Define.
4123 (PSEUDO): Use it.
4124
4bb8fc33
UD
41252004-05-01 Jakub Jelinek <jakub@redhat.com>
4126
4127 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4128
f9a06dc1
UD
41292004-04-20 Jakub Jelinek <jakub@redhat.com>
4130
4131 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4132
d3b52028
UD
41332004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4134
4135 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4136 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4137 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4138 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4139
a5dd0a6c
UD
41402004-04-19 Ulrich Drepper <drepper@redhat.com>
4141
4142 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4143 thread has all signals blocked.
4144
620c3354
AJ
41452004-04-18 Andreas Jaeger <aj@suse.de>
4146
4147 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4148 (SEM_VALUE_MAX): Add missing brace.
4149
1683daeb
UD
41502004-04-17 Jakub Jelinek <jakub@redhat.com>
4151
4152 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4153 in rt subdir.
4154 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4155 * sysdeps/pthread/tst-mqueue8x.c: New test.
4156 * tst-cancel4.c: Update comment about message queues.
4157
4158 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4159 return it_value { 0, 0 }.
4160 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4161 like SIGEV_SIGNAL.
4162 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4163 assertion for SIGEV_NONE.
4164 (thread_attr_compare): Compare all attributes, not just a partial
4165 subset.
4166
41672004-04-17 Jakub Jelinek <jakub@redhat.com>
4168
4169 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4170
f532641d
UD
41712004-04-17 Ulrich Drepper <drepper@redhat.com>
4172
4173 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4174 Just use a plain number.
4175 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4176 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4177 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4178 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4179 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4180 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4181 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4182
7eb7fdda
UD
41832004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4184
53392906
UD
4185 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4186 frame info.
4187 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4188
d7ba1313
UD
41892004-04-15 Jakub Jelinek <jakub@redhat.com>
4190
4191 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4192 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4193 of calling sigwaitinfo.
4194
5adac0e4
UD
41952004-04-16 Ulrich Drepper <drepper@redhat.com>
4196
4197 * allocatestack.c (allocate_stack): Set reported_guardsize
4198 unconditionally.
4199 * pthread_getattr_np.c (pthread_getattr_np): Use
4200 reported_guardsize instead of guardsize.
4201 * descr.h (struct pthread): Add reported_guardsize field.
4202
f93fa7d4
UD
42032004-04-13 Jakub Jelinek <jakub@redhat.com>
4204
4205 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4206
1b82c6c7
UD
42072004-04-12 Ulrich Drepper <drepper@redhat.com>
4208
4209 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4210
42112004-04-08 Jakub Jelinek <jakub@redhat.com>
4212
4213 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4214 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4215 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4216 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4217 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4218 Define.
4219 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4220 (_POSIX_MESSAGE_PASSING): Define.
4221 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4222 (_POSIX_MESSAGE_PASSING): Define.
4223 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4224 (_POSIX_MESSAGE_PASSING): Define.
4225
e6eb894e
UD
42262004-04-04 Ulrich Drepper <drepper@redhat.com>
4227
4228 * tst-context1.c (fct): Check whether correct stack is used.
4229
1e084487
UD
42302004-04-03 Ulrich Drepper <drepper@redhat.com>
4231
4e73e115
UD
4232 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4233 matching constraints for asm mem parameters.
4234
1e084487
UD
4235 * tst-clock2.c (tf): Don't define unless needed.
4236
feca5e0b
UD
42372004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4238
4239 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4240 $(gnulib).
4241
3fa21fd8
UD
42422004-03-30 Ulrich Drepper <drepper@redhat.com>
4243
4244 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4245 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4246 * pthreadP.h: Declare __nptl_deallocate_tsd.
4247 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4248 Adjust caller.
4249
4250 * Makefile (tests): Add tst-tsd5.
4251 * tst-tsd5.c: New file.
4252
8e32efa6
UD
42532004-03-29 Ulrich Drepper <drepper@redhat.com>
4254
4255 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4256 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4257 is SHLIB_COMPAT check.
4258 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4259 (__pthread_attr_getaffinity_old): Likewise.
4260 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4261 (__pthread_getaffinity_old): Likewise.
4262 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4263 (__pthread_setaffinity_old): Likewise.
4264
eec8b6ca
UD
42652004-03-26 Ulrich Drepper <drepper@redhat.com>
4266
4267 * allocatestack.c (_make_stacks_executable): Call
4268 _dl_make_stack_executable first.
4269
db2f05ba
RM
42702004-03-24 Roland McGrath <roland@redhat.com>
4271
4272 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4273 constraint instead of "0".
4274
6abbc501
UD
42752004-03-24 Ulrich Drepper <drepper@redhat.com>
4276
68dc4dcb
UD
4277 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4278 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4279
6abbc501
UD
4280 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4281 code to avoid warning.
4282
865e14d9
AJ
42832004-03-24 Andreas Jaeger <aj@suse.de>
4284
4285 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4286 (__pthread_attr_setaffinity_old): Remove const.
4287
16b06b70
UD
42882004-03-23 Ulrich Drepper <drepper@redhat.com>
4289
2c0b891a
UD
4290 * sysdeps/unix/sysv/linux/smp.h: New file.
4291 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4292 * init.c: Define __is_smp.
4293 (__pthread_initialize_minimal_internal): Call is_smp_system to
4294 initialize __is_smp.
4295 * pthreadP.h: Declare __is_smp.
4296 Define MAX_ADAPTIVE_COUNT is necessary.
4297 * pthread_mutex_init.c: Add comment regarding __spins field.
4298 * pthread_mutex_lock.c: Implement adaptive mutex type.
4299 * pthread_mutex_timedlock.c: Likewise.
4300 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4301 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4302 Add __spins field.
4303 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4304 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4305 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4306 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4307 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4308 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4309 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4310 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4311 lll_mutex_cond_trylock.
4312 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4313 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4314 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4315 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4316 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4317 Define BUSY_WAIT_NOP.
4318 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4319 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4320
4321 * tst-mutex5.c: Add support for testing adaptive mutexes.
4322 * tst-mutex7.c: Likewise.
4323 * tst-mutex5a.c: New file.
4324 * tst-mutex7a.c: New file.
4325 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4326
565699e4
UD
4327 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4328 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4329 vgettimeofday call might destroy the content.
565699e4 4330
7fe1586f
UD
4331 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4332 @pause in the loop.
4333
e408880b
UD
4334 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4335 No need to restrict type of ret. Make it int. Add comment.
4336
16b06b70
UD
4337 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4338 Remove unnecessary setne instruction.
4339
61645263
UD
43402004-03-22 Jakub Jelinek <jakub@redhat.com>
4341
4342 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4343 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4344 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4345 If realloc fails, break out of the loop.
4346
e3d4c585
AJ
43472004-03-20 Andreas Jaeger <aj@suse.de>
4348
4349 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4350 (__pthread_setaffinity_old): Fix interface.
4351 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4352 (__pthread_getaffinity_old): Likewise.
4353
4354 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4355 (__pthread_setaffinity_new): Remove duplicate declaration.
4356
3abb1ff7
UD
43572004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4358
4359 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4360 the return value to a safe register.
4361 (CDISABLE): Set the function argument correctly.
4362
07bd2a3f
UD
43632004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4364
4365 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4366 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4367 Rewrite so that only one locked memory operation per round is needed.
4368 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4369 (pthread_barrier_wait): After wakeup, release lock only when the
4370 last thread stopped using the barrier object.
4371 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4372 (__pthread_cond_wait): Don't store mutex address if the current
4373 value is ~0l. Add correct cleanup support and unwind info.
4374 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4375 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4376 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4377 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4378 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4379 Add correct cleanup support and unwind info.
4380 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4381 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4382 information for syscall wrappers.
4383
14c35863
UD
43842004-03-18 Ulrich Drepper <drepper@redhat.com>
4385
4386 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4387 cpusetsize field, remove next.
4388 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4389 parameter for size of the CPU set.
4390 (pthread_setaffinity_np): Likewise.
4391 (pthread_attr_getaffinity_np): Likewise.
4392 (pthread_attr_setaffinity_np): Likewise.
4393 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4394 interface change, keep compatibility code.
4395 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4396 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4397 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4398 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4399 __pthread_getaffinity_np.
4400 * Versions: Add version for changed interfaces.
4401 * tst-attr3.c: Adjust test for interface change.
4402 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4403 increasing buffer sizes.
4404 * pthread_attr_destroy.c: Remove unused list handling.
4405 * pthread_attr_init.c: Likewise.
4406
8e115d80
RM
44072004-03-17 Roland McGrath <roland@redhat.com>
4408
4409 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4410 first argument to clock_getres so we ever enable kernel timers.
4411
e3b22ad3
UD
44122004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4413
4414 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4415
841153fa
RH
44162004-03-12 Richard Henderson <rth@redhat.com>
4417
e3b22ad3
UD
4418 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4419 oldvalue from CENABLE to CDISABLE.
841153fa 4420
932dfea7
UD
44212004-03-12 Ulrich Drepper <drepper@redhat.com>
4422
4423 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4424 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4425 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4426 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4427
9852f6dc
RH
44282004-03-11 Richard Henderson <rth@redhat.com>
4429
4430 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4431 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4432 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4433
43513fb7
UD
44342004-03-11 Jakub Jelinek <jakub@redhat.com>
4435
4436 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4437 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4438 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4439
44402004-03-11 Jakub Jelinek <jakub@redhat.com>
4441
4442 * forward.c (__pthread_cond_broadcast_2_0,
4443 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
4444 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
4445 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
4446
8a3e10e0
UD
44472004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4448
4449 * sysdeps/sh/tcb-offsets.sym: Add PID.
4450 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
4451 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
4452
6d3a2bec
UD
44532004-03-10 Ulrich Drepper <drepper@redhat.com>
4454
4455 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
4456 include <sysdep-cancel.h>, vfork is no cancellation point.
4457 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
4458 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
4459 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
4460
d3a4a571
UD
44612004-03-10 Jakub Jelinek <jakub@redhat.com>
4462
73b4ce64
UD
4463 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
4464 libc_hidden_def.
4465 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
4466 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
4467 Likewise.
4468 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
4469 Likewise.
4470 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
4471 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
4472 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
4473 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
4474 of DO_CALL_VIA_BREAK. Work around a gas problem.
4475
d682a515
UD
4476 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
4477 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
4478 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
4479 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
4480 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
4481 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
4482
4483 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
4484 a local register for saving old PID. Negate PID in parent upon exit.
4485
d3a4a571
UD
4486 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
4487 tcb-offsets.h.
4488 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4489 before syscall, set to the old value in the parent afterwards.
4490 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
4491 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
4492 tcb-offsets.h.
4493 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4494 before syscall, set to the old value in the parent afterwards.
4495 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
4496 * sysdeps/s390/tcb-offsets.sym: Add PID.
4497
4498 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
4499 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
4500 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
4501 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
4502 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
4503 * sysdeps/sparc/tcb-offsets.sym: Add PID.
4504
45052004-03-10 Andreas Schwab <schwab@suse.de>
4506
4507 * sysdeps/ia64/tcb-offsets.sym: Add PID.
4508 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
4509 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
4510
3f2fb223 45112004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 4512
3f2fb223
UD
4513 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
4514 * tst-cancel21.c (do_one_test): Likewise.
4515 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 4516
8b9d6054
UD
45172004-02-09 Jakub Jelinek <jakub@redhat.com>
4518
4519 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
4520 if non-zero and set to INT_MIN if zero.
4521 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
4522 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
4523 (SAVE_PID, RESTORE_PID): Define.
4524 (__vfork): Use it.
4525 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
4526 Use relative path to avoid including NPTL i386/vfork.S.
4527 (SAVE_PID, RESTORE_PID): Define.
4528 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
4529 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
4530 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
4531 tst-vfork2x.
4532 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
4533 * tst-vfork1.c: New test.
4534 * tst-vfork2.c: New test.
4535 * tst-vfork1x.c: New test.
4536 * tst-vfork2x.c: New test.
4537
02287d05
UD
45382004-03-08 Ulrich Drepper <drepper@redhat.com>
4539
c072ef6d 4540 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 4541 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 4542 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 4543 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 4544
d4acd24b
UD
45452004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
4546
4547 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
4548
8acb4b81
UD
45492004-03-08 H.J. Lu <hongjiu.lu@intel.com>
4550
4551 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
4552 _rtld_global_ro.
4553
4d1a02ef
UD
45542004-03-07 Ulrich Drepper <drepper@redhat.com>
4555
001836c8 4556 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 4557 _rtld_global_ro.
001836c8 4558
4d1a02ef
UD
4559 * tst-once4.c: Remove unnecessary macro definition.
4560
4561 * tst-mutex7.c (do_test): Limit thread stack size.
4562 * tst-once2.c (do_test): Likewise.
4563 * tst-tls3.c (do_test): Likewise.
4564 * tst-tls1.c (do_test): Likewise.
4565 * tst-signal3.c (do_test): Likewise.
4566 * tst-kill6.c (do_test): Likewise.
4567 * tst-key4.c (do_test): Likewise.
4568 * tst-join4.c (do_test): Likewise.
4569 * tst-fork1.c (do_test): Likewise.
4570 * tst-context1.c (do_test): Likewise.
4571 * tst-cond2.c (do_test): Likewise.
4572 * tst-cond10.c (do_test): Likewise.
4573 * tst-clock2.c (do_test): Likewise.
4574 * tst-cancel10.c (do_test): Likewise.
4575 * tst-basic2.c (do_test): Likewise.
4576 * tst-barrier4.c (do_test): Likewise.
4577
aa420660
UD
45782004-03-05 Ulrich Drepper <drepper@redhat.com>
4579
4580 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
4581
cff08c81
UD
45822004-03-01 Ulrich Drepper <drepper@redhat.com>
4583
4584 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4585 (__pthread_cond_timedwait): Optimize wakeup test.
4586 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
4587 (__pthread_cond_wait): Likewise.
4588 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4589 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4590 Likewise.
4591
b7fe377c
UD
45922004-02-29 Ulrich Drepper <drepper@redhat.com>
4593
4594 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
4595 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
4596 the atomic instruction needed.
4597 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4598 (__lll_mutex_lock_wait): Likewise.
4599
4c771a3b
UD
46002004-02-28 Ulrich Drepper <drepper@redhat.com>
4601
4602 * Makefile (tests): Add tst-cond14 and tst-cond15.
4603 * tst-cond14.c: New file.
4604 * tst-cond15.c: New file.
4605
a2c33d5a
UD
46062004-02-27 Ulrich Drepper <drepper@redhat.com>
4607
4608 * sysdeps/pthread/createthread.c (create_thread): Remove use of
4609 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
4610 needs to be implemented differently to be useful.
4611
261eada2
UD
46122004-02-26 Ulrich Drepper <drepper@redhat.com>
4613
14ffbc83
UD
4614 * pthread_attr_setschedparam.c: Don't test priority against limits
4615 here. Set ATTR_FLAG_SCHED_SET flag.
4616 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
4617 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
4618 from parent thread to child. If attribute is used and scheduling
4619 parameters are not inherited, copy parameters from attribute or
4620 compute them. Check priority value.
4621 * pthread_getschedparam.c: If the parameters aren't known yet get
4622 them from the kernel.
4623 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
4624 ATTR_FLAG_POLICY_SET flag for thread.
4625 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
4626 and ATTR_FLAG_POLICY_SET.
4627
4628 * sysdeps/pthread/createthread.c: Use tgkill if possible.
4629
261eada2
UD
4630 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
4631 fail if stack address hasn't been set. Just return 0.
4632
701d185c
UD
46332004-02-25 Ulrich Drepper <drepper@redhat.com>
4634
25b8e63c
UD
4635 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
4636 libpthread for the files in this list.
4637 (CFLAGS-tst-unload): Removed.
4638 * tst-unload.c (do_test): Don't use complete path for
4639 LIBPHREAD_SO.
4640
701d185c
UD
4641 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
4642 tst-_res1mod2.
4643
a8fd5a02
UD
46442004-02-22 Ulrich Drepper <drepper@redhat.com>
4645
4646 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
4647 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
4648 operation per round is needed.
4649 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4650 (__lll_mutex_lock_wait): Likewise.
4651
dd0b7b19
UD
46522004-02-20 Ulrich Drepper <drepper@redhat.com>
4653
4654 * tst-cancel9.c (cleanup): Don't print to stderr.
4655
5990e1fe
UD
46562004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4657
4658 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
4659
33ab3b66
UD
46602004-02-20 Jakub Jelinek <jakub@redhat.com>
4661
1be3130e
UD
4662 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
4663 (__syscall_error_handler2): Call CDISABLE.
4664 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
4665 (__syscall_error_handler2): Call CDISABLE.
4666
8ba5025a
UD
4667 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4668 Release lock before the loop, don't reacquire it.
8ba5025a 4669
33ab3b66
UD
4670 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
4671
11986c68
UD
46722004-02-19 Andreas Schwab <schwab@suse.de>
4673
4674 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4675 Fix last change.
4676
dc391246
UD
46772004-02-18 Ulrich Drepper <drepper@redhat.com>
4678
37c054c7
UD
4679 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
4680 (pthread_barrier_wait): After wakeup, release lock only when the
4681 last thread stopped using the barrier object.
4682 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
4683 (pthread_barrier_wait): Likewise.
4684 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4685 Likewise.
4686 * Makefile (tests): Add tst-barrier4.
4687 * tst-barrier4.c: New file.
dc391246
UD
4688
4689 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4690 (__pthread_cond_timedwait): Perform timeout test while holding
4691 internal lock to prevent wakeup race.
4692 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
4693 * sysdeps/pthread/pthread_cond_timedwait.c
4694 (__pthread_cond_timedwait): Likewise.
4695 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4696 (__pthread_cond_timedwait): Likewise.
4697
4a08113c
UD
46982004-02-18 Jakub Jelinek <jakub@redhat.com>
4699
4700 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
4701 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
4702 * Makefile (tests): Add tst-rwlock13.
4703 * tst-rwlock13.c: New test.
4704
71b1675e
UD
47052004-02-16 Ulrich Drepper <drepper@redhat.com>
4706
4707 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4708 (__condvar_tw_cleanup): Little optimization.
4709 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
4710
cd9fdc72
UD
47112004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
4712
4713 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
4714 libpthread as "lib" parameter to SHLIB_COMPAT.
4715 (__novmx_siglongjmp): Fix typo in function name.
4716 (__novmx_longjmp): Fix typo in function name.
4717
82038750
UD
47182004-02-13 Ulrich Drepper <drepper@redhat.com>
4719
b078c591
UD
4720 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
4721 __builtin_expect.
4722
82038750
UD
4723 * sysdeps/generic/pt-longjmp.c: Moved to...
4724 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
4725
e2982bf0
UD
47262004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
4727
4728 * Makefile (libpthread-routines): Add pt-cleanup.
4729 * pt-longjmp.c: Removed.
4730 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
4731 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
4732 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
4733 Version longjmp, siglongjmp for GLIBC_2.3.4.
4734 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
4735
3730d95c
UD
47362004-02-13 Ulrich Drepper <drepper@redhat.com>
4737
219304ec
UD
4738 * sysdeps/pthread/pthread_cond_timedwait.c
4739 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
4740 Reuse code. Add __builtin_expects.
4741
3730d95c
UD
4742 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4743 (__pthread_cond_timedwait): Get internal lock in case timeout has
4744 passed before the futex syscall.
4745 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4746
5673ccc1
UD
47472004-01-20 Ulrich Drepper <drepper@redhat.com>
4748
debddf64
UD
4749 * allocatestack.c: Pretty printing.
4750
5673ccc1
UD
4751 * sysdeps/pthread/createthread.c (create_thread): Don't add
4752 CLONE_DETACHED bit if it is not necessary.
4753
6bae8725
UD
47542004-01-16 Ulrich Drepper <drepper@redhat.com>
4755
4756 * pthread_getattr_np.c: Include ldsodefs.h.
4757
ff151400
RH
47582004-01-16 Richard Henderson <rth@redhat.com>
4759
6bae8725
UD
4760 * allocatestack.c: Don't declare __libc_stack_end.
4761 * init.c (__pthread_initialize_minimal_internal): Likewise.
4762 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 4763
ba683832
RH
47642004-01-15 Richard Henderson <rth@redhat.com>
4765
4766 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
4767 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
4768 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
4769 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
4770 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
4771 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
4772 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
4773 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
4774
630d93a7
UD
47752004-01-14 Ulrich Drepper <drepper@redhat.com>
4776
219304ec 4777 * init.c (pthread_functions): Make array const.
630d93a7 4778
d1fc817e
UD
47792004-01-13 Ulrich Drepper <drepper@redhat.com>
4780
4781 * allocatestack.c (__make_stacks_executable): Change interface.
4782 Check parameters. Pass parameter on to libc counterpart.
4783 * pthreadP.h: Change declaration.
4784
dc927809
RH
47852004-01-13 Richard Henderson <rth@redhat.com>
4786
10677727
UD
4787 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
4788 prototype form.
4789 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
4790 Likewise.
4791
d1fc817e
UD
4792 * sysdeps/alpha/Makefile: New file.
4793 * sysdeps/alpha/tcb-offsets.sym: New file.
4794 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4795 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 4796
d1fc817e
UD
4797 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
4798 on powerpc version.
dc927809 4799
249a3d0c
UD
48002004-01-08 Jakub Jelinek <jakub@redhat.com>
4801
4802 * Makefile (tests): Add tst-backtrace1.
4803 * tst-backtrace1.c: New test.
4804
763c0490
RM
48052003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
4806
4807 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
4808 register as second parameter to the REGISTER macro.
4809 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
4810 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
4811 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
4812 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
4813 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
4814 of thread register as second parameter to REGISTER macro in 64 case.
4815
c7baafd5
UD
48162004-01-03 Ulrich Drepper <drepper@redhat.com>
4817
4818 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
4819 (CFLAGS-getpid.o): Defined.
4820 (CFLAGS-getpid.os): Defined.
4821
25ac0258
UD
48222003-12-31 Ulrich Drepper <drepper@redhat.com>
4823
4824 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
4825 returned for main thread does not overlap with any other VMA.
4826 Patch by Jakub Jelinek.
4827
795985e4
UD
48282003-12-29 Jakub Jelinek <jakub@redhat.com>
4829
4830 * tst-raise1.c: Include stdio.h.
4831
cb5b9388
UD
48322003-12-23 Jakub Jelinek <jakub@redhat.com>
4833
4834 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
4835 setting with __ASSUME_TGKILL || defined __NR_tgkill.
4836 If pid is 0, set it to selftid.
4837 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
4838 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
4839 != 0, return self->tid without doing a syscall.
4840 * descr.h (struct pthread): Move pid field after tid.
4841
4842 * Makefile (tests): Add tst-raise1.
4843 * tst-raise1.c: New file.
4844
432aaf5b
RM
48452003-12-23 Roland McGrath <roland@redhat.com>
4846
4847 * tst-oddstacklimit.c: New file.
4848 * Makefile (tests): Add it.
4849 (tst-oddstacklimit-ENV): New variable.
4850
4851 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
4852 value up to page size for __default_stacksize.
4853
33ebea17
UD
48542003-12-21 Ulrich Drepper <drepper@redhat.com>
4855
4856 * Makefile (tests): Add tst-eintr5.
4857 * tst-eintr5.c: New file.
4858
4859 * eintr.c (eintr_source): Prevent sending signal to self.
4860
4861 * tst-eintr2.c (tf1): Improve error message.
4862
bbe35eb5
UD
48632003-12-20 Ulrich Drepper <drepper@redhat.com>
4864
4865 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
4866 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
4867 * pthread_cancel.c: Add comment explaining use of PID field.
4868 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
4869 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
4870 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
4871 temporarily to signal the field must not be relied on and updated
4872 by getpid().
4873 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
4874 temporarily negative.
4875 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 4876
4efdd8d3
UD
48772003-12-19 Ulrich Drepper <drepper@redhat.com>
4878
4879 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
4880 (eintr_source): If ARG != NULL, use pthread_kill.
4881 * tst-eintr1.c: Adjust for this change.
4882 * tst-eintr2.c: Likewise.
4883 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
4884 * tst-eintr3.c: New file.
4885 * tst-eintr4.c: New file.
4886
48872003-12-19 Jakub Jelinek <jakub@redhat.com>
4888
4889 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
4890 if CANCELSTATE_BITMASK is set.
4891 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
4892 Likewise.
4893
4894 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
4895 (tests-reverse): Add tst-cancel23.
4896 * tst-cancel22.c: New test.
4897 * tst-cancel23.c: New test.
4898
675620f7
UD
48992003-12-18 Ulrich Drepper <drepper@redhat.com>
4900
4901 * tst-eintr1.c: Better error messages.
4902
4903 * Makefile (tests): Add tst-eintr2.
4904 * tst-eintr2.c: New file.
4905
49062003-12-18 Jakub Jelinek <jakub@redhat.com>
4907
4908 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
4909 (CFLAGS-tst-cancelx21.c): Set.
4910 * tst-cancel21.c: New test.
4911 * tst-cancelx21.c: New test.
4912
4913 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
4914 comparison operand.
4915 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
4916 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
4917 * pt-longjmp.c: Include jmpbuf-unwind.h.
4918 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
4919 _JMPBUF_UNWINDS. Adjust compared pointers.
4920 * init.c (__pthread_initialize_minimal_internal): Initialize
4921 pd->stackblock_size.
4922 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
4923 * sysdeps/alpha/jmpbuf-unwind.h: New file.
4924 * sysdeps/i386/jmpbuf-unwind.h: New file.
4925 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
4926 * sysdeps/s390/jmpbuf-unwind.h: New file.
4927 * sysdeps/sh/jmpbuf-unwind.h: New file.
4928 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
4929 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 4930 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
4931 (_JMPBUF_CFA_UNWINDS): Remove.
4932 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
4933
49342003-12-12 Jakub Jelinek <jakub@redhat.com>
4935
4936 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
4937 (CFLAGS-tst-cancelx20.c): Set.
4938 * tst-cancel20.c: New test.
4939 * tst-cancelx20.c: New test.
4940
2d951ab6
UD
49412003-12-17 Ulrich Drepper <drepper@redhat.com>
4942
4943 * init.c (__pthread_initialize_minimal_internal): Don't treat
4944 architectures with separate register stack special here when
4945 computing default stack size.
4946
f8a3a2e7
RM
49472003-12-17 Roland McGrath <roland@redhat.com>
4948
4949 * Makefile (tst-cancelx7-ARGS): New variable.
4950 Reportd by Greg Schafer <gschafer@zip.com.au>.
4951
e796f92f
UD
49522003-12-17 Jakub Jelinek <jakub@redhat.com>
4953
4954 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
4955 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
4956 (tst-stack3-ENV): Set.
4957 ($(objpfx)tst-stack3-mem): New.
4958 * tst-stack3.c: New test.
4959
092eb73c
UD
49602003-12-10 David Mosberger <davidm@hpl.hp.com>
4961
4962 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
4963 Add unwind directives. Drop unused .regstk directive.
4964 (_fini_EPILOG_BEGINS): Add unwind directives.
4965
ff48874d
UD
49662003-12-11 Ulrich Drepper <drepper@redhat.com>
4967
4968 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
4969 Assume parameter is a pointer.
4970 (lll_futex_wake): Likewise.
20945457
UD
4971 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
4972 Likewise.
4973 (lll_futex_wake): Likewise.
ff48874d
UD
4974 Reported by Boris Hu.
4975 * sysdeps/unix/sysv/linux/unregister-atfork.c
4976 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
4977
4978 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
4979
1d9d0b80
UD
49802003-12-10 Ulrich Drepper <drepper@redhat.com>
4981
4982 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
4983 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
4984 __rtld_lock_initialize for ld.so lock.
4985 Patch in part by Adam Li <adam.li@intel.com>.
4986
c776b3d7
UD
49872003-12-02 David Mosberger <davidm@hpl.hp.com>
4988
4989 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
4990 in $(gnulib). Also, remove stale comment.
4991
49922003-11-12 David Mosberger <davidm@hpl.hp.com>
4993
4994 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
4995 advantage of new syscall stub and optimize accordingly.
4996
4997 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
4998 from SYS_futex, to match expectations of
4999 sysdep.h:DO_INLINE_SYSCALL.
5000 (lll_futex_clobbers): Remove.
5001 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5002 (lll_futex_wake): Likewise.
5003 (lll_futex_requeue): Likewise.
5004 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5005 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5006 Jelinek).
5007 (__lll_mutex_lock): Likewise.
5008 (__lll_mutex_cond_lock): Likewise.
5009 (__lll_mutex_timed_lock): Likewise.
5010 (__lll_mutex_unlock): Likewise.
5011 (__lll_mutex_unlock_force): Likewise.
5012
5013 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5014 comes before the include of <sysdep.h>.
5015 (THREAD_SELF_SYSINFO): New macro.
5016 (THREAD_SYSINFO): Likewise.
5017 (INIT_SYSINFO): New macro.
5018 (TLS_INIT_TP): Call INIT_SYSINFO.
5019
5020 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5021
5022 * sysdeps/pthread/createthread.c (create_thread): Use
5023 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5024 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5025 THREAD_SELF_SYSINFO instead of open code.
5026 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5027 (THREAD_SYSINFO): Likewise.
5028
5029 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5030
5031 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5032
57d20ee7
UD
50332003-12-06 Ulrich Drepper <drepper@redhat.com>
5034
5035 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5036 instead of .init. Patch by David Mosberger.
5037
67aeab2a
AJ
50382003-11-30 Thorsten Kukuk <kukuk@suse.de>
5039
5040 * sysdeps/pthread/configure.in: Remove broken declaration in C
5041 cleanup handling check.
5042
8ca203e6
AJ
50432003-11-30 Andreas Jaeger <aj@suse.de>
5044
5045 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5046 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5047 Likewise.
5048
46bf9de7
UD
50492003-11-27 Jakub Jelinek <jakub@redhat.com>
5050
5051 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5052 * pthread_attr_destroy.c: Include shlib-compat.h.
5053 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5054 is set in iattr->flags.
5055 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5056
1d9b73ab
UD
50572003-11-21 Jakub Jelinek <jakub@redhat.com>
5058
5059 * Makefile (distribute): Add tst-cleanup4aux.c.
5060
5061 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5062 include.
5063
53f9084e
UD
50642003-11-21 Ulrich Drepper <drepper@redhat.com>
5065
1d9b73ab
UD
5066 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5067 pthread_cond_signal.
5068
e42a990e
UD
5069 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5070 store mutex address if the current value is ~0l.
5071 * sysdeps/pthread/pthread_cond_timedwait.c
5072 (__pthread_cond_timedwait): Likewise.
5073 * sysdeps/pthread/pthread_cond_broadcast.c
5074 (__pthread_cond_broadcast): Don't use requeue for pshared
5075 condvars.
5076
5077 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5078 (__pthread_cond_wait): Don't store mutex address if the current
5079 value is ~0l.
5080 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5081 (__pthread_cond_timedwait): Likewise.
5082 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5083 (__pthread_cond_broadcast): Don't use requeue for pshared
5084 condvars.
5085
5086 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5087 element with ~0l for pshared condvars, with NULL otherwise.
5088
5089 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5090 (__pthread_cond_wait): Don't store mutex address if the current
5091 value is ~0l.
5092 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5093 (__pthread_cond_timedwait): Likewise.
5094 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5095 (__pthread_cond_broadcast): Don't use requeue for pshared
5096 condvars.
5097
bf68b236 5098 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5099 * tst-cond12.c: New file.
bf68b236 5100 * tst-cond13.c: New file.
53f9084e 5101
9780c971
UD
51022003-11-17 Ulrich Drepper <drepper@redhat.com>
5103
5104 * sysdeps/pthread/configure.in: Make missing forced unwind support
5105 fatal.
5106
74e12fbc
UD
51072003-11-11 Ulrich Drepper <drepper@redhat.com>
5108
5109 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5110
c685b2b0
UD
51112003-11-06 Ulrich Drepper <drepper@redhat.com>
5112
5113 * Makefile: Add magic to clean up correctly.
5114
44e94149
UD
51152003-11-05 Jakub Jelinek <jakub@redhat.com>
5116
5117 * unwind.c (FRAME_LEFT): Define.
5118 (unwind_stop): Handle old style cleanups here.
5119 (__pthread_unwind): Handle old style cleanups only if
5120 !HAVE_FORCED_UNWIND.
5121 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5122 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5123 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5124 ($(objpfx)tst-cleanupx4): Likewise.
5125 * tst-cleanup4.c: New test.
5126 * tst-cleanup4aux.c: New.
5127 * tst-cleanupx4.c: New test.
5128
c28422b5
UD
51292003-11-04 Ulrich Drepper <drepper@redhat.com>
5130
5131 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5132 lll_mutex_*lock macros to skip atomic operations on some archs.
5133
27176677
UD
51342003-11-03 Ulrich Drepper <drepper@redhat.com>
5135
5136 * sysdeps/pthread/tst-timer.c (main): Initialize
5137 sigev2.sigev_value as well.
5138
026395a2
RM
51392003-10-15 Roland McGrath <roland@redhat.com>
5140
5141 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5142 is missing.
5143 * sysdeps/pthread/configure: Regenerated.
5144
fa3cbe3d
UD
51452003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5146
5147 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5148 locking macros. No distinction between normal and mutex locking
5149 anymore.
5150 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5151 Merge bits from lowlevelmutex.S we still need.
5152 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5153 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5154 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5155 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5156 new mutex implementation.
5157 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5158 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5159 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5160 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5161 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5162 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5163 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5164 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5165 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5166 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5167 symbol for entry point to avoid cancellation.
5168
e700a908
UD
51692003-10-07 Jakub Jelinek <jakub@redhat.com>
5170
5171 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5172 changes.
5173 (SAVE_OLDTYPE_0): Fix a typo.
5174
c70a86b6
UD
51752003-10-03 Ulrich Drepper <drepper@redhat.com>
5176
5177 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5178 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5179
134abcb5
UD
51802003-10-02 Ulrich Drepper <drepper@redhat.com>
5181
5182 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5183 correct offset.
5184
b77ca0e8
UD
51852003-10-02 Jakub Jelinek <jakub@redhat.com>
5186
5187 * Makefile (tests): Add tst-cancel19.
5188 * tst-cancel19.c: New test.
5189
4d961dc7
UD
51902003-10-02 Ulrich Drepper <drepper@redhat.com>
5191
5192 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5193 restoring of the old cancellation type.
5194
1d5b20ad 51952003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5196
1d5b20ad
UD
5197 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5198
4106a403
RM
51992003-09-27 Wolfram Gloger <wg@malloc.de>
5200
4d961dc7 5201 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5202
fca9d8e4
RM
52032003-09-24 Roland McGrath <roland@redhat.com>
5204
5205 * allocatestack.c (__make_stacks_executable): Don't ignore return
5206 value from _dl_make_stack_executable.
5207
c9c60884
UD
52082003-09-24 Ulrich Drepper <drepper@redhat.com>
5209
69c9fa04
UD
5210 * allocatestack.c (__make_stacks_executable): Also change
5211 permission of the currently unused stacks.
5212
279f1143
UD
5213 * allocatestack.c (change_stack_perm): Split out from
5214 __make_stacks_executable.
5215 (allocate_stack): If the required permission changed between the time
5216 we started preparing the stack and queueing it, change the permission.
5217 (__make_stacks_executable): Call change_stack_perm.
5218
c9c60884
UD
5219 * Makefile: Build tst-execstack-mod locally.
5220 * tst-execstack-mod.c: New file.
5221
54ee14b3
UD
52222003-09-23 Jakub Jelinek <jakub@redhat.com>
5223
5224 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5225
52262003-09-23 Roland McGrath <roland@redhat.com>
5227
5228 * tst-execstack.c: New file.
5229 * Makefile (tests): Add it.
5230 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5231 (LDFLAGS-tst-execstack): New variable.
5232
5233 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5234 whether to use PROT_EXEC for stack mmap.
5235 (__make_stacks_executable): New function.
5236 * pthreadP.h: Declare it.
5237 * init.c (__pthread_initialize_minimal_internal): Set
5238 GL(dl_make_stack_executable_hook) to that.
5239
365b1602
UD
52402003-09-22 Ulrich Drepper <drepper@redhat.com>
5241
5242 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5243 recommendation from AMD re avoidance of lock prefix.
5244
39358e8b
UD
52452003-09-22 Jakub Jelinek <jakub@redhat.com>
5246
5247 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5248 lll_futex_timed_wait instead of lll_futex_wait.
5249 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5250 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5251 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5252 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5253 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5254 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5255 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5256 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5257 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5258 Completely revamp the locking macros. No distinction between
5259 normal and mutex locking anymore.
5260 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5261 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5262 __lll_lock_timedwait): Fix prototypes.
5263 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5264 __lll_lock_timedwait): Likewise.
5265 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5266 macros, add __builtin_expect.
5267 (lll_mutex_timedlock): Likewise. Fix return value.
5268 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5269 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5270 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5271 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5272 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5273 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5274 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5275 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5276
9d08fbbb
UD
52772003-09-22 Ulrich Drepper <drepper@redhat.com>
5278
c0df57e1
UD
5279 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5280 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5281 operation if possible.
5282
9d08fbbb
UD
5283 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5284 like jumping over the lock prefix.
5285
71451de2
UD
52862003-09-21 Ulrich Drepper <drepper@redhat.com>
5287
5288 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5289 locking macros. No distinction between normal and mutex locking
5290 anymore.
3a226d33 5291 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5292 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5293 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5294 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5295 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5296 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5297 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5298 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5299 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5300 * Makefile (routines): Remove libc-lowlevelmutex.
5301 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5302 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5303 for new mutex implementation.
5304 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5305 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5306 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5307 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5308 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5309 Likewise.
5310 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5311 Likewise.
5312 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5313 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5314 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5315 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5316 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5317 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5318 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5319 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5320 Likewise.
5321 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5322 Likewise.
5323 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5324 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5325 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5326 Don't use requeue.
5327 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5328 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5329
8f31c0ef
UD
53302003-09-20 Ulrich Drepper <drepper@redhat.com>
5331
56a4aa98
UD
5332 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5333 in parameters of asm with output parameters.
5334
8f31c0ef
UD
5335 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5336 type of DECR parameter to int.
5337 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5338
8b8074da
UD
53392003-09-18 Jakub Jelinek <jakub@redhat.com>
5340
5341 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5342 guardsize for each thread.
5343
65af7e61
UD
53442003-09-17 Jakub Jelinek <jakub@redhat.com>
5345
9ba96eda
UD
5346 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5347 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5348 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5349
06f6ca90
UD
5350 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5351 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5352 NULL.
5353 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5354 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5355 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5356 (pthread_getaffinity_np): Add hidden_def.
5357
5358 * Makefile (tests): Add tst-attr3.
5359 * tst-attr3.c: New test.
5360
65af7e61
UD
5361 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5362
3402852c
UD
53632003-09-15 Jakub Jelinek <jakub@redhat.com>
5364
5365 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5366 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5367
a4db3439
UD
53682003-09-17 Jakub Jelinek <jakub@redhat.com>
5369
5370 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5371 * tst-align.c: Include tst-stack-align.h.
5372 (tf, do_test): Use TEST_STACK_ALIGN macro.
5373
53742003-09-17 Ulrich Drepper <drepper@redhat.com>
5375
5376 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5377 variable.
5378
92ce4676
UD
53792003-09-16 Ulrich Drepper <drepper@redhat.com>
5380
5381 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5382 stack-related values for the initial thread.
5383
e07bb02a
UD
53842003-09-15 Jakub Jelinek <jakub@redhat.com>
5385
5386 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5387
d087b5dc
UD
53882003-09-11 Ulrich Drepper <drepper@redhat.com>
5389
5390 * pthread_mutex_lock.c: Minor code rearrangements.
5391
7f08f55a
RM
53922003-09-05 Roland McGrath <roland@redhat.com>
5393
5394 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5395 Instead, include ../nptl_db/db_info.c to do its magic.
5396 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5397 (__pthread_pthread_key_2ndlevel_size): Likewise.
5398 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5399 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5400 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5401 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5402 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5403 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5404 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5405 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5406 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5407 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5408 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5409 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5410 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5411 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5412 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5413 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5414 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5415
806e4a4a
UD
54162003-09-08 Ulrich Drepper <drepper@redhat.com>
5417
5418 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5419 of pthread_t to be compatible with LT.
5420 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5421 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5422 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5423 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5424 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5425 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5426 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5427
17f83e56
UD
54282003-09-04 Ulrich Drepper <drepper@redhat.com>
5429
5430 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5431
58e8ec84
UD
54322003-09-04 Jakub Jelinek <jakub@redhat.com>
5433
5434 * unwind-forcedunwind.c: Move to...
5435 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5436 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5437 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5438 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5439 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5440 * unwind.c: Include jmpbuf-unwind.h.
5441 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5442
abf1cf21
JJ
54432003-09-02 Jakub Jelinek <jakub@redhat.com>
5444
4a244f0d
UD
5445 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
5446 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
5447 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
5448 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
5449 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5450 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
5451 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
5452 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
5453 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
5454 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
5455 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
5456 function.
5457 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
5458 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
5459 * Makefile (tests): Add tst-stack2.
5460 * tst-stack2.c: New test.
5461 * tst-stack1.c: Include limits.h and sys/param.h.
5462 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
5463
e29ef647
UD
5464 * pthread_condattr_setpshared.c: Include errno.h.
5465 (pthread_condattr_setpshared): Return EINVAL if pshared
5466 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
5467
5777d565
UD
5468 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
5469 defined symbol for entry point to avoid cancellation.
5470 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5471 Likewise.
5472 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5473 Likewise.
5474 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5475 Likewise.
5476 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
5477 Likewise.
5478 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5479 Likewise.
5480 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
5481 __close_nocancel, __read_nocancel, __write_nocancel,
5482 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
5483 libpthread.so or librt.so, define to corresponding function
5484 without _nocancel suffix.
5485 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
5486 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
5487 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
5488
abf1cf21
JJ
5489 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
5490
8348dcc8
UD
54912003-09-02 Ulrich Drepper <drepper@redhat.com>
5492
5493 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 5494 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
5495
5496 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
5497 in subsections has a symbol associated with it.
5498
5499 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
5500 defined symbol for entry point to avoid cancellation.
5501 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
5502
c874a32e
UD
55032003-09-01 Jakub Jelinek <jakub@redhat.com>
5504
5505 * Makefile (tests): Add tst-tls5.
5506 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
5507 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
5508 ($(objpfx)tst-tls5): New.
5509 ($(objpfx)tst-tls6.out): Likewise.
5510 (tests): Depend on $(objpfx)tst-tls6.out.
5511 * tst-tls3.c: Include stdint.h and pthreaddef.h.
5512 (do_test): Check pthread_self () return value alignment.
5513 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
5514 (tf): Check pthread_self () return value alignment.
5515 * tst-tls5.c: New test.
5516 * tst-tls5.h: New.
5517 * tst-tls5mod.c: New.
5518 * tst-tls5moda.c: New.
5519 * tst-tls5modb.c: New.
5520 * tst-tls5modc.c: New.
5521 * tst-tls5modd.c: New.
5522 * tst-tls5mode.c: New.
5523 * tst-tls5modf.c: New.
5524 * tst-tls6.sh: New test.
5525
c503d3dc
UD
5526 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
5527 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
5528 * init.c (pthread_functions): Initialize them.
5529 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
5530 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
5531 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
5532 pthread_cond_timedwait@@GLIBC_2.3.2.
5533
48614753
JJ
55342003-09-01 Jakub Jelinek <jakub@redhat.com>
5535
56a1b877
JJ
5536 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
5537 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
5538 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
5539 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
5540 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
5541 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5542
5543 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
5544
48614753
JJ
5545 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
5546 _POSIX_THREAD_PRIORITY_SCHEDULING.
5547 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
5548
28c97261
UD
55492003-08-31 Ulrich Drepper <drepper@redhat.com>
5550
eef80cf8
UD
5551 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
5552 nested function, use static inline function from libio.h.
5553 Code by Richard Henderson.
5554
28c97261
UD
5555 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
5556 weak.
5557
cd2fbe58
UD
55582003-08-30 Jakub Jelinek <jakub@redhat.com>
5559
5560 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
5561 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
5562 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
5563 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
5564 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
5565 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
5566 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
5567 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
5568 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
5569 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
5570 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
5571 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
5572 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
5573 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
5574 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
5575 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
5576 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
5577 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
5578 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
5579 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
5580 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
5581 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
5582 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
5583 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
5584 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
5585 * sysdeps/sparc/tls.h: New file.
5586 * sysdeps/sparc/tcb-offsets.sym: New file.
5587 * sysdeps/sparc/Makefile: New file.
5588 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
5589 * init.c [__sparc__] (__NR_set_tid_address): Define.
5590
feda52c0
UD
55912003-08-29 Jakub Jelinek <jakub@redhat.com>
5592
5593 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
5594 _IO_release_lock): Define.
5595
7c868816
JJ
55962003-08-29 Jakub Jelinek <jakuB@redhat.com>
5597
0261d33f 5598 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
5599 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
5600
68b9e1ae
UD
56012003-08-27 Ulrich Drepper <drepper@redhat.com>
5602
5603 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
5604 (__pthread_cleanup_class): Add missing return types of member
5605 functions.
5606
13b3edfc
UD
56072003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
5608
5609 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
5610 (lll_mutex_unlock_force): Add memory barrier between store and futex
5611 syscall.
5612
bb606fbe
UD
56132003-08-25 Ulrich Drepper <drepper@redhat.com>
5614
5615 * tst-cancel4.c (do_test): Also unlink tempfname and remove
5616 tempmsg in first loop.
5617
ee4e5a3d
UD
56182003-08-18 Ulrich Drepper <drepper@redhat.com>
5619
5620 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5621 _POSIX_THREAD_PRIORITY_SCHEDULING.
5622 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5623
334fcf2a
UD
56242003-08-07 Jakub Jelinek <jakub@redhat.com>
5625
5626 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
5627 (__rtld_lock_default_lock_recursive,
5628 __rtld_lock_default_unlock_recursive): Define.
5629 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
5630 __rtld_lock_unlock_recursive): Define using
5631 GL(_dl_rtld_*lock_recursive).
5632 * init.c (__pthread_initialize_minimal_internal): Initialize
5633 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
5634 Lock GL(_dl_load_lock) the same number of times as
5635 GL(_dl_load_lock) using non-mt implementation was nested.
5636
5637 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
5638 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
5639
a30fb2df
UD
56402003-08-06 Jakub Jelinek <jakub@redhat.com>
5641
5642 * tst-cancel17.c (do_test): Make len2 maximum of page size and
5643 PIPE_BUF.
5644
ce0d30a0
JJ
56452003-08-07 Jakub Jelinek <jakub@redhat.com>
5646
5647 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
5648
9c988b83
UD
56492003-08-03 Jakub Jelinek <jakub@redhat.com>
5650
5651 * sysdeps/pthread/createthread.c (do_clone): Move error handling
5652 to first syscall error check. Move syscall error check for tkill
5653 into __ASSUME_CLONE_STOPPED #ifdef.
5654
5c5252bd
UD
56552003-08-02 Ulrich Drepper <drepper@redhat.com>
5656
f1205aa7
UD
5657 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
5658 is not defined, do explicit synchronization.
5659 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
5660 is not defined also unlock pd->lock for non-debugging case in case
5661 it is necessary.
5662 * pthread_create.c (start_thread): Always get and release pd->lock
5663 if __ASSUME_CLONE_STOPPED is not defined.
5664 (start_thread_debug): Removed. Adjust users.
5665 * allocatestack.c (allocate_stack): Always initialize lock if
5666 __ASSUME_CLONE_STOPPED is not defined.
5667 * Makefile (tests): Add tst-sched1.
5668 * tst-sched1.c: New file.
5669
5c5252bd
UD
5670 * sysdeps/pthread/createthread.c (do_clone): Only use
5671 sched_setschduler and pass correct parameters.
5672
973d66e4
UD
56732003-07-31 Jakub Jelinek <jakub@redhat.com>
5674
5675 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
5676 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
5677 PTHREAD_STACK_MIN in comments.
5678
d347a4ab
UD
56792003-07-31 Jakub Jelinek <jakub@redhat.com>
5680
5681 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5682 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
5683 argument.
5684 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
5685 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
5686 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
5687 (__pthread_cleanup_upto): Fix prototype.
5688 (_longjmp_unwind): Adjust caller.
5689 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
5690 Change second argument to const struct pointer.
5691 * tst-sem8.c (main): Remove unused s2 and s3 variables.
5692 * tst-sem9.c (main): Likewise.
5693 * unwind.c: Include string.h for strlen prototype.
5694
1b26e9a5
UD
56952003-07-31 Ulrich Drepper <drepper@redhat.com>
5696
5697 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5698 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
5699 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
5700 Define HAVE_CMOV.
5701 Patch by Nicholas Miell <nmiell@attbi.com>.
5702
adc12574
UD
57032003-07-30 Jakub Jelinek <jakub@redhat.com>
5704
5705 * init.c (__pthread_initialize_minimal_internal): Initialize
5706 GL(dl_init_static_tls).
5707 * pthreadP.h (__pthread_init_static_tls): New prototype.
5708 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
5709 New functions.
5710 * Makefile (tests): Add tst-tls4.
5711 (modules-names): Add tst-tls4moda and tst-tls4modb.
5712 ($(objpfx)tst-tls4): Link against libdl and libpthread.
5713 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
5714 tst-tls4modb.so.
5715 * tst-tls4.c: New file.
5716 * tst-tls4moda.c: New file.
5717 * tst-tls4modb.c: New file.
5718
a7f6c66e
RM
57192003-06-19 Daniel Jacobowitz <drow@mvista.com>
5720
5721 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
5722 before __timer_dealloc.
5723 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
5724 Don't call list_unlink.
5725
172ce013
RM
57262003-07-29 Roland McGrath <roland@redhat.com>
5727
5728 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
5729
7b787f85
UD
57302003-07-25 Jakub Jelinek <jakub@redhat.com>
5731
5732 * tst-cancel17.c (do_test): Check if aio_cancel failed.
5733 Don't reuse struct aiocb A if it failed.
5734 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
5735 not just one byte, as that does not block.
5736
0e9d6240
UD
57372003-07-22 Jakub Jelinek <jakub@redhat.com>
5738
9d79e037
UD
5739 * sysdeps/pthread/unwind-resume.c: New file.
5740 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
5741 unwind-resume in csu subdir.
5742 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
5743 exceptions.
5744 (librt-sysdep_routines, librt-shared-only-routines): Add
5745 rt-unwind-resume.
5746 * sysdeps/pthread/rt-unwind-resume.c: New file.
5747 * unwind-forcedunwind.c: New file.
5748 * Makefile (libpthread-routines): Add unwind-forcedunwind.
5749 (libpthread-shared-only-routines): Likewise.
5750 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
5751 * pthreadP.h (pthread_cancel_init): New prototype.
5752 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
5753
5754 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
5755 attr argument const struct pthread_attr *.
5756
0e9d6240
UD
5757 * res.c (__res_state): Return __resp.
5758 * descr.h: Include resolv.h.
5759 (struct pthread): Add res field.
5760 * pthread_create.c: Include resolv.h.
5761 (start_thread): Initialize __resp.
5762 * Makefile (tests): Add tst-_res1.
5763 (module-names): Add tst-_res1mod1, tst-_res1mod2.
5764 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
5765 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
5766 libpthread.
5767 * tst-_res1.c: New file.
5768 * tst-_res1mod1.c: New file.
5769 * tst-_res1mod2.c: New file.
5770
1a379ea0
UD
57712003-07-21 Ulrich Drepper <drepper@redhat.com>
5772
7e939b21
UD
5773 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
5774
1a379ea0
UD
5775 * Makefile: Define various *-no-z-defs variables for test DSOs
5776 which has undefined symbols.
5777
ca86a763
UD
57782003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
5779
5780 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
5781 Retry if the stwcx fails to store once_control.
5782
80f536db
UD
57832003-07-20 Ulrich Drepper <drepper@redhat.com>
5784
5785 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
5786 pthread_attr_setaffinity.
5787 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
5788 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
5789 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
5790 * pthread_attr_destroy.c: Free cpuset element if allocated.
5791 * pthread_create.c: Pass iattr as additional parameter to
5792 create_thread.
5793 * sysdeps/pthread/createthread.c: If attribute is provided and
5794 a new thread is created with affinity set or scheduling parameters,
5795 start thread with CLONE_STOPPED.
5796 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
5797 pthread_attr_setaffinity.
5798 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
5799 cpuset element.
5800
73299943
UD
58012003-07-15 Ulrich Drepper <drepper@redhat.com>
5802
5803 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
5804
da35d15e
UD
58052003-07-14 Ulrich Drepper <drepper@redhat.com>
5806
5807 * sysdeps/pthread/configure.in: Require CFI directives also for
5808 ppc and s390.
5809
75540d8a
UD
58102003-07-15 Jakub Jelinek <jakub@redhat.com>
5811
5812 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5813 Add cfi directives.
5814
4a17085f
UD
58152003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5816
5817 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
5818 CLEANUP_JMP_BUF.
5819 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
5820 registers as variables. Call __pthread_mutex_unlock_usercnt.
5821 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5822 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
5823 not self pointer in __writer. Compare with TID to determine
5824 deadlocks.
5825 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5826 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
5827 Likewise.
5828 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
5829 Likewise.
5830 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
5831 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
5832 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
5833 macros also when compiling librt.
5834
6080ecdf
UD
58352003-07-11 Jakub Jelinek <jakub@redhat.com>
5836
5837 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
5838 -fasynchronous-unwind-tables.
5839 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5840 (PSEUDO): Add cfi directives.
5841 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
5842 Likewise.
5843 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5844 Likewise.
5845
da0c02ee
UD
58462003-07-08 Jakub Jelinek <jakub@redhat.com>
5847
5848 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
5849 __pthread_unregister_cancel): Add prototypes and hidden_proto.
5850 * unwind.c (__pthread_unwind_next): Add hidden_def.
5851 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
5852 Likewise.
5853 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
5854 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
5855 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
5856 Likewise.
5857 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
5858 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
5859 Likewise.
5860 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
5861 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
5862 __pthread_unregister_cancel and __pthread_unwind_next.
5863
57a5ea02
UD
58642003-07-04 Jakub Jelinek <jakub@redhat.com>
5865
5866 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
5867 different symbol for the cancellation syscall wrapper and
5868 non-cancellation syscall wrapper.
5869 (PSEUDO_END): Define.
5870
d810b358
UD
58712003-07-05 Richard Henderson <rth@redhat.com>
5872
5873 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
5874 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
5875 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
5876 return actual return value from the syscall, not 0.
d810b358 5877
db54f488
UD
58782003-07-07 Ulrich Drepper <drepper@redhat.com>
5879
5880 * descr.h (struct pthread): Add pid field.
5881 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
5882 (__reclaim_stacks): Likewise.
5883 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
5884 also check for PID of the signal source.
5885 (__pthread_initialize_minimal_internal): Also initialize pid field
5886 of initial thread's descriptor.
5887 * pthread_cancel.c: Use tgkill instead of tkill if possible.
5888 * sysdeps/unix/sysv/linux/fork.c: Likewise.
5889 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
5890 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5891 * sysdeps/unix/sysv/linux/raise.c: Likewise.
5892
5e497a41
UD
58932003-07-05 Ulrich Drepper <drepper@redhat.com>
5894
5895 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
5896 Fix use of parameter.
5897 (__libc_cleanup_pop): Likewise.
5898
86a0c4fa
UD
58992003-07-04 Ulrich Drepper <drepper@redhat.com>
5900
5901 * init.c (sigcancel_handler): Change parameters to match handler
5902 for SA_SIGACTION. Check signal number and code to recognize
5903 invalid invocations.
5904
bdbecaa3
RM
59052003-07-03 Roland McGrath <roland@redhat.com>
5906
5907 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
5908 Apply sizeof (struct pthread) bias to r13 value.
5909
56421b23
UD
59102003-07-03 Ulrich Drepper <drepper@redhat.com>
5911
fbd90f6c
UD
5912 * sysdeps/pthread/configure.in: Require CFI directives.
5913
56421b23
UD
5914 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
5915 definition.
5916 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
5917 libpthread compilation.
5918 * unwind.c (__pthread_unwind): Add hidden_def.
5919 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
5920
ca2b4cd7
UD
59212003-07-01 Ulrich Drepper <drepper@redhat.com>
5922
5923 * libc-cancellation.c (__libc_cleanup_routine): Define.
5924 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
5925 (__pthread_cleanup_pop): Define.
5926
f036e569
UD
59272003-07-01 Richard Henderson <rth@redhat.com>
5928
5929 * sysdeps/alpha/elf/pt-initfini.c: New file.
5930 * sysdeps/alpha/pthread_spin_lock.S: New file.
5931 * sysdeps/alpha/pthread_spin_trylock.S: New file.
5932 * sysdeps/alpha/pthreaddef.h: New file.
5933 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
5934 * sysdeps/alpha/tls.h: New file.
5935 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
5936 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
5937 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
5938 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
5939 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
5940 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
5941 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
5942 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
5943 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
5944 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
5945
3b985826
UD
59462003-07-01 Ulrich Drepper <drepper@redhat.com>
5947
5948 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
5949 cleanup support and unwind info.
5950
3a4d1e1e
UD
59512003-06-30 Ulrich Drepper <drepper@redhat.com>
5952
5953 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5954 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
5955 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
5956 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
5957 * tst-once3.c: Add cleanup handler and check it is called.
5958 * tst-once4.c: Likewise.
5959 * tst-oncex3.c: New file.
5960 * tst-oncex4.c: New file.
5961 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
5962
e479cc8e
UD
59632003-06-29 Ulrich Drepper <drepper@redhat.com>
5964
5965 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
5966
7d7ff54c
UD
59672003-06-27 Ulrich Drepper <drepper@redhat.com>
5968
483e95d0
UD
5969 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
5970 (tf_msgsnd): Likewise.
5971
7d7ff54c
UD
5972 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
5973 premature returns a bit more.
5974
7539c7ec
UD
59752003-06-26 Ulrich Drepper <drepper@redhat.com>
5976
5977 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
5978 definition to the front.
5979
5980 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
5981 the cleanup functions to make the names unique. Fix dwarf opcode
5982 un unwind table.
5983 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
5984 functions to make the names unique. Fix CFA offset for two blocks.
5985
0af6a1d9
UD
59862003-06-25 Ulrich Drepper <drepper@redhat.com>
5987
5988 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
5989 missing closing braces.
5990 Patch by Christophe Saout <christophe@saout.de>.
5991
eef4a9f3
RM
59922003-06-24 Roland McGrath <roland@redhat.com>
5993
5994 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
5995
4165d44d
UD
59962003-06-24 Ulrich Drepper <drepper@redhat.com>
5997
7f8f7b9d
UD
5998 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
5999 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6000
4165d44d
UD
6001 * pthreadP.h: Declare __find_thread_by_id.
6002 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6003 * pthread_clock_gettime.c: Allow using other thread's clock.
6004 * pthread_clock_settime.c: Likewise.
6005 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6006 * Makefile: Add rules to build and run tst-clock2.
6007 * tst-clock2.c: New file.
6008
67b78ef9
UD
60092003-06-23 Ulrich Drepper <drepper@redhat.com>
6010
6011 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6012 to use exception-based cleanup handler.
6013 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6014
6015 * tst-cond8.c (ch): Announce that we are done.
6016
6017 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6018
6019 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6020 Also test aio_suspend with timeout value.
6021
61623643
UD
60222003-06-22 Ulrich Drepper <drepper@redhat.com>
6023
3a4f2043
UD
6024 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6025 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6026 attribute_hidden.
6027
61623643
UD
6028 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6029 (__pthread_mutex_lock_internal): Likewise.
6030 (__pthread_mutex_unlock_internal): Likewise.
6031 (__pthread_mutex_unlock_usercnt): Declare.
6032 * pthread_mutex_destroy.c: Always fail if used in any way.
6033 * pthread_mutex_init.c: Update comment.
6034 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6035 * pthread_mutex_timedlock.c: Adjust __nusers.
6036 * pthread_mutex_trylock.c: Adjust __nusers.
6037 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6038 and public interfaces are wrapper with pass additional parameter.
6039 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6040 parameter zero.
6041 * tst-mutex8.c: New file.
6042 * Makefile (tests): Add tst-mutex8.
6043 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6044 __pthread_mutex_unlock_usercnt.
6045 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6046 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6047 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6048 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6049 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6050 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6051 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6052 Add __nusers.
6053 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6054 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6055 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6056 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6057 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6058
6059 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6060 * pthread_mutex_timedlock.c: Likewise.
6061 * pthread_mutex_trylock.c: Adjust __nusers.
6062 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6063 * tst-mutex9.c: New file.
6064 * Makefile (tests): Add tst-mutex9.
6065 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6066 * sysdeps/ia64/tls.h: Likewise.
6067 * sysdeps/powerpc/tls.h: Likewise.
6068 * sysdeps/s390/tls.h: Likewise.
6069 * sysdeps/sh/tls.h: Likewise.
6070 * sysdeps/x86_64/tls.h: Likewise.
6071 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6072 Change type of __owner.
6073 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6074 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6075 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6076 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6077 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6078
9bdabb94
UD
60792003-06-19 Jakub Jelinek <jakub@redhat.com>
6080
6081 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6082 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6083
6084 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6085 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6086 instead of nr to lll_futex_wake. Only set errno and return -1
6087 if err < 0.
6088
6089 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6090 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6091 return actual return value from the syscall, not 0.
6092
f6c93bd9
UD
60932003-06-18 Ulrich Drepper <drepper@redhat.com>
6094
ca343e73
UD
6095 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6096 find a random value.
6097 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6098 errno==EIDRM.
6099
50441a98
UD
6100 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6101 compat_timer_settime.
6102 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6103 compat_timer_gettime.
6104 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6105 compat_timer_getoverrun.
50441a98
UD
6106 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6107 compat_timer_delete.
6108
f6c93bd9
UD
6109 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6110 error-checking mutex detect busy mutexes.
6111
047aec8f
UD
61122003-06-17 Ulrich Drepper <drepper@redhat.com>
6113
1d53508d
UD
6114 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6115 Add ax to clobber list.
6116 (lll_mutex_cond_lock): Likewise.
6117 (lll_mutex_unlock): Likewise.
6118 (lll_lock): Likewise.
6119 (lll_unlock): Likewise.
6120
f23b30e2
UD
6121 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6122 * tst-cancel18.c: New file.
6123 * tst-cancelx18.c: New file.
6124
6125 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6126 and tcdrain.
6127
6128 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6129 * tst-cancel17.c: New file.
6130 * tst-cancelx17.c: New file.
6131
6132 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6133 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6134 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6135
047aec8f
UD
6136 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6137
bbde8527
UD
61382003-06-16 Jakub Jelinek <jakub@redhat.com>
6139
6140 * sysdeps/pthread/createthread.c (create_thread): Set
6141 header.multiple_threads unconditionally.
6142 * allocatestack.c (allocate_stack): Likewise.
6143 * descr.h (struct pthread): Add header.multiple_threads
6144 unconditionally.
6145 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6146 Define for librt. #error if neither libpthread, libc nor librt.
6147 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6148 Likewise.
6149 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6150 CDISABLE): Likewise.
6151 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6152 CDISABLE): Likewise.
6153 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6154 CDISABLE): Likewise.
6155 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6156 CDISABLE): Likewise. Access header.multiple_threads outside of
6157 libc and libpthread.
6158 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6159 Likewise.
6160 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6161 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6162
26676450
UD
61632003-06-17 Ulrich Drepper <drepper@redhat.com>
6164
6165 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6166 Also test early cancellation before the thread reaches the cancellation
6167 point.
6168
6169 * Makefile: Compile forward.c with exceptions.
6170
6171 * sysdeps/unix/sysv/linux/sleep.c: New file.
6172
301a6724
UD
61732003-06-16 Ulrich Drepper <drepper@redhat.com>
6174
0e0deb03
UD
6175 * Makefile: Add CFLAGS definition to compile function wrappers
6176 duplicated from libc with exceptions.
6177 * tst-cancel4.c: Also check cancellation handlers.
6178
301a6724
UD
6179 * Makefile: Add rules to build and run tst-cancel16 and
6180 tst-cancelx16. Add missing CFLAGS definitions.
6181 * tst-cancel16.c: New file.
6182 * tst-cancelx16.c: New file.
6183
7a114794
UD
61842003-06-15 Ulrich Drepper <drepper@redhat.com>
6185
452aea84
UD
6186 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6187 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6188 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6189 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6190
7a114794
UD
6191 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6192 (LIBC_CANCEL_RESET): Likewise.
6193 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6194 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6195 librt-cancellation.
6196 (CFLAGS-libcrt-cancellation.c): Define.
6197 * sysdeps/pthread/librt-cancellation.c: New file.
6198 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6199 macros also when compiling librt.
6200 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6201 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6202 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6203 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6204 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6205 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6206 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6207
6208 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6209 compat_timer_create.
6210
8ba1d429
UD
62112003-06-14 Ulrich Drepper <drepper@redhat.com>
6212
cc8fb6f3
UD
6213 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6214
8ba1d429
UD
6215 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6216 __register_atfork.
6217 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6218 Add libc_hidden_def.
6219
d4f100e2
RM
62202003-06-13 Roland McGrath <roland@redhat.com>
6221
6222 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6223 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6224
dd9423a6
UD
62252003-06-11 Ulrich Drepper <drepper@redhat.com>
6226
6227 * allocatestack.c (queue_stack): Always inline.
6228 * ptreadhP.h (__do_cancel): Likewise.
6229
ed24330d
JJ
62302003-06-10 Jakub Jelinek <jakub@redhat.com>
6231
6232 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6233 a typo.
6234
06120d79
UD
62352003-06-10 Ulrich Drepper <drepper@redhat.com>
6236
6237 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6238 (__pthread_cond_signal): Remove incorrect second addition for
6239 cond_lock!=0.
6240
b1720346
UD
62412003-06-09 Ulrich Drepper <drepper@redhat.com>
6242
5b318f85
UD
6243 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6244 (__pthread_cond_signal): Use correct futex pointer in
6245 __lll_mutex_lock_wait call.
6246
b1720346
UD
6247 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6248 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6249
3e36c37d
UD
62502003-06-08 Ulrich Drepper <drepper@redhat.com>
6251
ecf7955d
UD
6252 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6253 cancelable.
ed24330d 6254 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6255 Likewise.
6256
3e36c37d
UD
6257 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6258 hand-written CFI generation code. Since ENTRY/END also initiated
6259 CFI frames this caused two CFI sets to be generated.
6260
7726edc2
UD
62612003-06-07 Ulrich Drepper <drepper@redhat.com>
6262
6263 * cleanup_routine.c: New file.
6264 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6265 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6266 cleanup handling.
6267 * Makefile (libpthread-routines): Add cleanup_routine.
6268 Add more CFLAGS variables to compile with exceptions. Add comments
6269 why which file needs unwind tables.
6270 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6271 tests.
6272 * tst-cancelx1.c: New file.
6273 * tst-cancelx2.c: New file.
6274 * tst-cancelx3.c: New file.
6275 * tst-cancelx4.c: New file.
6276 * tst-cancelx5.c: New file.
6277 * tst-cancelx6.c: New file.
6278 * tst-cancelx7.c: New file.
6279 * tst-cancelx8.c: New file.
6280 * tst-cancelx9.c: New file.
6281 * tst-cancelx10.c: New file.
6282 * tst-cancelx11.c: New file.
6283 * tst-cancelx12.c: New file.
6284 * tst-cancelx13.c: New file.
6285 * tst-cancelx14.c: New file.
6286 * tst-cancelx15.c: New file.
6287 * tst-cleanupx0.c: New file.
6288 * tst-cleanupx0.expect: New file.
6289 * tst-cleanupx1.c: New file.
6290 * tst-cleanupx2.c: New file.
6291 * tst-cleanupx3.c: New file.
6292
6293 * tst-cleanup0.c: Make standard compliant.
6294 * tst-cleanup1.c: Likewise.
6295
6296 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6297 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6298 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6299 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6300 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6301 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6302 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6303 CLEANUP_JMP_BUF.
6304 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6305 * tst-cancel12.c: New file.
6306 * tst-cancel13.c: New file.
6307 * tst-cancel14.c: New file.
6308 * tst-cancel15.c: New file.
6309 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6310 and tst-cancel15.
6311
6312 * tst-cancel1.c: Add some comments.
6313
6314 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6315 timeout correctly.
6316
7a8a8e21
UD
63172003-06-06 Ulrich Drepper <drepper@redhat.com>
6318
6319 * Makefile (CFLAGS-pthread_cancel.c): Define.
6320
4ad0bbf4
UD
63212003-06-05 Ulrich Drepper <drepper@redhat.com>
6322
6323 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6324 Change type of __writer element to int.
6325 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6326 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6327 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6328 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6329 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6330 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6331 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6332 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6333 Compare with TID to determine deadlocks.
6334 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6335 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6336 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6337 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6338 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6339 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6340 Likewise.
6341 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6342 Likewise.
6343 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6344 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6345 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6346 Likewise.
6347 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6348 Likewise.
6349 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6350 * Makefile (tests): Add tst-rwlock12.
6351 * tst-rwlock12.c: New file.
6352
332faa96
JJ
63532003-06-05 Jakub Jelinek <jakub@redhat.com>
6354
6355 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6356 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6357 Remove bogus hidden_proto.
6358 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6359 Likewise.
6360 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6361 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6362 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6363 ___lll_mutex_timedlock): Likewise.
6364
29d9e2fd
UD
63652003-06-04 Ulrich Drepper <drepper@redhat.com>
6366
6367 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6368 (__pthread_cond_signal): Add some code to eventually handle
6369 cond_lock!=0.
6370
6f1acb30
UD
63712003-06-01 Ulrich Drepper <drepper@redhat.com>
6372
6373 * Makefile (tests): Add tst-exec4.
6374 (tst-exec4-ARGS): Define.
6375 * tst-exec4.c: New file.
6376
49b65043
UD
63772003-05-31 Ulrich Drepper <drepper@redhat.com>
6378
31195be2
UD
6379 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6380 Also fail if tv_nsec < 0.
6381 (__lll_timedwait_tid): Likewise.
6382 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6383 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6384 Likewise.
6385 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6386 Likewise.
6387 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6388 Likewise.
6389 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6390 Likewise.
80b54217
UD
6391 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6392 Likewise.
6393 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6394 Likewise.
31195be2 6395
dcfc8224
UD
6396 * Makefile (tests): Add tst-sem8 and tst-sem9.
6397 * tst-sem8.c: New file.
6398 * tst-sem9.c: New file.
6399 * sem_open.c: Fix creation of in_use record if the file exists but
6400 no internal record.
6401
49b65043
UD
6402 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6403 definitions.
6404
6405 * sysdeps/pthread/timer_create.c (timer_create): In case
6406 evp==NULL, assign timer ID to sival_ptr.
6407
6408 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6409 struct pthread_unwind_buf *.
6410 (struct pthread): Likewise for cleanup_jmp_buf element.
6411
6412 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6413 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6414 * unwind.c (__pthread_unwind_next): Likewise.
6415
50794a45
UD
64162003-05-30 Ulrich Drepper <drepper@redhat.com>
6417
5d4f57bd
UD
6418 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6419 (lll_futex_timed_wait): Use int for futex value parameter.
6420 (lll_futex_wake): Likewise.
6421 (lll_futex_requeue): Likewise.
6422
6423 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6424 Replace one memory operation with one register operation.
6425
6426 * tst-join4.c (do_test): Fix error message.
6427
7ab7ea33
UD
6428 * tst-rwlock6.c (do_test): Use correct format specifier.
6429
6430 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6431 (__lll_mutex_lock_wait): Replace one memory operation with one
6432 register operation.
6433 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6434 (__lll_mutex_lock_wait): Likewise.
6435
50794a45
UD
6436 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6437 (__lll_mutex_cond_lock): Add one to value parameter of
6438 __lll_lock_wait to reflect reality in the futex syscall.
6439 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6440 (lll_mutex_cond_lock): Likewise.
6441
5a70784e
JJ
64422003-05-30 Jakub Jelinek <jakub@redhat.com>
6443
6444 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
6445 New function.
6446 (lll_mutex_cond_lock): Define.
6447
e7c5ac68
UD
64482003-05-29 Ulrich Drepper <drepper@redhat.com>
6449
586d1748
UD
6450 * Makefile (tests): Add tst-signal6.
6451 * tst-signal6.c: New file.
6452
b8ba4a27
UD
6453 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
6454 (__lll_mutex_unlock_force): New function
6455 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6456
65d46efe
UD
6457 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6458 (__lll_mutex_unlock_force): New function.
6459 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6460
6461 * tst-rwlock7.c (do_test): Use correct format specifier.
6462
e7c5ac68
UD
6463 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
6464 Find break parameter in correct asm argument.
6465
284bdc42
UD
64662003-05-27 Jakub Jelinek <jakub@redhat.com>
6467
6468 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
6469 Remove out4.
6470 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
6471 error occured.
6472 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6473 Add __mutex.
6474 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
6475 lll_futex_requeue, lll_mutex_unlock_force): Define.
6476
e7c5ac68
UD
64772003-05-30 Jakub Jelinek <jakub@redhat.com>
6478
6479 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6480 (pthread_cond_t): Add __mutex.
6481 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
6482 lll_futex_requeue, lll_mutex_unlock_force): Define.
6483
ea2630c6
UD
64842003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6485
6486 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
6487 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 6488 Add __mutex field.
ea2630c6
UD
6489 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
6490 Define.
6491 (lll_futex_wait, lll_futex_wake): Define.
6492 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
6493 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
6494 FUTEX_REQUEUE instead of FUTEX_WAIT.
6495 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
6496 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
6497 mutex which was used in condvar structure. Call
6498 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
6499 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
6500
6501 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
6502 include tcb-offsets.h. Read wakeup value in locked region.
6503 Use the value of gbr register as THREAD_ID.
6504 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6505 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
6506 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
6507
6508 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
6509 macros.
6510
5a77f150
UD
65112003-05-28 Ulrich Drepper <drepper@redhat.com>
6512
6513 * sysdeps/pthread/pthread_cond_broadcast.c
6514 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
6515
7661d9f7
UD
65162003-05-26 Ulrich Drepper <drepper@redhat.com>
6517
6518 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
6519 typo in register name.
6520 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
6521 correctly. Actually use requeue. Little optimization.
6522 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
6523 mutex address early. Handle cancellation state as 32-bit value.
6524 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6525 Remove unnecessary label.
6526
69431c9a
UD
65272003-05-25 Ulrich Drepper <drepper@redhat.com>
6528
6529 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
6530 instead of FUTEX_WAIT.
6531 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
6532 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6533 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6534 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
6535 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
6536 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
6537 used in condvar structure. Call __pthread_mutex_cond_lock instead
6538 of __pthread_mutex_lock_internal.
6539 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6540 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6541 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6542 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
6543 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6544 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6545 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
6546 Add pthread_mutex_cond_lock.
6547 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
6548 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
6549 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
6550 lll_mutex_cond_lock.
6551 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
6552 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 6553 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 6554 Add __mutex field.
248a3490 6555 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
6556 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6557
6558 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
6559 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6560
6561 * pthreadP.h: Declare __pthread_mutex_cond_lock.
6562 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
6563 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
6564 macro don't define aliases.
6565
6566 * cancellation.c: Remove __pthread_enable_asynccancel_2.
6567 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
6568 * sysdeps/pthread/pthread_cond_timedwait.c: Use
6569 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
6570 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6571 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6572 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6573 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6574 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6575
fddfebbd
UD
65762003-05-17 Ulrich Drepper <drepper@redhat.com>
6577
6578 * sem_open.c: Fix one endless loop. Implement correct semantics
6579 wrt opening the same semaphore more then once.
6580 * sem_close.c: Adjust for sem_open change.
6581 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
6582 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
6583 * Makefile (tests): Add tst-sem7.
6584 * tst-sem7.c: New file.
6585
1eefffb0
RM
65862003-05-16 Roland McGrath <roland@redhat.com>
6587
6588 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
6589 uninitialized variable braino.
6590
6e66dc78
UD
65912003-05-16 Ulrich Drepper <drepper@redhat.com>
6592
23ae6451
UD
6593 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
6594 test for syscall availability.
6595
6596 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
6597 __no_posix_timers to -1 if the syscalls don't exist.
6598
7ac5b8e2
UD
6599 * pthread_join.c (pthread_join): Set tid field of the joined
6600 thread to -1. This isn't necessary but helps to recognize some
6601 error conditions with almost no cost.
6602
6603 * allocatestack.c (FREE_P): Also negative values indicate an
6604 unused stack.
6605
6e66dc78
UD
6606 * unwind.c: Include <unistd.h>.
6607
855dba3c
UD
66082003-05-14 Ulrich Drepper <drepper@redhat.com>
6609
6610 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
6611
81f3ac4c
UD
66122003-05-14 Jakub Jelinek <jakub@redhat.com>
6613
6614 * Makefile (crti-objs, crtn-objs): New variables.
6615 (omit-deps, extra-objs): Add crtn.
6616 ($(objpfx)libpthread.so): Depend on both crti and crtn
6617 and links to them in multidir.
6618 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
6619
7158eae4
UD
66202003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
6621
6622 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6623 (lll_mutex_unlock): Use atomic_exchange_rel.
6624
edf205d5
UD
66252003-05-11 Ulrich Drepper <drepper@redhat.com>
6626
6627 * cond-perf.c (cons): Add missing locking around setting of alldone.
6628
a3f979a7
UD
66292003-05-10 Ulrich Drepper <drepper@redhat.com>
6630
6631 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
6632 related macros.
6633 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
6634
880867a4
UD
66352003-05-09 Ulrich Drepper <drepper@redhat.com>
6636
949ec764
UD
6637 * tst-sem6.c: New file.
6638 * Makefile (tests): Add tst-sem6.
6639
6640 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
6641 Use atomic_exchange_rel instead of atomic_exchange.
6642 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
6643 Likewise.
6644
6645 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
6646 code for lll_futex_wait and lll_futex_wake in static apps. Use
6647 vsyscall is possible.
6648
6649 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
6650 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
6651 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
6652 pthread_setaffinity_np.
6653 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
6654 and pthread_setaffinity_np.
6655 * Makefile (libpthread-routines): Add pthread_getaffinity and
6656 pthread_setaffinity.
6657
880867a4
UD
6658 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
6659 use it in case mmap to allocate the stack fails.
6660 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
6661 ARCH_MAP_FLAGS here.
6662 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
6663 ARCH_RETRY_MMAP.
6664
92d83c72
UD
66652003-05-08 Ulrich Drepper <drepper@redhat.com>
6666
6667 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
6668 handler implementation. It is now lockless in fork().
6669 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
6670 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
6671 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
6672 declare the __fork_*_lists.
6673 (struct fork_handler): Include pointers to all three functions.
6674 Add next, refcntr and need_signal elements.
6675 (__fork_handlers): New declaration.
6676 (__register_atfork_malloc): Remove declaration.
6677 (HAVE_register_atfork_malloc): Remove definition.
6678 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
6679 __pthread_child_handler variable.
6680 (__libc_pthread_init): Use __register_atfork instead of explicitly
6681 adding to the list.
6682 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
6683 and lll_futex_wake.
6684 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
6685
6686 * unwind.c (unwind_cleanup): Print error message and then abort. This
6687 function must never be reached.
6688
6689 * cond-perf.c: New file.
6690
be4d8038
UD
66912003-05-05 Ulrich Drepper <drepper@redhat.com>
6692
6693 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
6694
c6696b79
RM
66952003-05-04 Roland McGrath <roland@redhat.com>
6696
6697 * Makefile ($(objpfx)../libc.so): New target.
6698
7da168bf
UD
66992003-05-02 Ulrich Drepper <drepper@redhat.com>
6700
6701 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6702 (pthread_condattr_t): Size is only an int, don't use long for
6703 alignment.
6704 (pthread_mutexattr_t): Likewise.
7da168bf
UD
6705 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6706 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6707 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6708
9a7178d6
UD
67092003-05-01 Ulrich Drepper <drepper@redhat.com>
6710
6711 * sysdeps/i386/tls.h: Define THREAD_ID.
6712 * sysdeps/ia64/tls.h: Likewise.
6713 * sysdeps/powerpc/tls.h: Likewise.
6714 * sysdeps/s390/tls.h: Likewise.
6715 * sysdeps/sh/tls.h: Likewise.
6716 * sysdeps/x86_64/tls.h: Likewise.
6717 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
6718 record ownership.
6719 * pthread_mutex_timedlock.c: Likewise.
6720 * pthread_mutex_trylock.c: Likewise.
6721 * pthread_mutex_unlock.c: Likewise.
6722 * pthread_rwlock_trywrlock.c: Likewise.
6723 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
6724 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6725 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6726 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6727
6728 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
6729 flag.
6730
a234e27d
UD
67312003-04-29 Jakub Jelinek <jakub@redhat.com>
6732
6733 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
6734 (__SIZEOF_PTHREAD_COND_T): Define to 48.
6735 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
6736 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6737 Make __align long long instead of long.
6738 (pthread_rwlock_t): Formatting.
6739 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
6740 (pthread_rwlock_t): Formatting.
6741 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6742 (pthread_cond_t): Make __align long long instead of long.
6743 (pthread_rwlock_t): Move __flags field to the same position as in
6744 linuxthreads.
6745
f025c136
UD
67462003-04-30 Ulrich Drepper <drepper@redhat.com>
6747
6748 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
6749 * tst-rwlock7.c (do_test): Likewise.
6750
7531ab9e
RM
67512003-04-26 Roland McGrath <roland@redhat.com>
6752
6753 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
6754
299601a1
UD
67552003-04-22 Jakub Jelinek <jakub@redhat.com>
6756
299601a1
UD
6757 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
6758 sizeof (struct pthread).
6759 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 6760 1 struct pthread.
299601a1
UD
6761 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
6762 to 0.
6763 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
6764 struct pthread.
6765 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
6766 to 32-bit bytes.
6767 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
6768 tcbp.
6769 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
6770 unneccessarily.
6771 (NO_TLS_OFFSET): Define.
299601a1
UD
6772 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
6773 add TLS_TCB_SIZE unnecessarily.
299601a1 6774
950094f8
RM
67752003-04-22 Roland McGrath <roland@redhat.com>
6776
6777 * Makeconfig (shared-thread-library): Reverse link order to work
6778 around linker bug.
6779
dc2f6455
UD
67802003-04-22 Ulrich Drepper <drepper@redhat.com>
6781
6782 * semaphore.h: Fix typo in comment.
6783
e7608d77
UD
67842003-04-21 Ulrich Drepper <drepper@redhat.com>
6785
6a87ee19
UD
6786 * sysdeps/pthread/sigfillset.c: New file.
6787
e7608d77
UD
6788 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
6789 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
6790 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
6791 * sysdeps/pthread/sigaction.c: Likewise.
6792 * sysdeps/pthread/sigprocmask.c: New file.
6793 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
6794 __SIGRTMIN+1.
6795 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
6796 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
6797 in this case.
6798
0b3df49e
UD
67992003-04-19 Ulrich Drepper <drepper@redhat.com>
6800
58a7a325
UD
6801 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6802 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
6803
0b3df49e
UD
6804 * sysdeps/unix/sysv/linux/unregister-atfork.c
6805 (__unregister_atfork): Don't free memory not allocated dynamically.
6806
6807 * semaphore.h: Remove __THROW marker from cancellation points.
6808 * nptl/sysdeps/pthread/pthread.h: Likewise.
6809
7d74651e
UD
68102003-04-18 Ulrich Drepper <drepper@redhat.com>
6811
76a67697
UD
6812 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
6813 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
6814 __THROW.
6815
dd9d6538
JJ
68162003-04-16 Jakub Jelinek <jakub@redhat.com>
6817
6818 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
6819
4ab6f47c
RM
68202003-04-15 Roland McGrath <roland@redhat.com>
6821
6822 * forward.c (__pthread_unwind): Tweak to avoid warning.
6823
162434a6
UD
68242003-04-15 Ulrich Drepper <drepper@redhat.com>
6825
6826 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
6827
35909161
UD
68282003-04-14 Ulrich Drepper <drepper@redhat.com>
6829
18ddd3aa 6830 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
6831 overflow CFA advance instructions.
6832 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6833
18a8e730
UD
68342003-04-14 Jakub Jelinek <jakub@redhat.com>
6835
bd4f43b4
UD
6836 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
6837 * sysdeps/i386/pthread_spin_lock.c: Likewise.
6838 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
6839 defined.
6840
18a8e730
UD
6841 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
6842 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
6843 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
6844 DW_CFA_advance_loc for .Laddl-.Lsubl.
6845
08c765fa
UD
68462003-04-13 Ulrich Drepper <drepper@redhat.com>
6847
18a8e730
UD
6848 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
6849 position-independent unwind data for static libraries.
6850 Add missing unwind info. Add comments.
6851
ad2be852
UD
6852 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
6853 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6854 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
6855 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6856
177d1ad3
UD
68572003-04-12 Ulrich Drepper <drepper@redhat.com>
6858
08c765fa
UD
6859 * Makefile: Make sure all cancellation points are compiled with
6860 exception and asynchronous unwind tables.
6861
177d1ad3
UD
6862 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
6863 which mishandles loading of global object addresses in PIC.
6864 (THREAD_SETMEM_NC): Likewise.
6865
09d65ff3
UD
68662003-04-11 Ulrich Drepper <drepper@redhat.com>
6867
6868 * pthread.h: Define new data structure for cleanup buffer. Declare
6869 new cleanup handler interfaces.
6870 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
6871 (struct pthread): Add cleanup_jmp_buf pointer. Define
6872 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
6873 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
6874 it. Declare old cleanup handler installation functions.
6875 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
6876 handling.
6877 * cleanup_defer.c: Likewise.
6878 * cleanup_compat.c: New file. Old cleanup code.
6879 * cleanup_def_compat.c: New file. Old cleanup code.
6880 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
6881 if own thread descriptor.
6882 * unwind.c: New file.
6883 * forward.c: Add __pthread_unwind.
6884 * init.c (pthread_functions): Add __pthread_unwind.
6885 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
6886 Add ptr___pthread_unwind.
6887 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
6888 and unwind function.
6889 * Makefile (libpthread-routines): Add cleanup_compat,
6890 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
6891 table generation if necessary.
6892 * version.c: Record whether unwind support is compiled in.
6893 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
6894 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
6895 handler interfaces.
6896 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
6897 complication to generate unwind information for syscall wrappers.
68107ec0 6898 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
6899 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
6900 __cleanup_fct_attribute.
6901
6902 * Makefile: Add rules to build and run tst-cleanup0.
6903 * tst-cleanup0.c: New file.
6904 * tst-cleanup0.expect: New file.
6905
6906 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
6907 caller. Optimize to avoid often unecessary local variable.
6908
0dc44b51
RM
69092003-04-11 Roland McGrath <roland@redhat.com>
6910
6911 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
6912 sets variable `multidir'; include that.
6913 (generated): Add it.
6914 ($(objpfx)$(multidir)/crti.o): New target.
6915 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
6916
84a80719
UD
69172003-04-11 Ulrich Drepper <drepper@redhat.com>
6918
6919 * tst-attr2.c (do_test): Add cast to avoid warning.
6920 * tst-mutex4.c (do_test): Likewise.
6921
88ff4759
UD
69222003-04-10 Ulrich Drepper <drepper@redhat.com>
6923
6924 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
6925 in child.
6926
b2041097
UD
69272003-04-09 Ulrich Drepper <drepper@redhat.com>
6928
6929 * Makefile (tests): Add tst-detach1.
6930 * tst-detach1.c: New file.
6931
f9657e88
UD
69322003-04-08 Ulrich Drepper <drepper@redhat.com>
6933
9afe4964
UD
6934 * sysdeps/pthread/pthread.h: Remove duplicate
6935 pthread_cleanup_{push,pop} definitions.
6936
f9657e88
UD
6937 * tst-barrier2.c: Eliminate warnings.
6938 * tst-cancel4.c: Likewise.
6939 * tst-cond4.c: Likewise.
6940 * tst-cond6.c: Likewise.
6941 * tst-detach1.c: Likewise.
6942 * tst-rwlock4.c: Likewise.
6943 * tst-rwlock6.c: Likewise.
6944 * tst-rwlock7.c: Likewise.
6945 * tst-sem3.c: Likewise.
6946 * tst-spin2.c: Likewise.
6947 * tst-umask1.c: Likewise.
6948
69b35e86
UD
69492003-04-07 Ulrich Drepper <drepper@redhat.com>
6950
6951 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
6952
c70ad7d7
UD
69532003-04-06 Ulrich Drepper <drepper@redhat.com>
6954
6955 * descr.h (struct pthread): Move cancelhandling member to the front.
6956
54e0138f
UD
69572003-04-05 Ulrich Drepper <drepper@redhat.com>
6958
6959 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
6960 malloc_parent, and malloc_child statically.
6961 (__register_atfork_malloc): New function.
6962 (free_mem): Don't free any of the malloc_* variables on the list.
6963 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
6964 Define HAVE_register_atfork_malloc.
6965
b22d701b
UD
69662003-04-04 Ulrich Drepper <drepper@redhat.com>
6967
6968 * sysdeps/pthread/createthread.c (create_thread): Add some more
6969 comments explaining when to set multiple_threads and when not.
6970
6971 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
6972 THREAD_ATOMIC_BIT_SET if not already defined.
6973 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
6974 THREAD_ATOMIC_BIT_SET:
6975 * sysdeps/x86_64/tls.h: Likewise.
6976 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
6977 THREAD_ATOMIC_CMPXCHG_VAL.
6978 (_pthread_cleanup_pop_restore): Likewise.
6979 * cancellation.c (__pthread_enable_asynccancel): Likewise.
6980 (__pthread_enable_asynccancel_2): Likewise.
6981 (__pthread_disable_asynccancel): Likewise.
6982 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
6983 (__libc_disable_asynccancel): Likewise.
6984 * init.c (sigcancel_handler): Likewise.
6985 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
6986 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
6987
86246935
UD
69882003-04-03 Ulrich Drepper <drepper@redhat.com>
6989
6990 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
6991 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
6992 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
6993 * Makefile (tests): Add tst-cancel11.
6994 * tst-cancel11.c: New file.
6995
6b4686a5
UD
69962003-04-01 Ulrich Drepper <drepper@redhat.com>
6997
6998 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
6999 round, not the first. Use specific_used flag instead of local
7000 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7001 (__free_tcb): Don't call deallocate_tsd here.
7002 (start_thread): Call deallocate_tsd here.
7003 * pthread_setspecific.c: Set specific_used flag really only when
7004 needed.
0d73a73b 7005 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7006 * tst-tsd3.c: New file.
0d73a73b 7007 * tst-tsd4.c: New file.
6b4686a5 7008
42b2395d
UD
70092003-03-31 Ulrich Drepper <drepper@redhat.com>
7010
211d90c5
UD
7011 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7012 Use atomic_exchange_and_add instead of __lll_add.
7013 (__lll_mutex_timedlock): Likewise.
7014 Patch by Ian Wienand.
7015
70162003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7017
7018 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7019 (SINGLE_THREAD_P): Fix typo.
7020 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7021
70222003-03-31 Ulrich Drepper <drepper@redhat.com>
7023
7024 * Makefile (tests): Add tst-align.
7025 * tst-align.c: New file.
7026 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7027
42b2395d
UD
7028 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7029 function correctly.
7030
211d90c5
UD
7031 * tst-tsd2.c: Add casts to avoid warnings.
7032
163b180f
UD
70332003-03-30 Ulrich Drepper <drepper@redhat.com>
7034
7035 * descr.h (struct pthread): Move most often used elements to the front.
7036
ea473bad
UD
70372003-03-29 Ulrich Drepper <drepper@redhat.com>
7038
7039 * Makefile (libpthread-routines): Add pthread_atfork.
7040 (libpthread-static-only-routines): Add pthread_atfork.
7041
dd731d53
UD
70422003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7043
7044 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7045 of TLS_DTV_AT_TP.
7046 (INSTALL_DTV): Add parens.
7047 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7048 Use passed descr instead of THREAD_SELF.
7049 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7050 (__lll_mutex_timedlock_wait): Correct expected value after
7051 spurious wakeup.
7052 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7053 Release lock before waking up the waiters.
7054 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7055 criteria. Reorderstruct passed to cleanup handler. Fix
7056 handling of cancellation and failung pthread_mutex_unlock call.
7057 Use __pthread_enable_asynccancel_2 instead of
7058 __pthread_enable_asynccancel.
7059 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7060 Return result of lock re-get if it fails.
7061 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7062 for __pthread_cleanup_push.
7063 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7064 completely broken rwlock implementation.
7065 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7066 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7067 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7068 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7069 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7070 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7071 versioned_symbol macro.
7072 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7073 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7074
c75d02f0
UD
70752003-03-27 Ulrich Drepper <drepper@redhat.com>
7076
5f5004df
UD
7077 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7078 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7079 and __helper_tid.
7080 (struct timer): Remove th and bar field.
7081 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7082 debugging code. Create only one helper thread.
7083 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7084 helper thread.
7085 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7086 Renamed. Define statically. Use thread info from siginfo.
7087 (__helper_once): New variable.
7088 (__helper_tid): New variable.
7089 (__reset_helper_control): New function.
7090 (__start_helper_thread): New function.
7091
18d009ca
UD
7092 * pthread_create.c (start_thread): Don't use setjmp inside
7093 __builtin_expect to work around gcc bug.
7094
c75d02f0
UD
7095 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7096 timer_delete syscall fails, but not with ENOSYS, set
7097 __no_posix_timers.
7098
7099 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7100 (timer_settime): Fix typo.
28cf3058
UD
7101 * sysdeps/unix/sysv/linux/timer_getoverr.c
7102 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7103
049ac259
JJ
71042003-03-27 Jakub Jelinek <jakub@redhat.com>
7105
7106 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7107 offset of cleanupbuf.__prev.
7108
f93d39dd
JJ
71092003-03-26 Jakub Jelinek <jakub@redhat.com>
7110
7111 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7112 of included file.
7113
f064e4c5
UD
71142003-03-26 Ulrich Drepper <drepper@redhat.com>
7115
7116 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7117 NULL provide default definition to syscall.
7118
83e886a3
RM
71192003-03-25 Roland McGrath <roland@redhat.com>
7120
7121 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7122 (timer_id2ptr): Fix typo.
7123
09402f5b
UD
71242003-03-25 Ulrich Drepper <drepper@redhat.com>
7125
7126 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7127 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7128 * sysdeps/ia64/pthreaddef.h: Likewise.
7129 * sysdeps/powerpc/pthreaddef.h: Likewise.
7130 * sysdeps/s390/pthreaddef.h: Likewise.
7131 * sysdeps/sh/pthreaddef.h: Likewise.
7132 * sysdeps/x86_64/pthreaddef.h: Likewise.
7133 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7134 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7135 being changed.
7136 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7137 SIGTIMER is not unblocked.
7138 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7139 RT signal taken.
7140 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7141 be send.
7142 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7143 pass pointer through as ID.
7144 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7145 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7146 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7147 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7148 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7149 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7150 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7151 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7152 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7153 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7154 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7155 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7156 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7157 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7158 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7159 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7160 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7161 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7162 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7163 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7164 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7165 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7166 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7167 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7168 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7169 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7170 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7171 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7172 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7173 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7174 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7175 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7176 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7177
7178 * pthreadP.h: Remove FRAME_LEFT definition.
7179 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7180 already left frame. Programs which have this problem are not POSIX
7181 compliant.
7182 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7183
5e826ab5
UD
71842003-03-24 Ulrich Drepper <drepper@redhat.com>
7185
7186 * sysdeps/pthread/tst-timer.c: Check return values of the
7187 functions we test.
7188
b910f788
RM
71892003-03-23 Roland McGrath <roland@redhat.com>
7190
3045a1fe
RM
7191 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7192 * tst-tls3mod.c: Likewise.
7193 * tst-tls1.c: Likewise.
7194 * tst-tls2.c: Likewise.
7195
85047fe3
RM
7196 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7197 undefined behavior.
7198
b910f788
RM
7199 * tst-join5.c (tf1, tf2): Add a cast.
7200
7201 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7202
7203 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7204 Don't test anything.
7205 * tst-cond4.c: Likewise.
7206 * tst-cond6.c: Likewise.
7207 * tst-flock2.c: Likewise.
7208 * tst-mutex4.c: Likewise.
7209 * tst-rwlock4.c: Likewise.
7210 * tst-signal1.c: Likewise.
7211 * tst-spin2.c: Likewise.
7212 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7213
7214 * tst-mutex4.c: Use test-skeleton.c.
7215 * tst-spin2.c: Likewise.
7216 * tst-sysconf.c: Likewise.
7217 * tst-barrier2.c: Likewise.
7218 * tst-cond4.c: Likewise.
7219 * tst-cond6.c: Likewise.
7220 * tst-rwlock4.c: Likewise.
7221 * tst-unload.c: Likewise.
7222 * tst-flock2.c (do_test): Use return instead of exit.
7223
4baa087a
RM
72242003-03-22 Jakub Jelinek <jakub@redhat.com>
7225
7226 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7227
5a3ab2fc
UD
72282003-03-21 Ulrich Drepper <drepper@redhat.com>
7229
9f07eae2
UD
7230 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7231 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7232 instead of __lll_compare_and_swap.
7233 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7234 Likewise.
7235 Removed definition if __lll_compare_and_swap.
7236
5a3ab2fc
UD
7237 * cancellation.c: Adjust for new form of compare&exchange macros.
7238 * cleanup_defer.c: Likewise.
7239 * init.c: Likewise.
7240 * libc-cancellation.c: Likewise.
7241 * old_pthread_cond_broadcast.c: Likewise.
7242 * old_pthread_cond_signal.c: Likewise.
7243 * old_pthread_cond_timedwait.c: Likewise.
7244 * old_pthread_cond_wait.c: Likewise.
7245 * pthread_cancel.c: Likewise.
7246 * pthread_create.c: Likewise.
7247 * pthread_detach.c: Likewise.
7248 * pthread_join.c: Likewise.
7249 * pthread_key_delete.c: Likewise.
7250 * pthread_setcancelstate.c: Likewise.
7251 * pthread_setcanceltype.c: Likewise.
7252 * pthread_timedjoin.c: Likewise.
7253 * pthread_tryjoin.c: Likewise.
7254 * sysdeps/pthread/createthread.c: Likewise.
7255
b1aea098
UD
72562003-03-20 Ulrich Drepper <drepper@redhat.com>
7257
7258 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7259 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7260 definitions. Replace uses with calls to atomic_* functions.
7261 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7262 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7263 __lll_test_and_set calls with atomic_exchange_and_add and
7264 atomic_exchange calls respectively.
7265 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7266 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7267 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7268 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7269 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7270 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7271 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7272
7273 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7274 returns the old value.
7275
100a7100
RM
72762003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7277
7278 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7279 int for variable OLDVAL and correct inline assembler contraint.
7280 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7281 type int for variable OLD.
7282
7283 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7284 only for s390-32.
7285 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7286 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7287 instead of multiple_threads field in the TCB.
7288
95767b36
UD
72892003-03-19 Ulrich Drepper <drepper@redhat.com>
7290
4009bf40
UD
7291 * sysdeps/i386/i686/bits/atomic.h: Removed.
7292 * sysdeps/i386/i586/bits/atomic.h: Removed.
7293 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7294 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7295 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7296 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7297 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7298 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7299 * atomic.h: Removed. Moved to glibc.
7300
560a784f
UD
7301 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7302 support for clock selection.
7303
95767b36
UD
7304 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7305 signalling waiters.
7306
043ad426
RM
73072003-03-18 Roland McGrath <roland@redhat.com>
7308
94659495
RM
7309 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7310 Add __lll_rel_instr first. Add memory clobber.
7311 (lll_mutex_unlock): Use __lll_test_and_set.
7312 From Paul Mackerras <paulus@samba.org>.
7313
7314 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7315 unconditionally.
7316 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7317 (SINGLE_THREAD_P): Add `header.' prefix.
7318 From Paul Mackerras <paulus@samba.org>.
7319
043ad426
RM
7320 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7321 pthread_timedjoin_np to ...
7322 (libpthread: GLIBC_2.3.3): ... here.
7323 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7324
7325 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7326 Avoid shadowing VAL variable.
7327
7328 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7329 New macro.
7330
86a9ee5e
UD
73312003-03-18 Ulrich Drepper <drepper@redhat.com>
7332
ac9e0aa1
UD
7333 * Makefile (tests): Add tst-cond11.
7334 * tst-cond11.c: New file.
7335
a14b373c
UD
7336 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7337 struct passed to cleanup handler to eliminate one more
7338 instruction.
7339 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7340
24a49f38
UD
7341 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7342 (pthrad_cond_t): Replace __unused field with __clock.
7343
7344 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7345 waken all waiters in cleanup handler.
7346 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7347 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7348
86a9ee5e
UD
7349 * pthread_condattr_getclock.c: New file.
7350 * pthread_condattr_setclock.c: New file.
7351 * sysdeps/pthread/pthread.h: Declare these new functions.
7352 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7353 * Makefile (libpthread-routines): Add the new functions.
7354 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7355 Renamed field to value. Document use of the bits.
7356 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7357 change.
7358 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7359 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7360 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7361 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7362 Add __clock field.
7363 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7364 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7365 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7366 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7367 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7368 Implement clock selection.
7369 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7370 * pthread-errnos.sym: Add ENOSYS.
7371 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7372 _POSIX_CLOCK_SELECTION.
7373 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7374
7375 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7376 invalid .size directive.
7377
98054a05
RM
73782003-03-17 Roland McGrath <roland@redhat.com>
7379
7380 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7381 Formatting tweaks.
7382
001bea71
UD
73832003-03-17 Ulrich Drepper <drepper@redhat.com>
7384
4773086e
UD
7385 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7386 Use __lll_add instead of spelling it out. Use protected symbol names.
7387 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7388 Use __lll_add.
7389 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7390 Renamed from lll_compare_and_swap. Use new name where necessary.
7391 (__lll_add): Defined.
7392 (__lll_dec_if_positive): Defined.
7393 (__lll_test_and_set): Defined.
7394 * sysdeps/ia64/pthread_spin_init.c: Removed.
7395 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7396 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7397 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7398 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7399 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7400 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7401 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7402 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7403 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7404 __sync_lock_release_si.
7405 Patch by Jakub Jelinek.
7406
7407 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7408 Fix timeout handling.
7409 (__lll_timedwait_tid): Likewise.
7410 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7411 Patch by Jakub Jelinek.
7412
7413 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7414
de4471dd
RM
74152003-03-17 Roland McGrath <roland@redhat.com>
7416
7417 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7418 * sysdeps/pthread/pthread_spin_init.c: New file.
7419 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7420 * sysdeps/powerpc/Makefile: New file.
7421 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7422 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7423 * sysdeps/powerpc/pthreaddef.h: New file.
7424 * sysdeps/powerpc/tcb-offsets.sym: New file.
7425 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7426 * sysdeps/powerpc/tls.h: New file.
7427 * sysdeps/powerpc/bits/atomic.h: New file.
7428 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7429 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7430 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7431
de4471dd
RM
7432 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7433 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7434 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7435 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7436 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7437 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7438 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7439 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7440 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7441 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7442 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7443 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
7444 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
7445 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
7446 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
7447
7448 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
7449 not gettimeofday.
7450 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
7451 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7452 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
7453 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
7454 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7455
5778033f
UD
74562003-03-17 Ulrich Drepper <drepper@redhat.com>
7457
7458 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
7459 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7460 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7461 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7462 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
7463
796038f8
RM
74642003-03-16 Roland McGrath <roland@redhat.com>
7465
7466 * tst-fork4.c: Include <string.h>.
7467 * tst-signal2.c: Likewise.
7468 * tst-mutex5.c (do_test): exit -> return.
7469 * tst-mutex2.c: Include <stdlib.h>.
7470
51d0678c
UD
74712003-03-16 Ulrich Drepper <drepper@redhat.com>
7472
5778033f
UD
7473 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7474 (__lll_mutex_timedlock_wait): Correct expected value after
7475 spurious wakeup. Otherwise we would never wait again.
7476
b6e2f87a
UD
7477 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
7478 zone versus inline asm stupidity. Use correct instructions.
7479
51d0678c
UD
7480 * tst-rwlock6.c: Add some more status output.
7481
8112cc70
RM
74822003-03-15 Roland McGrath <roland@redhat.com>
7483
7484 * sysdeps/pthread/configure.in: New file.
7485 * sysdeps/pthread/configure: New file (generated).
7486
49773c19
UD
74872003-03-15 Ulrich Drepper <drepper@redhat.com>
7488
7489 * allocatestack.c (allocate_stack): Store the exact stack size of
7490 user allocated stacks.
7491
eec0ca9f
JJ
74922003-03-15 Jakub Jelinek <jakub@redhat.com>
7493
7494 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
7495 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
7496 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7497 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
7498 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
7499 Use `header.' prefix.
7500 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7501
a87731e2
UD
75022003-03-15 Ulrich Drepper <drepper@redhat.com>
7503
7504 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
7505 __builtin_frame_address, use stack pointer.
7506
7507 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
7508 instead of __builtin_frame_pointer.
7509
e22a221d
UD
75102003-03-14 Ulrich Drepper <drepper@redhat.com>
7511
92ed3daf
UD
7512 * tst-basic1.c (do_test): Add cast to avoid warning.
7513 * tst-basic2.c (do_test): Likewise.
7514
9b89567d
UD
7515 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
7516 amount of stack correction.
7517
e22a221d
UD
7518 * tst-fork4.c: Use test-skeleton.c.
7519
2e49caba
RM
75202003-03-14 Roland McGrath <roland@redhat.com>
7521
7522 * init.c: Fix typo "#eli" for "#else".
7523
415ef7d8
RM
75242003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
7525
7526 * allocatestack.c (__stack_user): Use hidden_data_def.
7527 * pthread_create.c (__pthread_keys): Likewise.
7528
7529 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
7530
52287505
RM
75312003-03-14 Roland McGrath <roland@redhat.com>
7532
415ef7d8
RM
7533 * tst-fork4.c: New file.
7534 * Makefile (tests): Add it.
7535
52287505
RM
7536 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
7537 we always define the padding space.
7538 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
7539 stopped supporting its own extensions fully.
7540 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
7541 struct also called `header', so `header.multiple_threads' is the field
7542 name to use on all machines.
7543 * allocatestack.c (allocate_stack): Use `header.' prefix.
7544 * sysdeps/pthread/createthread.c (create_thread): Likewise.
7545 * pthread_create.c (__pthread_create_2_1): Likewise.
7546 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
7547 (THREAD_SELF): Likewise.
7548 * sysdeps/x86_64/tls.h: Likewise.
7549 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
7550 (SINGLE_THREAD_P): Likewise.
7551 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
7552 (SINGLE_THREAD_P): Likewise.
7553 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7554 (SINGLE_THREAD_P): Likewise.
7555
7556 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
7557 value directly.
7558
c44bf9aa
UD
75592003-03-14 Ulrich Drepper <drepper@redhat.com>
7560
e22a221d
UD
7561 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
7562 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
7563
0eb18281
UD
7564 * pthread_create.c (start_thread): setjmp is expected to return 0.
7565
c44bf9aa
UD
7566 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
7567 (THREAD_GETMEM_NC): Likewise.
7568
564cd8b6
UD
75692003-03-13 Ulrich Drepper <drepper@redhat.com>
7570
7571 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
7572 and the size of the stack which must be allocated is a multiple,
7573 allocate one more page.
7574 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
7575 MULTI_PAGE_ALIASING.
7576
6461e577
RM
75772003-03-13 Roland McGrath <roland@redhat.com>
7578
7579 * pthread_create.c (start_thread): Set EXITING_BIT after the
7580 event-reporting (and destructors), not before.
7581
b5ec5617
UD
75822003-03-13 Jakub Jelinek <jakub@redhat.com>
7583
6461e577
RM
7584 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
7585 lll_futex_wake): Declare register variables as long int instead of
7586 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
7587 Make syscall arguments clobbered by the syscall.
7588 (lll_futex_wait): Define using lll_futex_timed_wait.
7589
7590 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
7591 to void *.
7592
7593 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
7594 PPID if [! NDEBUG].
7595
7596 * allocatestack.c (nptl_ncreated): Only declare if
7597 COLORING_INCREMENT != 0.
7598
7599 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
7600 (__libc_enable_asynccancel_2): Remove prototype.
7601
b5ec5617
UD
7602 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
7603 ctid to match kernel.
7604
d0369fb8
UD
76052003-03-12 Ulrich Drepper <drepper@redhat.com>
7606
7588880f
UD
7607 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
7608 libc_multiple_threads.
7609 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
7610 __libc_multiple_threads to...
7611 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
7612
7613 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
7614 versioning.
7615 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7616 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7617
7618 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
7619 (__pthread_once_internal): Define.
7620
7621 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
7622 macros instead of .symver directly.
7623 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
7624 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
7625
d0369fb8
UD
7626 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
7627 * sysdeps/x86_64/tcb-offsets.sym: New file.
7628 * sysdeps/x86_64/Makefile: New file.
7629
7630 * sysdeps/i386/tcb-offsets.sym: Add SELF.
7631 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
7632 to access own pthread_t in TCB.
7633 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7634 Likewise.
7635 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7636 Likewise.
7637 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7638
0bb2ac85
RM
76392003-03-12 Roland McGrath <roland@redhat.com>
7640
7641 * pthread-errnos.sym: New file.
7642 * Makefile (gen-as-const-headers): New variable, list that file.
7643 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
7644 header <pthread-errnos.h> instead of defining errno values here.
7645 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
7646 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
7647 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
7648 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7649 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7650 Likewise.
7651 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7652 Likewise.
7653 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
7654 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7655 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
7656 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
7657 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7658 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7659 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
7660 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
7661 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7662 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
7663 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
7664 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
7665 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
7666 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
7667 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7668 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7669 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7670 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7671 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7672 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
7673 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
7674 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
7675 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
7676 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
7677 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
7678 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
7679 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
7680
7681 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
7682 CLONE_CHILD_SETTID worked.
7683
35e148cb
UD
76842003-03-12 Ulrich Drepper <drepper@redhat.com>
7685
d0369fb8
UD
7686 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
7687 file.
7688 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
7689 file.
7690
7691 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7692 (pthread_cond_t): Add padding.
7693
da49194d
UD
7694 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
7695 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
7696 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
7697
35e148cb
UD
7698 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
7699 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
7700 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
7701 (__pthread_rwlock_timedrdlock): Likewise.
7702 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
7703 (__pthread_rwlock_wrlock): Likewise.
7704 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
7705 (__pthread_rwlock_rdlock): Likewise.
7706
7707 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
7708
7709 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
7710 result of lock re-get if it fails.
7711
3e976b96
UD
77122003-03-11 Ulrich Drepper <drepper@redhat.com>
7713
5a03acfe
UD
7714 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
7715 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7716 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
7717 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7718 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7719 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
7720 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
7721 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
7722 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7723 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7724
7725 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
7726 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
7727
7728 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
7729 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
7730 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
7731 (create_thread): Likewise.
7732 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
7733 * init.c (__pthread_initialize_minimal_internal): Initialize
7734 __libc_multiple_threads_ptr if necessary.
7735 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
7736 __pthread_multiple_threads and __libc_multiple_threads_ptr.
7737 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
7738 __libc_multiple_threads.
7739 (__libc_pthread_init): Return pointer to __libc_pthread_init if
7740 necessary.
7741
7742 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
7743 (THREAD_SETMEM_NC): Likewise.
7744
7745 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
7746 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
7747 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
7748 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
7749
7750 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
7751 Eliminate one entire instruction.
7752
32a589b1
UD
7753 * cancellation.c (__pthread_enable_asynccancel_2): New function.
7754 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
7755 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7756 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
7757 instead of __pthread_enable_asynccancel.
7758 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7759 (__pthread_cond_wait): Likewise.
7760 * sysdeps/pthread/pthread_cond_timedwait.c
7761 (__pthread_cond_timedwait): Likewise.
7762 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
7763
3e976b96
UD
7764 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7765 (__condvar_cleanup): Wake up all waiters in case we got signaled
7766 after being woken up but before disabling asynchronous
7767 cancellation.
7768 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
7769 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
7770 (__condvar_cleanup): Likewise.
7771
7772 * init.c (__NR_set_tid_address): If already defined, don't redefine.
7773 Make it an error if architecture has no #if case. Add x86-64.
7774
7775 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
7776 pt-initfini.s generation.
7777
7778 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
7779 (TLS_INIT_TP): Fix typo.
7780
6c477888
UD
77812003-03-11 Jakub Jelinek <jakub@redhat.com>
7782
7783 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
7784 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
7785
7786 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
7787 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7788 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
7789 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
7790 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
7791 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7792 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
7793 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
7794
ea694823
UD
77952003-03-11 Ulrich Drepper <drepper@redhat.com>
7796
6c477888
UD
7797 * sysdeps/pthread/pthread_cond_timedwait.c
7798 (__pthread_cond_timedwait): Return the result of the final
7799 locking. If it succeeds, the regular function return value.
7800
7801 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
7802 Return result of the final locking.
7803 * version.c (__nptl_main): Work around problems with the strange
7804 INTERNAL_SYSCALL macro on ppc32.
7805 * init.c (__pthread_initialize_minimal_internal): Unblock
7806 SIGCANCEL in case the parent blocked it.
7807 Reported by Paul Mackerras <paulus@samba.org>.
7808
ea694823
UD
7809 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
7810 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
7811 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
7812
b33e6163
RM
78132003-03-11 Jakub Jelinek <jakub@redhat.com>
7814
7815 * sysdeps/pthread/pthread_cond_timedwait.c
7816 (__pthread_cond_timedwait): Unlock and fail if
7817 __pthread_mutex_unlock_internal failed.
7818
7819 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
7820 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
7821 Use ARCH_CLONE.
7822 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
7823 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
7824 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
7825 ALLOCATE_STACK): New macros.
7826 (TLS_TPADJ): New macro.
7827 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
7828 (allocate_stack): Handle TLS_DTV_AT_TP and
7829 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
7830 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
7831 Don't set PD->self.
7832 * init.c [__ia64__] (__NR_set_tid_address): Define.
7833
7834 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
7835 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
7836 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
7837 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
7838 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
7839 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
7840 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
7841 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
7842 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
7843 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
7844 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
7845 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
7846 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
7847 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
7848 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
7849 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
7850 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
7851 * sysdeps/ia64/bits/atomic.h: New file.
7852 * sysdeps/ia64/Makefile: New file.
7853 * sysdeps/ia64/pthread_spin_init.c: New file.
7854 * sysdeps/ia64/pthread_spin_lock.c: New file.
7855 * sysdeps/ia64/pthread_spin_trylock.c: New file.
7856 * sysdeps/ia64/pthread_spin_unlock.c: New file.
7857 * sysdeps/ia64/pthreaddef.h: New file.
7858 * sysdeps/ia64/tcb-offsets.sym: New file.
7859 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
7860 * sysdeps/ia64/tls.h: New file.
7861
7862 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
7863 to syscall instead of no arguments.
7864
2b30b2e5
UD
78652003-03-10 Ulrich Drepper <drepper@redhat.com>
7866
db5f2fc9
UD
7867 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
7868 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
7869 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
7870 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
7871
7872 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
7873 unused code.
7874
6a4263e3
UD
7875 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
7876
3de7c2a9
UD
7877 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
7878 lowlevelbarrier.sym.
7879 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
7880 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
7881 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 7882 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 7883
2a544d82
UD
7884 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
7885 (__lll_mutex_lock_wait): Reverse order of first two parameters.
7886 (__lll_mutex_timedlock_wait): Likewise.
7887 (lll_mutex_lock): Adjust asm for that.
7888 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
7889 (lll_lock): Adjust asm for operand order change.
7890 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
7891 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
7892
ec06436c
UD
7893 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
7894 Reverse order of parameters.
7895 (__lll_timedwait_tid): Remove regparms attribute.
7896 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
7897 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
7898
3273832c
UD
7899 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7900 (__lll_timedwait_tid): Remove one unnecessary instruction.
7901
51f32ab8
UD
7902 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
7903 __lll_mutex_timedlock_wait only for NOT_IN_libc.
7904 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
7905 lowlevelmutex.S.
7906
7907 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
7908 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
7909 for NOT_IN_libc.
7910 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
7911 lowlevellock.S.
7912
fad48d9e
UD
7913 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
7914 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
7915 for libc.so.
7916 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
7917 define LOCK here (if UP is not defined). The actual code is in
7918 lowlevelmutex.S.
7919
9356d063
UD
7920 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
7921 LOCK is already defined. Don't define lll_unlock_wake_cb and
7922 __lll_timedwait_tid for libc.so.
7923 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
7924 define LOCK here (if UP is not defined). The actual code is in
7925 lowlevellock.S.
7926
ebf0cbc5 7927 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
7928 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
7929 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
7930 instead of lowlevelsem.h.
7931 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7932 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
7933 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 7934
c915e5ad
UD
7935 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
7936 lowlevelrwlock.sym.
7937 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
7938 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 7939 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 7940
4c3c2e8a
UD
7941 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
7942 register loading.
7943 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
7944 last changed. D'oh.
7945
2b30b2e5
UD
7946 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
7947
7948 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
7949 of __libc_locking_needed.
7950 (lll_trylock): Initialize %eax to zero.
7951
2b30b2e5
UD
7952 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
7953 pthread_cond_t definition.
7954
e48f9638
RM
79552003-03-10 Roland McGrath <roland@redhat.com>
7956
7957 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
7958 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
7959 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
7960 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
7961 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
7962
7963 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
7964 Instead of setting PD->multiple_threads, set globals
7965 __pthread_multiple_threads and __libc_multiple_threads.
7966 * sysdeps/pthread/createthread.c (create_thread): Likewise.
7967 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
7968 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
7969
7970 * descr.h (struct pthread): Conditionalize first member on
7971 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
7972 containing an anonymous tcbhead_t. Move `list' member out.
7973 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
7974 * allocatestack.c: Remove use of `header.data.' prefix.
7975 * pthread_create.c: Likewise.
7976 * init.c (__pthread_initialize_minimal_internal): Likewise.
7977 * sysdeps/pthread/createthread.c (create_thread): Likewise.
7978 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
7979 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
7980 * sysdeps/x86_64/tls.h: Likewise.
7981 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
7982 (SINGLE_THREAD_P): Likewise.
7983 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
7984 (SINGLE_THREAD_P): Likewise.
7985 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
7986 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
7987
c37cae9e
UD
79882003-03-09 Ulrich Drepper <drepper@redhat.com>
7989
d38c777e
RM
7990 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
7991
7b44a5e0 7992 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 7993 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 7994
c2e5e085
UD
7995 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
7996 leftovers from the ia32 code.
7997
7998 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
7999 memory load.
8000 (clear_once_control): Don't load %esi.
8001
8002 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8003 handling.
8004
8005 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8006
cd4b2a55
UD
8007 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8008 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8009
c37cae9e
UD
8010 * Makefile (tests): Add tst-cond10.
8011 * tst-cond10.c: New file.
8012
d130a341
UD
80132003-03-08 Ulrich Drepper <drepper@redhat.com>
8014
ccf1d573
UD
8015 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8016 * tst-signal3.c (do_test): Likewise.
8017 * tst-sem5.c (do_test): Likewise.
8018 * tst-kill6.c (do_test): Likewise.
8019 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8020
8021 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8022 of inc/dec.
8023 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8024 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8025 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8026 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8027 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8028 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8029 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8030 Likewise.
8031 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8032 Likewise.
8033 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8034 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8035 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8036 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8037 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8038 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8039 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8040 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8041
d130a341
UD
8042 * allocatestack.c (allocate_stack): If mprotect() fails free the
8043 TLS memory.
8044
bc6389ad
UD
80452003-03-07 Ulrich Drepper <drepper@redhat.com>
8046
41d4d223
UD
8047 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8048
8049 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8050 lll_wake_tid. This was used only to work around kernel limits in
8051 the early days.
8052 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8053 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8054 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8055 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8056
bc6389ad
UD
8057 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8058 (__pthread_initialize_minimal_internal): Change initialization of
8059 __static_tls_align_m1 appropriately.
8060 * pthreadP.h (__static_tls_align_m1): Renamed from
8061 __static_tls_align.
8062 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8063 instead of __static_tls_align-1.
8064
cc775edf
UD
80652003-03-04 Ulrich Drepper <drepper@redhat.com>
8066
0de28d5c 8067 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8068
518b5308
UD
8069 * pthread_create.c: Define __pthread_keys using nocommon
8070 attribute, not by placing it explicitly in bss.
8071 Remove DEFINE_DEALLOC definition. Not needed anymore.
8072
8073 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8074 Use it in mmap call to allocate stacks.
8075
8076 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8077
cc775edf
UD
8078 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8079 result of the thread function.
8080
4f6f0a8f
UD
80812003-03-03 Ulrich Drepper <drepper@redhat.com>
8082
f04a2721
UD
8083 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8084 version is just fine.
8085
4f6f0a8f
UD
8086 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8087 (__pthread_child_handler): Renamed from pthread_child_handler,
8088 exported, and marked hidden. Change all users.
8089 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8090 free __pthread_child_handler from child list.
8091
7ce5c164
UD
80922003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8093
8094 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8095
8096 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8097 Fix handling of cancellation and failing pthread_mutex_unlock call.
8098 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8099 (__pthread_cond_wait): Likewise.
8100
8101 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8102 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8103 lll_futex_timed_wait call.
8104 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8105 (pthread_rwlock_timedwrlock): Likewise.
8106
8107 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8108 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8109 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8110
8111 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8112 check of lll_futex_wake return value.
8113
ea6a015b
RM
81142003-03-03 Roland McGrath <roland@redhat.com>
8115
8116 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8117
8118 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8119 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8120 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8121
4adacf57
UD
81222003-03-02 Ulrich Drepper <drepper@redhat.com>
8123
1be3d664
UD
8124 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8125 error for CPU clocks.
8126
885bafa1
UD
8127 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8128 _POSIX_MONOTONIC_CLOCK.
8129 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8130
4adacf57
UD
8131 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8132 recent kernels.
8133
86bfff4d
UD
81342003-03-01 Ulrich Drepper <drepper@redhat.com>
8135
8136 * descr.h (struct pthread): Move cleanup field to the front.
8137
d1149385
RM
81382003-03-01 Roland McGrath <roland@redhat.com>
8139
8140 * sem_open.c (sem_open): Braino fix.
8141
bd8bb78b
UD
81422003-03-01 Ulrich Drepper <drepper@redhat.com>
8143
748bec08
UD
8144 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8145 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8146 __pthread_cleanup_pop functionality.
8147 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8148
bd8bb78b
UD
8149 * descr.h (struct pthread): Move tid field to the front now that
8150 it is often used.
8151
8152 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8153 (__lll_mutex_timedlock_wait): Remove.
8154 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8155 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8156 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8157 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8158 (lll_unlock_wake_cb): Don't save and restore %esi.
8159 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8160 %esi.
8161 (__lll_timedwait_tid): Add alignment.
8162 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8163 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8164 %esi.
8165 (__lll_timedwait_tid): Removed.
8166 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8167 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8168 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8169 (pthread_barrier_wait): Don't save, load, and restore %esi for
8170 last thread.
8171 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8172 (__pthread_cond_signal): Don't save, load, and restore %esi.
8173 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8174 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8175 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8176 Don't save, load, and restore %esi.
8177
d2637c70
UD
81782003-02-27 Ulrich Drepper <drepper@redhat.com>
8179
567fb22a
UD
8180 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8181 Release lock before waking up the waiters.
8182
427f5fa1
UD
8183 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8184
a2d83cfb
UD
8185 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8186 (reader_thread): Likewise.
8187
d2637c70
UD
8188 * sysdeps/pthread/pthread_rwlock_unlock.c
8189 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8190 to wake up readers if there are none.
8191
8192 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8193 Release internal lock before wake threads.
8194
b1531183
UD
81952003-02-26 Ulrich Drepper <drepper@redhat.com>
8196
dbf6131c
UD
8197 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8198 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8199 predefined.
8200 * tst-rwlock9.c: Likewise.
8201 * tst-rwlock10.c: New file.
8202 * tst-rwlock11.c: New file.
8203
695799fe
UD
8204 * Makefile (tests): Add tst-dlsym1.
8205 * tst-dlsym1.c: New file.
8206
b1531183
UD
8207 * init.c (__pthread_initialize_minimal_internal): Set
8208 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8209 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8210
3724f268
UD
82112003-02-24 Ulrich Drepper <drepper@redhat.com>
8212
3857ca78
UD
8213 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8214
80d80779
UD
8215 * tst-cond2.c: Fix sychronization with child.
8216
86371308
UD
8217 * tst-rwlock8.c (reader_thread): Remove unused variable.
8218
ffeb4481
UD
8219 * Makefile: Add rules to build and run tst-tls3.
8220 * tst-tls3.c: New file.
8221 * tst-tls3mod.c: New file.
8222
3724f268
UD
8223 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8224 * tst-rwlock8.c: New file.
8225 * tst-rwlock9.c: New file.
8226 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8227 complete broken rwlock implementation.
8228 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8229 Likewise.
8230 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8231 Likewise.
8232 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8233 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8234 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8235 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8236 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8237 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8238 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8239
8915cc40
RM
82402003-02-23 Roland McGrath <roland@redhat.com>
8241
8242 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8243
fd1a0d0c
UD
82442003-02-23 Ulrich Drepper <drepper@redhat.com>
8245
ecf28959
UD
8246 * Makefile (tests): Add tst-context1.
8247 * tst-context1.c: New file.
8248
5e47b76b
UD
8249 * Makefile (tests): Add tst-tls1 and tst-tls2.
8250 * tst-tls1.c: New file.
8251 * tst-tls2.c: New file.
8252
5a6bbb41
UD
8253 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8254 for failed cmpxchg.
8255
fd1a0d0c
UD
8256 * pthread_create.c (start_thread): Set EXITING_BIT early.
8257
8258 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8259 (THREAD_GETMEM_NC): Likewise.
8260
757f9fcb
UD
82612003-02-22 Ulrich Drepper <drepper@redhat.com>
8262
b1b8e747
UD
8263 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8264 off 3 more bytes by using offset-less instructions when possible.
8265
c780aa21 8266 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8267
8268 * eintr.c (eintr_source): Add unnecessary return but the compiler
8269 insists.
8270
8271 * tst-kill3.c: Include <unistd.h>.
8272
5148559c
RM
82732003-02-21 Roland McGrath <roland@redhat.com>
8274
8275 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8276
ab2d98e3
UD
82772003-02-21 Ulrich Drepper <drepper@redhat.com>
8278
71028edd
UD
8279 * Makefile (tests): Add tst-eintr1.
8280 (distribute): Add eintr.c.
8281 * tst-eintr1.c: New file.
8282 * eintr.c: New file.
8283
e814f748
UD
8284 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8285
8286 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8287 Disallow sending SIGCANCEL.
8288
ab2d98e3 8289 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8290 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8291 * tst-kill1.c: New file.
8292 * tst-kill2.c: New file.
8293 * tst-kill3.c: New file.
8294 * tst-kill5.c: New file.
9c03686d 8295 * tst-kill6.c: New file.
e814f748
UD
8296 * tst-basic7.c: Renamed to...
8297 * tst-kill4.c: ...this.
ab2d98e3 8298
59fed0e2
RM
82992003-02-21 Roland McGrath <roland@redhat.com>
8300
8301 * Makefile (install-lib-ldscripts): New variable.
8302
49dc759f
UD
83032003-02-21 Ulrich Drepper <drepper@redhat.com>
8304
8c2e9a29
UD
8305 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8306 * pthread_cancel.c: Use INVALID_TD_P.
8307 * pthread_detach.c: Likewise.
8308 * pthread_getschedparam.c: Likewise.
8309 * pthread_setschedparam.c: Likewise.
8310 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8311 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8312 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8313 * pthread_timedjoin.c: Likewise.
8314
8315 * tst-basic7.c: Include <signal.h>.
8316
49dc759f
UD
8317 * pthread_join.c (pthread_join): Limited checking for invalid
8318 descriptors.
8319 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8320
df5803bf
UD
83212003-02-20 Ulrich Drepper <drepper@redhat.com>
8322
c5acd3d7
UD
8323 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8324 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8325 * Makefile (tests): Add tst-key4.
8326 * tst-key4.c: New file.
8327
729924a0
UD
83282003-02-18 Ulrich Drepper <drepper@redhat.com>
8329
2f7dc594
UD
8330 * Makefile (tests): Add tst-basic7.
8331 * tst-basic7.c: New file.
8332
ba25bb0f
UD
8333 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8334 Add some more __builtin_expect.
8335
12fd3c5f 8336 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8337
5430d926
UD
83382003-02-17 Ulrich Drepper <drepper@redhat.com>
8339
b0db7fbe
UD
8340 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8341 _POSIX_THREAD_PRIORITY_SCHEDULING.
8342 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8343 _XOPEN_REALTIME_THREADS.
8344 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8345
8346 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8347 kernel returns EINVAL for PID <= 0, work around it.
8348
ecfda9bd
UD
8349 * Makefile (tests): Add tst-signal5.
8350 * tst-signal5.c: New file.
8351
7d78ab99
UD
8352 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8353 and LOGIN_NAME_MAX.
8354
371a2972
UD
8355 * tst-cancel1.c (tf): Block all signals.
8356
5430d926
UD
8357 * Makefile (tests): Add tst-basic6.
8358 * tst-basic6.c: New file.
8359
8360 * tst-basic1.c: Add test for process ID.
8361
8362 * Makefile (tests): Add tst-cancel10.
8363 * tst-cancel10.c: New file.
8364
8365 * Makefile (tests): Add tst-signal4.
8366 * tst-signal4.c: New file.
8367
8368 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8369 __sigismember instead of sigismember. Add __builtin_expect.
8370
1564916a
UD
83712003-02-16 Ulrich Drepper <drepper@redhat.com>
8372
179ff175
UD
8373 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8374 pthread_setcancelstate, and pthread_rwlock_setpshared.
8375
e4335f9a
UD
8376 * tst-cancel7.c (do_test): Make sure the pid file exists before
8377 canceling the thread.
8378
0a37669a
UD
8379 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8380 pthread_rwlock_timedrdlock tests.
8381 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8382 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8383 Check for invalid tv_nsec field.
8384 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8385 Likewise.
8386
8387 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8388 recursive mutex of overflow.
8389
8390 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8391
e4335f9a 8392 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8393 going into an endless loop.
8394 * Makefile (tests): Add tst-cancel9.
8395 * tst-cancel9.c: New file.
8396
8397 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8398
b270b548
UD
83992003-02-15 Ulrich Drepper <drepper@redhat.com>
8400
1c82b97f
UD
8401 * tst-mutex5.c (do_test): Add more timedlock tests.
8402
b2f05465 8403 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8404 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8405
e798b60f
UD
8406 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8407 use INLINE_SYSCALL. Error number is returned, not -1.
8408
90491dc4
UD
8409 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8410 and __deallocate_stack with internal_function.
8411 * pthread_create.c: Adjust definitions appropriately.
8412 * allocatestack.c: Likewise.
8413
8414 * pthread_join.c: Add one more __builtin_expect.
8415 * pthread_timedjoin.c: Likewise.
8416
8417 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8418 not data of sequence number does not match.
8419 Add one __builtin_expect.
8420
c6247c9d
UD
8421 * Makefile (tests): Add tst-clock1.
8422 * tst-clock1.c: New file.
8423
b270b548
UD
8424 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8425 negative arguments.
8426 * Makefile (tests): Add tst-basic5.
8427 * tst-basic5.c: New file.
8428
700bf7af
UD
84292003-02-14 Ulrich Drepper <drepper@redhat.com>
8430
757de559
UD
8431 * Makefile (tests): Add tst-basic4.
8432 * tst-basic4.c: New file.
8433
47202270
UD
8434 * pthreadP.h: Add declaraction for __nptl_nthreads.
8435 * pthread_create.c: Define __nptl_nthreads
8436 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8437 after thread is done. If then zero, call exit(0).
47202270
UD
8438 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8439 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8440 * init.c (pthread_functions): Initialize ptr_nthreads.
8441 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8442 (__reclaim_stacks): Decrement __nptl_nthreads.
8443 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
8444 Define.
8445 * Makefile (tests): Add tst-basic3.
8446 * tst-basic3.c: New file.
8447
e320ef46
UD
8448 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
8449 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
8450 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
8451 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
8452 if asynchronous canceling is enabled.
8453 * pthread_join.c (pthread_join): When recognizing circular joins,
8454 take into account the other thread might be already canceled.
8455 * Makefile (tests): Add tst-join5.
8456 * tst-join5.c: New file.
8457
700bf7af
UD
8458 * Makefile (tests): Add tst-join4.
8459 * tst-join4.c: New file.
8460
84612003-02-13 Ulrich Drepper <drepper@redhat.com>
8462
8463 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
8464
dac0f772
UD
84652003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
8466
8467 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
8468 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
8469 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
8470 warning.
8471 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
8472 to avoid warning.
8473 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
8474 error if lll_futex_wake failed.
8475
e8cda341
UD
84762003-02-13 Ulrich Drepper <drepper@redhat.com>
8477
a7720b5e
UD
8478 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
8479 handling of cancellation and failung pthread_mutex_unlock call.
8480 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8481 * Makefile (tests): Add tst-cond8 and tst-cond9.
8482 * tst-cond8.c: New file.
8483 * tst-cond9.c: New file.
8484
a1ea4c06
UD
8485 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
8486
8487 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
8488 non-standard initializers with __USE_GNU.
8489
e8cda341
UD
8490 * Makefile (tests): Add tst-cleanup3.
8491 * tst-cleanup3.c: New file.
8492
2067577c
UD
84932003-02-12 Ulrich Drepper <drepper@redhat.com>
8494
89e78a95
UD
8495 * Makefile (tests): Add tst-attr1 and tst-attr2.
8496 * tst-attr1.c: New file.
8497 * tst-attr2.c: New file.
8498
dfdd294a
UD
8499 * Makefile: Add rules to build and run tst-atfork2 test.
8500 * tst-atfork2.c: New file.
8501 * tst-atfork2mod.c: New file.
8502
8503 * sysdeps/unix/sysv/linux/unregister-atfork.c
8504 (__unregister_atfork): Free the memory allocated for the handlers
8505 after removing them from the lists.
8506
8507 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
8508 cleanup function.
8509
8510 * tst-atfork1.c (do_test): Wait for the child we forked.
8511 Report error in child.
8512
8513 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
8514
2067577c
UD
8515 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
8516
2a8a8a84
UD
85172003-02-10 Ulrich Drepper <drepper@redhat.com>
8518
d9dd121e
UD
8519 * Makefile (tests): Add tst-cancel8.
8520 * tst-cancel8.c: New file.
8521
2a8a8a84
UD
8522 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
8523 clearing of control variable.
defd1870 8524 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 8525 * tst-once3.c: New file.
defd1870 8526 * tst-once4.c: New file.
2a8a8a84 8527
a54e8d33
UD
85282003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
8529
8530 * sysdeps/sh/Makefile: New file.
8531 * sysdeps/sh/bits/atomic.h: New file.
8532 * sysdeps/sh/pthread_spin_init.c: New file.
8533 * sysdeps/sh/pthread_spin_lock.c: New file.
8534 * sysdeps/sh/pthread_spin_trylock.S: New file.
8535 * sysdeps/sh/pthread_spin_unlock.S: New file.
8536 * sysdeps/sh/pthreaddef.h: New file.
8537 * sysdeps/sh/tcb-offsets.sym: New file.
8538 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
8539 * sysdeps/sh/tls.h: New file.
8540 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
8541 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
8542 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
8543 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
8544 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
8545 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
8546 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
8547 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
8548 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
8549 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
8550 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
8551 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
8552 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
8553 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
8554 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
8555 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
8556 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
8557 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
8558 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
8559 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
8560 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
8561 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
8562 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
8563 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
8564 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
8565 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
8566 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
8567 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
8568 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
8569 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
8570
696e556e
UD
85712003-02-08 Ulrich Drepper <drepper@redhat.com>
8572
8573 * tst-cond2.c: Rearrange code to not rely on behavior undefined
8574 according to POSIX.
8575
8576 * tst-basic2.c (do_test): Lock mutex before creating the thread.
8577
fef710d6
UD
85782003-02-07 Ulrich Drepper <drepper@redhat.com>
8579
c6180643
UD
8580 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
8581 (TLS_GET_FS): New #define.
8582 (TLS_SET_FS): New #define.
8583 Correct value of __NR_set_thread_area.
8584
fef710d6
UD
8585 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
8586
11090a99
UD
85872003-02-06 Ulrich Drepper <drepper@redhat.com>
8588
65c68990
UD
8589 * Makefile (tests): Add tst-popen1.
8590 * tst-popen1.c: New file.
8591
11090a99
UD
8592 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
8593 but inactive generalization.
8594 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8595 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8596 Minor optimization, remove one instruction.
8597 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8598
a88c9263
UD
85992003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
8600
8601 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
8602
86032003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
8604
8605 * init.c (__NR_set_tid_address): Add #ifdef for s390.
8606 * sysdeps/pthread/pthread_barrier_wait.c: New file.
8607 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
8608 * sysdeps/pthread/pthread_cond_signal.c: New file.
8609 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
8610 * sysdeps/pthread/pthread_cond_wait.c: New file.
8611 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
8612 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
8613 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
8614 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
8615 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
8616 * sysdeps/s390/Makefile: New file.
8617 * sysdeps/s390/bits/atomic.h: New file.
8618 * sysdeps/s390/pthread_spin_init.c: New file.
8619 * sysdeps/s390/pthread_spin_lock.c: New file.
8620 * sysdeps/s390/pthread_spin_trylock.c: New file.
8621 * sysdeps/s390/pthread_spin_unlock.c: New file.
8622 * sysdeps/s390/pthreaddef.h: New file.
8623 * sysdeps/s390/tcb-offsets.sym: New file.
8624 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
8625 * sysdeps/s390/tls.h: New file.
8626 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
8627 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
8628 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
8629 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
8630 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
8631 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
8632 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
8633 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
8634 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
8635 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
8636 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
8637 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
8638 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
8639 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
8640 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
8641 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
8642 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
8643 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
8644 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
8645 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
8646 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
8647 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
8648 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
8649
6f1cff95
UD
86502003-02-04 Ulrich Drepper <drepper@redhat.com>
8651
ec609a8e
UD
8652 * atomic.h: Add a couple more default implementations.
8653 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
8654 __arch_compare_and_exchange_32_acq in return value definition. It
8655 always exists.
8656 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 8657 Add missing atomic_ prefixes.
e3ec8904 8658
6f1cff95
UD
8659 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
8660 thread library is available, use correct value to mark initialized
8661 once variable.
8662
4f088329
UD
86632003-02-03 Ulrich Drepper <drepper@redhat.com>
8664
6f1cff95
UD
8665 * allocatestack.c (allocate_stack): Use __getpagesize instead of
8666 __sysconf to determine pagesize.
8667
3e4fc359 8668 * pthread_create.c: Include <atomic.h>.
4f088329
UD
8669 * allocatestack.c (allocate_stack): Implement coloring of the
8670 allocated stack memory. Rename pagesize to pagesize_m1. It's the
8671 size minus one. Adjust users.
3e4fc359 8672 * sysdeps/i386/i686/Makefile: New file.
4f088329 8673
2f42e8be
UD
86742003-02-02 Ulrich Drepper <drepper@redhat.com>
8675
4301f7e2
UD
8676 * allocatestack.c: Improve comment throughout the file.
8677
2f42e8be 8678 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 8679 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
8680 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8681 (__lll_lock_wait): Likewise.
8682 (lll_unlock_wake_cb): Removed.
8683
4a7d6545
UD
86842003-01-31 Ulrich Drepper <drepper@redhat.com>
8685
8686 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
8687 _POSIX_THREAD_PRIORITY_SCHEDULING.
8688
886d5973
UD
86892003-01-30 Jakub Jelinek <jakub@redhat.com>
8690
8691 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8692 Fix return type of ptr___pthread_getspecific.
8693
e474ca78
UD
86942003-01-29 Ulrich Drepper <drepper@redhat.com>
8695
8696 * Makefile (tests): Add tst-umask1.
8697 (tst-umask1-ARGS): Define.
8698 * tst-umask1.c: New file.
8699
e6ebd2e4
UD
87002003-01-28 Ulrich Drepper <drepper@redhat.com>
8701
6cf26f41
UD
8702 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
8703 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
8704 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
8705 pthread_rwlock_unlock.
8706 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
8707 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
8708 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
8709 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
8710 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8711 New file.
8712 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
8713 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8714 New file.
8715 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
8716 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
8717 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
8718 New file.
8719 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
8720 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
8721 New file.
8722 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
8723 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
8724 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
8725 New file.
8726 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
8727 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
8728 New file.
8729 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
8730
1d087a7e
UD
8731 * Makefile (libpthread-routines): Remove lowlevelcond and
8732 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
8733 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
8734 and pthread_cond_broadcast.
4a99d160
UD
8735 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
8736 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
8737 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
8738 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
8739 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
8740 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
8741 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
8742 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
8743 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
8744 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
8745 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
8746 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
8747 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
8748 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
8749 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
8750 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
8751 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
8752 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
8753 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
8754 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
8755 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
8756 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
8757 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
8758 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
8759 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
8760 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
8761 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
8762 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
8763 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
8764 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
8765 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 8766
e6ebd2e4
UD
8767 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
8768 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
8769 of the code is moved to ...
8770 * sysdeps/pthread/createthread.c: ...here. New file.
8771
a15698cb
UD
87722003-01-27 Ulrich Drepper <drepper@redhat.com>
8773
0566b130
UD
8774 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
8775 (__new_sem_post): Clear %eax before returning.
8776 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
8777
e6fb8846
UD
8778 * Makefile (tests): Add tst-cleanup2.
8779 * tst-cleanup2.c: New file.
8780
a15698cb
UD
8781 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
8782 Interpret first parameter correctly.
8783
8824b0a1
UD
87842003-01-17 Ulrich Drepper <drepper@redhat.com>
8785
8786 * Makefile (headers): Add bits/semaphore.h.
8787
850dcfca
UD
87882003-01-16 Jakub Jelinek <jakub@redhat.com>
8789
8790 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
8791 if not SHARED.
8792
574b892e
UD
87932003-01-14 Ulrich Drepper <drepper@redhat.com>
8794
a8d87c92
UD
8795 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
8796 must be used and mapping failed.
8797 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
8798
574b892e
UD
8799 * Makefile (CFLAGS-pthread_self.os): Define this, not
8800 CFLAGS-pthread_self.c.
8801
fb48047a
UD
88022003-01-13 Ulrich Drepper <drepper@redhat.com>
8803
47805511
UD
8804 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
8805 lll_unlock_wake_cb.
8806
fb48047a
UD
8807 * Makefile (libpthread-routines): Add version. Add rules to build
8808 version.os and banner.h.
8809 * version.c: New file.
8810
115bb61d
UD
88112003-01-13 Jakub Jelinek <jakub@redhat.com>
8812
8813 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
8814 the alias unconditional.
8815 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
8816
88172003-01-13 Ulrich Drepper <drepper@redhat.com>
8818
8819 * Makefile (CFLAGS-pthread_self.c): New definition.
8820
6aca81bb
UD
88212003-01-06 Jakub Jelinek <jakub@redhat.com>
8822
8823 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
8824 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
8825 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
8826 * init.c (__pthread_initialize_minimal_internal): Likewise.
8827
e9c7764e
UD
88282003-01-07 Jakub Jelinek <jakub@redhat.com>
8829
b5facfda
UD
8830 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
8831
e9c7764e
UD
8832 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
8833 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
8834 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
8835 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
8836 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
8837 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
8838
bef1e42f
UD
88392003-01-06 Jakub Jelinek <jakub@redhat.com>
8840
8841 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
8842 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
8843 * tst-cancel-wrappers.sh: Remove all exceptions.
8844
bbd17455
UD
88452003-01-05 Ulrich Drepper <drepper@redhat.com>
8846
a73ab6df
UD
8847 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
8848 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
8849
bbd17455
UD
8850 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
8851 Use __libc_pthread_functions array if SHARED.
8852
8853 * pthreadP.h: Move pthread_cond_2_0_t definition to...
8854 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
8855
8856 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
8857 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
8858 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
8859 __libc_ptf_call instead of __libc_maybe_call.
8860 (PTF): New #define.
8861 (__libc_cleanup_region_start): Wrap function name with PTF call.
8862 (__libc_cleanup_region_end): Likewise.
8863 (__libc_cleanup_end): Likewise.
8864
8865 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
8866 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
8867 * pthread_key_create.c: Add __pthread_key_create_internal alias.
8868 * pthreadP.h: Add prototypes.
8869
8870 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
8871 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
8872 __pthread_rwlock_unlock aliases.
8873 * pthreadP.h: Add prototypes for new aliases.
8874
8875 * pthreadP.h (struct pthead_functions): Moved to...
8876 * sysdeps/pthread/pthread-functions.h: ...here. New file.
8877 * init.c (pthread_functions): Add initializers for new elements.
8878
8879 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
8880 __pthread_cleanup_pop_restore aliases.
8881 * pthreadP.h: Add prototypes.
8882
8883 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
8884 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
8885 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
8886 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
8887 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8888 * pthreadP.h: Adjust prototypes and callers.
8889
d27a78be
UD
88902003-01-04 Ulrich Drepper <drepper@redhat.com>
8891
b74121ae
UD
8892 * Makefile (tests): Add tst-cancel7.
8893 (tst-cancel7-ARGS): New variable.
bbd17455 8894 * tst-cancel7.c: New file.
b74121ae 8895
29bc410c
UD
8896 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
8897 around gcc defficiencies.
8898 * old_pthread_cond_signal.c: Likewise.
8899 * old_pthread_cond_timedwait.c: Likewise.
8900 * old_pthread_cond_wait.c: Likewise.
8901
d27a78be
UD
8902 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
8903
733f25e6
UD
89042003-01-03 Ulrich Drepper <drepper@redhat.com>
8905
7edb2ae3
UD
8906 * Makefile (tests): Add tst-cond7.
8907 * tst-cond7.c: New file.
8908
b1151300
UD
8909 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
8910 (condvar_cleanup): Get condvar address from the right place.
8911
733f25e6
UD
8912 * atomic.h: Correct definitions of atomic_full_barrier,
8913 atomic_read_barrier, atomic_write_barrier.
8914
8915 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
8916 race-free.
8917 * old_pthread_cond_signal.c: Likewise.
8918 * old_pthread_cond_timedwait.c: Likewise.
8919 * old_pthread_cond_wait.c: Likewise.
8920
686b7223
UD
89212003-01-03 Jakub Jelinek <jakub@redhat.com>
8922
8923 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
8924
0e07706e
UD
89252003-01-03 Ulrich Drepper <drepper@redhat.com>
8926
997256dd
UD
8927 * pthreadP.h (pthread_cond_2_0_t): New type.
8928 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
8929 Use new type for the 2.0 condvar function prototypes.
8930 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
8931 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
8932 parameter.
8933 * old_pthread_cond_destroy.c: Likewise.
8934 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
8935 * old_pthread_cond_signal.c: Likewise.
8936 * old_pthread_cond_timedwait.c: Likewise.
8937 * old_pthread_cond_wait.c: Likewise.
8938
842d2817
UD
8939 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
8940 (__pthread_cond_wait): Don't save cancellation mode and seq value
8941 in same location.
8942
0e07706e
UD
8943 * herrno.c (__h_errno_location): Don't define as weak.
8944
bf293afe
UD
89452003-01-02 Jakub Jelinek <jakub@redhat.com>
8946
8947 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
8948 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
8949 and pthread_cond_wait.
8950 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
8951 Renamed to...
8952 (__pthread_cond_broadcast_2_0): ... this.
8953 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
8954 Renamed to...
8955 (__pthread_cond_destroy_2_0): ... this.
8956 * old_pthread_cond_init.c (__old_pthread_cond_init):
8957 Renamed to...
8958 (__pthread_cond_init_2_0): ... this.
8959 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
8960 Renamed to...
8961 (__pthread_cond_signal_2_0): ... this.
8962 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
8963 Renamed to...
8964 (__pthread_cond_wait_2_0): ... this.
8965 * pthread_cond_destroy.c: Include shlib-compat.h.
8966 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
8967 * pthread_cond_init.c: Include shlib-compat.h.
8968 (pthread_cond_init): Change strong_alias into versioned_symbol.
8969 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
8970 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
8971 fields.
8972 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
8973 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
8974 __pthread_cond_wait_2_0): New prototypes.
8975 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
8976 __old_pthread_cond_init, __old_pthread_cond_signal,
8977 __old_pthread_cond_wait): Removed.
8978 * init.c: Include shlib-compat.h.
8979 (pthread_functions): Guard ptr___pthread_attr_init_2_0
8980 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
8981 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
8982 ptr___pthread_cond_*_2_0 fields.
8983 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
8984 pthread_cond_*@GLIBC_2.0 compatibility symbols.
8985
8986 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
8987 LIBC_SIGACTION was not yet defined.
8988 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
8989 [!defined LIBC_SIGACTION] (__sigaction): New function and
8990 libc_hidden_weak.
8991 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
8992 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
8993
89942003-01-02 Jakub Jelinek <jakub@redhat.com>
8995
8996 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
8997
05df18c3
UD
89982003-01-02 Ulrich Drepper <drepper@redhat.com>
8999
9000 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9001 New, larger type definition.
9002 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9003 implementation.
9004 * Versions [libpthread]: Add definitions for new pthread_cond_*
9005 interfaces for version GLIBC_2.3.2.
9006 * pthread_cond_init.c: Update initialization for new type definition.
9007 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9008 pthread_cond_timedwait, pthread_cond_signal, and
9009 pthread_cond_broadcast. Add old_pthread_cond_init,
9010 old_pthread_cond_destroy, old_pthread_cond_wait,
9011 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9012 old_pthread_cond_broadcast.
9013 * old_pthread_cond_broadcast.c: New file.
9014 * old_pthread_cond_destroy.c: New file.
9015 * old_pthread_cond_init.c: New file.
9016 * old_pthread_cond_signal.c: New file.
9017 * old_pthread_cond_timedwait.c: New file.
9018 * old_pthread_cond_wait.c: New file.
9019 * pthreadP.h: Add prototypes for the compatibility interfaces.
9020
9021 * pthread_cond_destroy.c: Don't include <errno.h>.
9022
fd8979e4
UD
90232003-01-01 Ulrich Drepper <drepper@redhat.com>
9024
9025 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9026 unnecessary zero offset when addressing MUTEX.
9027
6d6ee629
UD
90282002-12-31 Ulrich Drepper <drepper@redhat.com>
9029
9030 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9031 __register_atfork.
9032 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9033 for __register_atfork.
9034
a4baf360
UD
90352002-12-31 Jakub Jelinek <jakub@redhat.com>
9036
9037 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9038 instead of ASSEMBLER test macro.
9039
9040 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9041 __libc_current_sigrtmax): Add libc_hidden_def.
9042
9043 * sysdeps/pthread/list.h: Remove assert.h include.
9044
e9395a94
UD
90452002-12-31 Ulrich Drepper <drepper@redhat.com>
9046
9047 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9048 __pthread_initialize_minimal_internal not
9049 __pthread_initialize_minimal.
9050
89d6e444
UD
90512002-12-30 Ulrich Drepper <drepper@redhat.com>
9052
416d2de6
UD
9053 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9054 __pthread_initialize_minimal as hidden.
9055
89d6e444
UD
9056 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9057 constructor.
9058
90592002-12-31 Jakub Jelinek <jakub@redhat.com>
9060
9061 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9062 $(common-objpfx)format.lds, include that into the output script.
9063 Fix comment.
9064 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9065
8cac677c
UD
90662002-12-28 Andreas Jaeger <aj@suse.de>
9067
9068 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9069 nsec resolution changes.
9070 (xstat64_conv): Likewise.
9071 (xstat32_conv): Likewise.
9072 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9073 struct kernel_stat.
9074 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9075 structs stat and stat64.
9076 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9077 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9078
49e9f864
UD
90792002-12-30 Jakub Jelinek <jakub@redhat.com>
9080
9081 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9082 argument.
9083 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9084 (pthread_exit): Use strong_alias to avoid warnings.
9085 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9086 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9087 ptr___pthread_attr_init_2_*.
9088 * init.c (pthread_functions): Adjust.
9089
bab09b26
UD
90902002-12-29 Ulrich Drepper <drepper@redhat.com>
9091
598d7a42
UD
9092 * forward.c: Make all functions available by default again. It
9093 caused too much trouble.
9094
bab09b26
UD
9095 * pt-siglongjmp.c: Removed.
9096
3b7ed871
UD
90972002-12-28 Jakub Jelinek <jakub@redhat.com>
9098
9099 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9100 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9101 * sysdeps/i386/Makefile: New file.
9102 * sysdeps/i386/tcb-offsets.sym: New file.
9103 * sysdeps/pthread/tcb-offsets.h: New file.
9104 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9105 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9106
9107 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9108 __register_atfork...
9109 (GLIBC_2.3.2): ...here.
9110
91112002-12-28 Ulrich Drepper <drepper@redhat.com>
9112
9113 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9114 pthread_attr_setstackaddr with __attribute_deprecated__.
9115
270d9d47
UD
91162002-12-27 Jakub Jelinek <jakub@redhat.com>
9117
9118 * pt-system.c (system): Remove cancellation handling.
9119 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9120 cancellation routines.
9121
131fd126
UD
91222002-12-28 Ulrich Drepper <drepper@redhat.com>
9123
afb2e954
UD
9124 * descr.h: Include <dl-sysdep.h>.
9125 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9126 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9127 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9128 (SYSINFO_OFFSEET): Likewise.
9129
91302002-12-27 Jakub Jelinek <jakub@redhat.com>
9131
9132 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9133 Define.
9134 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9135 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9136 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9137 (USE_DL_SYSINFO): Undef.
9138
91392002-12-22 Jakub Jelinek <jakub@redhat.com>
9140
9141 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9142 $(common-objpfx)libc.so.
9143 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9144 it is bigger than pipe buffer size even on arches with bigger
9145 page size.
9146 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9147
a218c9cf
UD
91482002-12-25 Ulrich Drepper <drepper@redhat.com>
9149
9150 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9151 correct errno access for case that USE___THREAD is not defined.
9152
015a2dc9
UD
91532002-12-24 Ulrich Drepper <drepper@redhat.com>
9154
9155 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9156 Patch by Marijn Ros <marijn@mad.scientist.com>.
9157
5220f9ac
RM
91582002-12-22 Roland McGrath <roland@redhat.com>
9159
9160 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9161
1561bf63
UD
91622002-12-20 Ulrich Drepper <drepper@redhat.com>
9163
9164 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9165
3325198e
UD
91662002-12-19 Ulrich Drepper <drepper@redhat.com>
9167
057c823f
UD
9168 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9169 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9170 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9171
097eca29
UD
9172 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9173 of int $0x80.
9174 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9175 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9176 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9177 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9178 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9179 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9180 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9181 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9182
9183 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9184 sysenter.
9185 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9186
9187 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9188
5f5843e3
UD
9189 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9190 in new TCB.
9191 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9192 that sysinfo is properly initialized.
9193 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9194 to 1 only for ld.so.
9195
3325198e
UD
9196 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9197 RTLD_CORRECT_DYNAMIC_WEAK.
9198
74e8f2dc
UD
91992002-12-19 Jakub Jelinek <jakub@redhat.com>
9200
9201 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9202 Use return 0 as 6th argument to FORWARD4.
9203 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9204
df45b31e
UD
92052002-12-18 Ulrich Drepper <drepper@redhat.com>
9206
9207 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9208 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9209 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9210 (INIT_SYSINFO): New #define.
9211 (TLS_TP_INIT): Use INIT_SYSINFO.
9212 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9213 At test to make sure SYSINFO_OFFSET value is correct.
9214 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9215
3d539579
UD
92162002-12-18 Jakub Jelinek <jakub@redhat.com>
9217
9218 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9219 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9220 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9221 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9222 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9223 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9224 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9225
d7913e0e
UD
92262002-12-18 Ulrich Drepper <drepper@redhat.com>
9227
f051627f
UD
9228 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9229 macro instead of using int $0x80 directly.
9230
d7913e0e
UD
9231 * sysdeps/pthread/bits/stdio-lock.h: New file.
9232 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9233 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9234 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9235 * Makefile (routines): Add libc-lowlevelmutex.
9236
9237 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9238 __i686.get_pc_thunk.dx.
9239
f077a4a9
UD
92402002-12-17 Jakub Jelinek <jakub@redhat.com>
9241
9242 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9243 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9244 ($(objpfx)tst-cancel-wrappers.out): New rule.
9245 * tst-cancel-wrappers.sh: New test.
9246 * tst-locale1.c: Include signal.h.
9247 (uselocale): Test static linking of __libc_current_sigrt*.
9248
92492002-12-17 Ulrich Drepper <drepper@redhat.com>
9250
9251 * Makefile (tests): Add tst-cancel6.
9252 * tst-cancel6.c: New file
9253
bd499a3b
UD
92542002-12-17 Jakub Jelinek <jakub@redhat.com>
9255
9256 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9257 Define meaningfully for assembler as well.
9258 * pthreadP.h (struct pthread_functions): Remove
9259 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9260 and ptr_pthread_attr_init_2_1 fields.
9261 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9262 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9263 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9264 (FORWARD3): Define using FORWARD4.
9265 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9266 versions.
9267 * pt-system.c: Remove duplicate stdlib.h include.
9268
0a1063f4
UD
92692002-12-16 Ulrich Drepper <drepper@redhat.com>
9270
87d60668
UD
9271 * sem_init.c: Define sem_init@GLIBC_2.0.
9272 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9273 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9274
0a1063f4
UD
9275 * flockfile.c: Moved to...
9276 * sysdeps/pthread/flockfile.c: ...here. New file.
9277 * funlockfile.c: Moved to...
9278 * sysdeps/pthread/funlockfile.c: ...here. New file.
9279 * ftrylockfile.c: Moved to...
9280 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9281
9634cf9d
UD
92822002-12-16 Jakub Jelinek <jakub@redhat.com>
9283
9284 * libc-cancellation.c: Guard both function with
9285 #if !defined NOT_IN_libc.
9286 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9287 automatically provided pthread wrappers.
9288 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9289 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9290 nor in libpthread.
9291 * pt-open.c: Removed.
9292 * pt-fcntl.c: Removed.
9293 * pt-fsync.c: Removed.
9294 * pt-lseek.c: Removed.
9295 * pt-msgrcv.c: Removed.
9296 * pt-msgsnd.c: Removed.
9297 * pt-msync.c: Removed.
9298 * pt-nanosleep.c: Removed.
9299 * pt-open64.c: Removed.
9300 * pt-pause.c: Removed.
9301 * pt-pread.c: Removed.
9302 * pt-pread64.c: Removed.
9303 * pt-pwrite.c: Removed.
9304 * pt-pwrite64.c: Removed.
9305 * pt-read.c: Removed.
9306 * pt-recv.c: Removed.
9307 * pt-recvfrom.c: Removed.
9308 * pt-recvmsg.c: Removed.
9309 * pt-send.c: Removed.
9310 * pt-sendto.c: Removed.
9311 * pt-sigtimedwait.c: Removed.
9312 * pt-sigwait.c: Removed.
9313 * pt-wait.c: Removed.
9314 * pt-waitpid.c: Removed.
9315 * pt-write.c: Removed.
9316 * pt-accept.c: Removed.
9317 * pt-close.c: Removed.
9318 * pt-connect.c: Removed.
9319 * pt-lseek64.c: Removed.
9320 * pt-sendmsg.c: Removed.
9321 * pt-tcdrain.c: Removed.
9322
6ee8d334
UD
93232002-12-15 Ulrich Drepper <drepper@redhat.com>
9324
81fa9371
UD
9325 * init.c (__pthread_initialize_minimal_internal): Renamed from
9326 __pthread_initialize_minimal. Make old name an alias. This
9327 converts a normal relocation into a relative relocation.
9328
f3015aa5
UD
9329 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9330
4cbc1950
UD
9331 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9332 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9333 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9334 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9335 pt-sigwaitinfo, pt-waitid, and pt-writev.
9336 * pt-creat.c: Removed.
9337 * pt-poll.c: Removed.
9338 * pt-pselect.c: Removed.
9339 * pt-readv.c: Removed.
9340 * pt-select.c: Removed.
9341 * pt-sigpause.c: Removed.
9342 * pt-sigsuspend.c: Removed.
9343 * pt-sigwaitinfo.c: Removed.
9344 * pt-waitid.c: Removed.
9345 * pt-writev.c: Removed.
9346
8454830b
UD
9347 * init.c (pthread_functions): New variable.
9348 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9349 (or NULL) to __libc_pthread_init.
9350 * forward.c: Rewrite to use __libc:pthread_functions array to get
9351 function addresses.
9352 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9353 prototype.
9354 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9355 Take new parameter. Copy content of variable pointed to by it
9356 to __libc_pthread_init.
9357
9358 * pthreadP.h (struct pthread_functions): New type.
9359 (__libc_pthread_init): Declare.
9360
9361 * pthread_attr_destroy.c: Add namespace protected alias.
9362 * pthread_attr_getdetachstate.c: Likewise.
9363 * pthread_attr_getinheritsched.c: Likewise.
9364 * pthread_attr_getschedparam.c: Likewise.
9365 * pthread_attr_getschedpolicy.c: Likewise.
9366 * pthread_attr_getscope.c: Likewise.
9367 * pthread_attr_setdetachstate.c: Likewise.
9368 * pthread_attr_setinheritsched.c: Likewise.
9369 * pthread_attr_setschedparam.c: Likewise.
9370 * pthread_attr_setschedpolicy.c: Likewise.
9371 * pthread_attr_setscope.c: Likewise.
9372 * pthread_cond_broadcast.c: Likewise.
9373 * pthread_cond_destroy.c: Likewise.
9374 * pthread_cond_init.c: Likewise.
9375 * pthread_cond_signal.c: Likewise.
9376 * pthread_cond_wait.c: Likewise.
9377 * pthread_condattr_destroy.c: Likewise.
9378 * pthread_condattr_init.c: Likewise.
9379 * pthread_equal.c: Likewise.
9380 * pthread_exit.c: Likewise.
9381 * pthread_getschedparam.c: Likewise.
9382 * pthread_self.c: Likewise.
9383 * pthread_setcancelstate.c: Likewise.
9384 * pthread_setschedparam.c: Likewise.
9385 * pthread_mutex_destroy.c: Likewise.
9386 * pthread_mutex_init.c: Likewise.
9387 * pthreadP.h: Add prototypes for the aliases.
9388
0d5f4929
UD
9389 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9390 multiple_threads member in correct TCB to 1.
9391
6ee8d334
UD
9392 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9393 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9394 member of thread decriptor, otherwise return unconditionally 1.
9395
2fb6444d
UD
93962002-12-14 Ulrich Drepper <drepper@redhat.com>
9397
9398 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9399 regular Linux version. Remove file.
9400 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9401 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9402 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9403 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9404 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9405 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9406 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9407 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9408 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9409 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9410 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9411 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9412 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9413 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9414 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9415 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9416 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9417 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9418 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9419 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9420 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9421 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9422 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9423 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9424 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9425 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9426 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9427 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9428 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9429 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9430
86b2dc40
UD
94312002-12-14 Jakub Jelinek <jakub@redhat.com>
9432
9433 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9434 * sysdeps/unix/sysv/linux/open.c: Removed.
9435 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9436 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9437 * sysdeps/unix/sysv/linux/msync.c: Removed.
9438 * sysdeps/unix/sysv/linux/read.c: Removed.
9439 * sysdeps/unix/sysv/linux/close.c: Removed.
9440 * sysdeps/unix/sysv/linux/creat.c: Removed.
9441 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9442 * sysdeps/unix/sysv/linux/pause.c: Removed.
9443 * sysdeps/unix/sysv/linux/select.c: Removed.
9444 * sysdeps/unix/sysv/linux/write.c: Removed.
9445
9d263d72
UD
94462002-12-14 Ulrich Drepper <drepper@redhat.com>
9447
9448 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
9449 element in TCB to see whether locking is needed.
9450
9451 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
9452 MULTIPLE_THREADS_OFFSET value is correct.
9453
9454 * sysdeps/unix/sysv/linux/close.c: New file.
9455 * sysdeps/unix/sysv/linux/connect.S: New file.
9456 * sysdeps/unix/sysv/linux/creat.c: New file.
9457 * sysdeps/unix/sysv/linux/fsync.c: New file.
9458 * sysdeps/unix/sysv/linux/llseek.c: New file.
9459 * sysdeps/unix/sysv/linux/lseek.c: New file.
9460 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
9461 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
9462 * sysdeps/unix/sysv/linux/msync.c: New file.
9463 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
9464 * sysdeps/unix/sysv/linux/open.c: New file.
9465 * sysdeps/unix/sysv/linux/open64.c: New file.
9466 * sysdeps/unix/sysv/linux/pause.c: New file.
9467 * sysdeps/unix/sysv/linux/poll.c: New file.
9468 * sysdeps/unix/sysv/linux/pread.c: New file.
9469 * sysdeps/unix/sysv/linux/pread64.c: New file.
9470 * sysdeps/unix/sysv/linux/pselect.c: New file.
9471 * sysdeps/unix/sysv/linux/pwrite.c: New file.
9472 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
9473 * sysdeps/unix/sysv/linux/readv.c: New file.
9474 * sysdeps/unix/sysv/linux/recv.S: New file.
9475 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
9476 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
9477 * sysdeps/unix/sysv/linux/select.c: New file.
9478 * sysdeps/unix/sysv/linux/send.S: New file.
9479 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
9480 * sysdeps/unix/sysv/linux/sendto.S: New file.
9481 * sysdeps/unix/sysv/linux/sigpause.c: New file.
9482 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
9483 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9484 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9485 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9486 * sysdeps/unix/sysv/linux/system.c: New file.
9487 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
9488 * sysdeps/unix/sysv/linux/wait.c: New file.
9489 * sysdeps/unix/sysv/linux/waitid.c: New file.
9490 * sysdeps/unix/sysv/linux/waitpid.c: New file.
9491 * sysdeps/unix/sysv/linux/writev.c: New file.
9492 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
9493
9494 * pt-readv.c: Fix comment.
9495
94962002-12-14 Jakub Jelinek <jakub@redhat.com>
9497
9498 * tst-cleanup1.c: Include stdlib.h.
9499
9500 * tst-cancel5.c: New test.
9501 * Makefile (tests): Add tst-cancel5.
9502 (tst-cancel5): Link against libc.so libpthread.so in that order.
9503
9ae0909b
UD
95042002-12-13 Ulrich Drepper <drepper@redhat.com>
9505
b7bdd9c4
UD
9506 * forward.c (test_loaded): Prevent recursive calls.
9507
9ae0909b
UD
9508 * Makefile (routines): Add libc-cancellation.
9509 * libc-cancellation.c: New file.
9510 * descr.h (struct pthread): Add multiple_threads field.
9511 * allocatestack.c (allocate_stack): Initialize multiple_header field of
9512 new thread descriptor to 1.
9513 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
9514 Initialize multiple_thread field after successful thread creation.
9515 * cancellation.c (__do_cancel): Move to pthreadP.h.
9516 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
9517 (__pthread_disable_asynccancel): Add internal_function attribute.
9518 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
9519 * pthread_setcancelstate.c: Likewise.
9520 * pthread_setcanceltype.c: Likewise.
9521 * pthread_exit.c: Likewise.
9522 * pthreadP.h (CANCELLATION_P): Likewise.
9523 (__do_cancel): Define as static inline.
9524 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
9525 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
9526 declarations.
9527 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
9528 fields. Define MULTIPLE_THREADS_OFFSET.
9529 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
9530 declaration.
9531 * sysdeps/unix/sysv/linux/accept.S: New file.
9532 * sysdeps/unix/sysv/linux/read.c: New file.
9533 * sysdeps/unix/sysv/linux/write.c: New file.
9534 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
9535 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
9536 initialization of __libc_locking_needed.
9537 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
9538 __libc_locking_needed, use multiple_threads field in TCB.
9539 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9540
22f20674
UD
95412002-12-12 Ulrich Drepper <drepper@redhat.com>
9542
2ad2e1e7
UD
9543 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
9544 version.
9545 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
9546
22f20674
UD
9547 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
9548 access to __libc_locking_needed for PIC.
9549
aa80bf86
UD
95502002-12-12 Jakub Jelinek <jakub@redhat.com>
9551
9552 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
9553 declare for libc.so.
9554 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
9555 expression.
9556 (__libc_lock_lock): Put into statement expression.
9557 (__libc_lock_unlock): Remove trailing semicolon.
9558 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
9559
24021373
RM
95602002-12-12 Roland McGrath <roland@redhat.com>
9561
9562 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
9563 "m" constraint to refer to __libc_locking_needed. Declare it here.
9564
14e7aece
UD
95652002-12-12 Ulrich Drepper <drepper@redhat.com>
9566
9567 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
9568 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
9569 Initialize __libc_locking_needed.
9570 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
9571 instead of __register_pthread_fork_handler.
9572 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
9573 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
9574 fork-gen with libc_pthread_init.
9575 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
9576 of __register_pthread_fork_handler.
9577 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
9578 of __register_pthread_fork_handler.
9579 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
9580 __libc_locking_needed to determine whether lock prefix can be avoided.
9581 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9582
85631c8e
UD
95832002-12-11 Ulrich Drepper <drepper@redhat.com>
9584
da63009e
UD
9585 * Makefile (tests): Add tst-cleanup1.
9586 * tst-cleanup1.c: New file.
9587 * cancellation.c (__cleanup_thread): Removed.
9588 (__do_cancel): Remove call to __cleanup_thread.
9589 * pthreadP.h: Remove __cleanup_thread prorotype.
9590
000160a2
UD
9591 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9592 Remember function and argument even if cancellation handler
9593 function is not available.
9594 (__libc_cleanup_region_end): Execute registered function directly if
9595 pthread functions are not available.
9596 (__libc_cleanup_end): Likewise.
9597
85631c8e
UD
9598 * init.c (__pthread_initialize_minimal): Fix initialization in
9599 static lib by preventing gcc from being too clever.
9600
dce8f2b6
UD
96012002-12-10 Ulrich Drepper <drepper@redhat.com>
9602
34a075be
UD
9603 * init.c (__pthread_initialize_minimal): Remove unneccesary
9604 sigaddset call.
9605
dce8f2b6
UD
9606 * Makefile (tests): We can run tst-locale2 now.
9607
e5e45b53
UD
96082002-12-09 Ulrich Drepper <drepper@redhat.com>
9609
9610 * Versions: Remove duplicated sigwait entry.
9611
bdb04f92
UD
96122002-12-08 Ulrich Drepper <drepper@redhat.com>
9613
1e506629
UD
9614 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
9615 inside libpthread.
9616
a3957dd5
UD
9617 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
9618
bdb04f92
UD
9619 * pthreadP.h: Declare __pthread_enable_asynccancel and
9620 __pthread_disable_asynccancel.
9621 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
9622 (CANCEL_RESET): Use __pthread_disable_asynccancel.
9623 * cancellation.c (__pthread_enable_asynccancel): New function.
9624 (__pthread_disable_asynccancel): New function.
9625 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
9626 * pt-close.c: Likewise.
9627 * pt-connect.c: Likewise.
9628 * pt-creat.c: Likewise.
9629 * pt-fcntl.c: Likewise.
9630 * pt-fsync.c: Likewise.
9631 * pt-lseek.c: Likewise.
9632 * pt-lseek64.c: Likewise.
9633 * pt-msgrcv.c: Likewise.
9634 * pt-msgsnd.c: Likewise.
9635 * pt-msync.c: Likewise.
9636 * pt-nanosleep.c: Likewise.
9637 * pt-open.c: Likewise.
9638 * pt-open64.c: Likewise.
9639 * pt-pause.c: Likewise.
9640 * pt-poll.c: Likewise.
9641 * pt-pread.c: Likewise.
9642 * pt-pread64.c: Likewise.
9643 * pt-pselect.c: Likewise.
9644 * pt-pwrite.c: Likewise.
9645 * pt-pwrite64.c: Likewise.
9646 * pt-read.c: Likewise.
9647 * pt-readv.c: Likewise.
9648 * pt-recv.c: Likewise.
9649 * pt-recvfrom.c: Likewise.
9650 * pt-recvmsg.c: Likewise.
9651 * pt-select.c: Likewise.
9652 * pt-send.c: Likewise.
9653 * pt-sendmsg.c: Likewise.
9654 * pt-sendto.c: Likewise.
9655 * pt-sigpause.c: Likewise.
9656 * pt-sigsuspend.c: Likewise.
9657 * pt-sigtimedwait.c: Likewise.
9658 * pt-sigwait.c: Likewise.
9659 * pt-sigwaitinfo.c: Likewise.
9660 * pt-system.c: Likewise.
9661 * pt-tcdrain.c: Likewise.
9662 * pt-wait.c: Likewise.
9663 * pt-waitid.c: Likewise.
9664 * pt-waitpid.c: Likewise.
9665 * pt-write.c: Likewise.
9666 * pt-writev.c: Likewise.
a3957dd5
UD
9667 * pthread_join.c: Likewise.
9668 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
9669
9670 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
9671 (__xpg_sigpause): New function.
9672 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
9673
6ccb3834
UD
96742002-12-07 Ulrich Drepper <drepper@redhat.com>
9675
09efc3ba
UD
9676 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
9677
9678 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
9679 _GI_pthread_cleanup_pop to pthreadP.h.
9680
9681 * ftrylockfile.c: Use _IO_lock_trylock instead of
9682 pthread_mutex_trylock.
9683
9684 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
9685 (CANCEL_RESET): Likewise.
9686 (__pthread_setcanceltype_): Declare.
9687 (__pthread_mutex_lock_internal): Declare.
9688 (__pthread_mutex_unlock_internal): Declare.
9689 (__pthread_once_internal): Declare.
9690 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
9691 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
9692
9693 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
9694 and pthread_mutex_unlock.
9695 * pthread_cond_wait.c: Likewise.
9696 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
9697 * pthread_mutex_unlock.c: Likewise.
9698
9699 * pthread_setcanceltype.c: Add additional alias
9700 __pthread_setcanceltype.
9701
9702 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
9703 * sem_open.c (sem_open): Likewise.
9704 Use __libc_open, __libc_write, and __libc_close instead of
9705 open, write, and close respectively.
9706
9707 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
9708 Rewrite as statement expression since it must return a value.
9709
9710 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
9711 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
9712 __pthread_kill.
9713
9714 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
9715 alias __pthread_once_internal.
9716
6ccb3834
UD
9717 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
9718
d3c9f895
UD
97192002-12-06 Ulrich Drepper <drepper@redhat.com>
9720
4614167a
UD
9721 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
9722 * tst-stdio1.c: New file.
9723 * tst-stdio2.c: New file.
9724
a4548cea
UD
9725 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
9726
d3c9f895
UD
9727 * Makefile (tests): Comment out tst-locale2 for now.
9728 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
9729
9730 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
9731 -D_IO_MTSAFE_IO.
9732 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
9733 Use _IO_lock_init instead of explicit assignment.
9734
9735 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
9736 Define __libc_lock_* and __libc_lock_recursive macros with
9737 lowlevellock macros, not pthread mutexes.
9738
9739 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
9740 of pthread_mutex_lock.
9741 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
9742 instead of pthread_mutex_unlock.
9743
fde89ad0
RM
97442002-12-06 Roland McGrath <roland@redhat.com>
9745
9746 * allocatestack.c (__stack_user): Use uninitialized defn.
9747 * init.c (__pthread_initialize_minimal): Initialize it here.
9748
11767d47
RM
97492002-12-05 Roland McGrath <roland@redhat.com>
9750
fde89ad0
RM
9751 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
9752 string.
9753 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
9754
11767d47
RM
9755 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
9756 missing & here too.
9757
440d8bc2
UD
97582002-12-05 Ulrich Drepper <drepper@redhat.com>
9759
9760 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
9761 lowlevellock.
9762 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
9763 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
9764 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
9765 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
9766 for __libc_lock_* macros.
9767 * Makefile (routines): Add libc-lowlevellock.
9768
97692002-10-09 Roland McGrath <roland@redhat.com>
9770
9771 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
9772 Under [__PIC__], call the function via the pointer fetched for
9773 comparison rather than a call by name that uses the PLT.
9774 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
9775 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
9776 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
9777 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
9778 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
9779
d5ed0118
RM
97802002-12-04 Roland McGrath <roland@redhat.com>
9781
9782 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
9783
9784 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
9785 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
9786
9787 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
9788
eaa4099f
UD
97892002-12-04 Ulrich Drepper <drepper@redhat.com>
9790
9791 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
9792 a completely opaque, non-integer type.
9793 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9794
33b5d0cc
UD
97952002-12-05 Jakub Jelinek <jakub@redhat.com>
9796
9797 * sysdeps/i386/tls.h: Include stdlib.h.
9798 * sysdeps/x86_64/tls.h: Likewise.
9799
7a5cdb30
UD
98002002-12-04 Ulrich Drepper <drepper@redhat.com>
9801
c4a6d859
UD
9802 * Makefile (tests): Add tst-locale2.
9803 (tests-static): Likewise.
9804 * tst-locale2.c: New file.
9805
7a5cdb30
UD
9806 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
9807 volatile and add memory clobbers to lock operations.
9808
d82d5d12
UD
98092002-12-03 Ulrich Drepper <drepper@redhat.com>
9810
69cae3cf
UD
9811 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
9812 * sysdeps/i386/i486/bits/atomic.h: New file.
9813 * sysdeps/i386/i586/bits/atomic.h: New file.
9814 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
9815 include i486 version.
9816 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
9817 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 9818 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 9819
e4044c01
UD
9820 * allocatestack.c (get_cached_stack): Don't crash if we first
9821 found a stack with a larger size then needed.
9822 Reported by Hui Huang <hui.huang@sun.com>.
9823
d82d5d12
UD
9824 * Makefile (tests): Add tst-sysconf.
9825 * tst-sysconf.c: New file.
9826
9827 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
9828 PTHREAD_THREADS_MAX.
9829
fa9a4ff0
RM
98302002-12-02 Roland McGrath <roland@redhat.com>
9831
9832 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
9833 Declare using hidden_proto instead of attribute_hidden, so there are
9834 non-.hidden static symbols for gdb to find.
9835 (__pthread_keys): Likewise.
9836 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
9837 * allocatestack.c (__stack_user): Likewise.
9838 * pthread_create.c (__pthread_keys): Likewise.
9839 (__nptl_threads_events, __nptl_last_event): Make these static instead
9840 of hidden.
9841 * pthread_key_create.c (__pthread_pthread_keys_max,
9842 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
9843
91949a33
UD
98442002-12-02 Ulrich Drepper <drepper@redhat.com>
9845
c22b52fa
UD
9846 * Makefile (tests): Add tst-locale1. If buid-static is yes link
9847 statically.
9848 * tst-locale1.c: New file.
9849
beb6aa41
UD
9850 * pthread_cond_timedwait.c: Include <stdlib.h>.
9851
91949a33
UD
9852 * Makefile (tests): Add tst-fork2 and tst-fork3.
9853 * tst-fork2.c: New file.
9854 * tst-fork3.c: New file.
9855
654dff90
UD
98562002-11-28 Ulrich Drepper <drepper@redhat.com>
9857
cb0e76b4
UD
9858 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
9859
9860 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
9861 require it to 200112L.
9862
9863 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
9864 instruction only if HAVE_CMOV is defined.
9865 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
9866
975aa229
UD
9867 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
9868
654dff90
UD
9869 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
9870
9871 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
9872
9873 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
9874
a3931336
UD
98752002-11-27 Ulrich Drepper <drepper@redhat.com>
9876
c10c099c
UD
9877 * sysdeps/x86_64/bits/atomic.h: New file.
9878
9879 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
9880 16-bit operations.
9881
dca99d27
UD
9882 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
9883 possible since gettid cannot fail.
9884
f78deea6
UD
9885 * sysdeps/x86_64/pthreaddef.h: New file.
9886
9887 * sysdeps/i386/pthreaddef.h (gettid): Removed.
9888
9889 * sysdeps/x86_64/pthread_spin_init.c: New file.
9890 * sysdeps/x86_64/pthread_spin_lock.c: New file.
9891 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
9892 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
9893
9894 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
9895 Add missing lock prefix. Minute optimization.
9896
9897 * tst-spin2.c (main): Also check successful trylock call.
9898
9899 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
9900 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
9901
9902 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
9903 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
9904
9905 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
9906 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
9907 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
9908
9909 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
9910 value in case of an error.
9911
a3931336
UD
9912 * sysdeps/x86_64/tls.h: New file.
9913
76a50749
UD
99142002-11-26 Ulrich Drepper <drepper@redhat.com>
9915
117c452c
UD
9916 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
9917 takes the array member name and the index as parameters.
9918 (THREAD_SETMEM_NC): Likewise.
9919 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
9920 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
9921 interfaces.
9922
9923 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
9924 to decide which code to use.
9925 (THREAD_SETMEM_NC): Likewise.
9926
76a50749
UD
9927 * allocatestack.c (queue_stack): Don't remove stack from list here.
9928 Do it in the caller. Correct condition to prematurely terminate
9929 loop to free stacks.
9930 (__deallocate_stack): Remove stack from list here.
9931
99322002-11-26 Ulrich Drepper <drepper@redhat.com>
9933
9934 * Makefile (tests): Add tst-stack1.
9935 * tst-stack1.c: New file.
9936
9937 * allocatestack.c (allocate_stack): Initialize the TCB on a user
9938 provided stack.
9939
9940 * pthread_attr_getstack.c: Return bottom of the thread area.
9941
99422002-11-25 Ulrich Drepper <drepper@redhat.com>
9943
9944 * Makefile (libpthread-routines): Add pt-allocrtsig and
9945 pthread_kill_other_threads.
9946 * pt-allocrtsig.c: New file.
9947 * pthread_kill_other_threads.c: New file.
9948 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
9949 all three functions.
9950 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
9951 allocrtsig.
9952 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
9953 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
9954 and __libc_allocate_rtsig_private.
9955 * Versions (libpthread): Export pthread_kill_other_threads_np,
9956 __libc_current_sigrtmin, and __libc_current_sigrtmax.
9957
99582002-11-24 Ulrich Drepper <drepper@redhat.com>
9959
9960 * allocatestack.c (allocate_stack): stackaddr in attribute points to
9961 the end of the stack. Adjust computations.
9962 When mprotect call fails dequeue stack and free it.
9963 * pthread_attr_setstack.c: Store top of the stack in stackaddr
9964 attribute.
9965 * pthread_getattr_np.c: Likewise.
9966
9967 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
9968 surprises.
9969
99702002-11-23 Ulrich Drepper <drepper@redhat.com>
9971
9972 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
9973 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
9974
99752002-11-22 Ulrich Drepper <drepper@redhat.com>
9976
9977 * pthread_getspecific.c: Optimize access to first 2nd-level array.
9978 * pthread_setspecific.c: Likewise.
9979
99802002-11-21 Ulrich Drepper <drepper@redhat.com>
9981
9982 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
9983 definitions. Get them from the official place.
9984 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
9985
9986 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
9987 Use new CLONE_ flags in clone() calls.
9988
9989 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
9990 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
9991
9992 * Versions: Add pthread_* functions for libc.
9993 * forward.c: New file.
9994
9995 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
9996 errno-loc.
9997 * herrno.c: New file.
9998 * res.c: New file.
9999
10000 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10001 sem_trywait, and sem_timedwait. Add herrno and res.
10002 * sem_init.c: Don't initialize lock and waiters members.
10003 * sem_open.c: Likewise.
10004 * sem_post.c: Removed.
10005 * sem_wait.c: Removed.
10006 * sem_trywait.c: Removed.
10007 * sem_timedwait.c: Removed.
10008 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10009 Includes full implementations of sem_post, sem_wait, sem_trywait,
10010 and sem_timedwait.
10011 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10012 for new implementation.
10013 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10014 and waiters fields.
10015
10016 * tst-sem3.c: Improve error message.
10017 * tst-signal3.c: Likewise.
10018
10019 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10020 to tell the kernel about the termination futex and to initialize tid
10021 member. Don't initialize main_thread.
10022 * descr.h (struct pthread): Remove main_thread member.
10023 * cancelllation.c (__do_cancel): Remove code handling main thread.
10024 The main thread is not special anymore.
10025
10026 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10027 size of the stacks to stack_cache_actsize.
10028
10029 * pt-readv.c: Add missing "defined".
10030 * pt-sigwait.c: Likewise.
10031 * pt-writev.c: Likewise.
10032
100332002-11-09 Ulrich Drepper <drepper@redhat.com>
10034
10035 * Versions: Export __connect from libpthread.
10036 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10037
10038 * Makefile (libpthread-routines): Add pt-raise.
10039 * sysdeps/unix/sysv/linux/raise.c: New file.
10040 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10041 * sysdeps/generic/pt-raise.c: New file.
10042
10043 * pthread_cond_init.c: Initialize all data elements of the condvar
10044 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10045
10046 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10047 * pthread_create.c: Likewise.
10048
10049 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10050 * tst-key1.c: New file.
10051 * tst-key2.c: New file.
10052 * tst-key3.c: New file.
10053
10054 * Versions: Export pthread_detach for version GLIBC_2.0.
10055 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10056
100572002-11-08 Ulrich Drepper <drepper@redhat.com>
10058
10059 * pthread_key_create.c: Terminate search after an unused key was found.
10060 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10061
10062 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10063 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10064
100652002-10-10 Ulrich Drepper <drepper@redhat.com>
10066
10067 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10068 dynamic lookup for errno in PIC.
10069
10070 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10071 release the stack lock as soon as possible.
10072 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10073 the static TLS block.
10074 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10075
10076 * cancellation.c: Renamed from cancelation.c.
10077 * Makefile: Adjust accordingly.
10078 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10079 * cleanup_defer.c: Use CANCELLATION_P.
10080 * pthread_testcancel.c: Likewise.
10081 * descr.h: Fix spelling in comments.
10082 * init.c: Likewise.
10083 * pthread_getattr_np.c: Likewise.
10084 * pthread_getschedparam.c: Likewise.
10085 * pthread_setschedparam.c: Likewise.
10086 * Versions: Likewise.
10087
10088 * pt-pselect.c: New file.
10089 * Makefile (libpthread-routines): Add pt-pselect.
10090 * Versions: Add pselect.
10091
10092 * tst-cancel4.c: New file.
10093 * Makefile (tests): Add tst-cancel4.
10094
100952002-10-09 Ulrich Drepper <drepper@redhat.com>
10096
10097 * pthread_mutex_lock.c: Always record lock ownership.
10098 * pthread_mutex_timedlock.c: Likewise.
10099 * pthread_mutex_trylock.c: Likewise.
10100
10101 * pt-readv.c: New file.
10102 * pt-writev.c: New file.
10103 * pt-creat.c: New file.
10104 * pt-msgrcv.c: New file.
10105 * pt-msgsnd.c: New file.
10106 * pt-poll.c: New file.
10107 * pt-select.c: New file.
10108 * pt-sigpause.c: New file.
10109 * pt-sigsuspend.c: New file.
10110 * pt-sigwait.c: New file.
10111 * pt-sigwaitinfo.c: New file.
10112 * pt-waitid.c: New file.
10113 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10114 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10115 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10116 * Versions: Add all the new functions.
10117
10118 * tst-exit1.c: New file.
10119 * Makefile (tests): Add tst-exit1.
10120
10121 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10122
101232002-10-08 Ulrich Drepper <drepper@redhat.com>
10124
10125 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10126
10127 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10128 call. pthread_join is an official cancellation point.
10129 * pthread_timedjoin.c: Likewise.
10130
10131 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10132 and the condvar's mutex are retrieved.
10133 * pthread_cond_timedwait.c: Likewise.
10134 Reported by dice@saros.East.Sun.COM.
10135
101362002-10-07 Ulrich Drepper <drepper@redhat.com>
10137
10138 * pthreadP.h: Cut out all type definitions and move them...
10139 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10140 * pthreadP.h: Include <internaltypes.h>.
10141
10142 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10143 performance tweaks.
10144
10145 * sem_trywait.c: Shuffle #includes around to get right order.
10146 * sem_timedwait.c: Likewise.
10147 * sem_post.c: Likewise.
10148 * sem_wait.c: Likewise.
10149
10150 * nptl 0.3 released.
10151
10152 * Makefile (tests): Add tst-signal3.
10153 * tst-signal3.c: New file.
10154
101552002-10-05 Ulrich Drepper <drepper@redhat.com>
10156
10157 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10158 the asms modify the sem object.
10159 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10160
10161 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10162 the actual members.
10163 * pthreadP.h (struct sem): New type. Actual semaphore type.
10164 * semaphoreP.h: Include pthreadP.h.
10165 * sem_getvalue.c: Adjust to sem_t change.
10166 * sem_init.c: Likewise.
10167 * sem_open.c: Likewise.
10168 * sem_post.c: Likewise.
10169 * sem_timedwait.c: Likewise.
10170 * sem_trywait.c: Likewise.
10171 * sem_wait.c: Likewise.
10172
101732002-10-04 Ulrich Drepper <drepper@redhat.com>
10174
10175 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10176 * tst-basic2.c: New file.
10177 * tst-exec1.c: New file.
10178 * tst-exec2.c: New file.
10179 * tst-exec3.c: New file.
10180
10181 * tst-fork1.c: Remove extra */.
10182
10183 * nptl 0.2 released. The API for IA-32 is complete.