]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* locales/si_LK (mon): Fix February and November spelling.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
191ec77f
UD
12007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2
3 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
4 Store 2 before returning ETIMEDOUT.
5
c012be6f
UD
62007-11-23 Ulrich Drepper <drepper@redhat.com>
7
8 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
9 Store 2 before returning ETIMEDOUT.
10 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
11 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
12 (__lll_lock_wait_private): Optimize.
13 (__lll_lock_wait): Likewise.
14
77f1e09a
UD
152007-11-20 Jakub Jelinek <jakub@redhat.com>
16
17 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
18 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
19 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
20
0f7e0ee5
UD
212007-11-08 Ulrich Drepper <drepper@redhat.com>
22
cbed6a60
UD
23 [BZ #5240]
24 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
25 If we time out, try one last time to lock the futex to avoid
26 losing a wakeup signal.
27 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
28 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
29
0f7e0ee5
UD
30 [BZ #5245]
31 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
32 if necessary.
33
f6ed654c
UD
342007-11-07 Ulrich Drepper <drepper@redhat.com>
35
36 [BZ #5245]
37 * allocatestack.c (allocate_stack): Change ENOMEM error in case
38 mmap failed to EAGAIN.
39 * Makefile (tests): Add tst-basic7.
40 * tst-basic7.c: New file.
41
b92e3780
UD
422007-11-05 Ulrich Drepper <drepper@redhat.com>
43
44 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
45 Use __linkin_atfork.
46
94a749f6
UD
472007-11-03 Mike Frysinger <vapier@gentoo.org>
48
49 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
50 missing line continuations.
51 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
52 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
53
f160a450
UD
542007-10-28 Ulrich Drepper <drepper@redhat.com>
55
56 [BZ #5220]
57 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
58 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
59 (struct timer): Add next element.
60 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
61 enqueue timer structure into __active_timer_sigev_thread list.
62 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
63 remove timer struct from __active_timer_sigev_thread.
64 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
65 Before using timer structure make sure it is still on the
66 __active_timer_sigev_thread list. Keep lock until done.
67 Define __active_timer_sigev_thread and
68 __active_timer_sigev_thread_lock.
69
94833f11
UD
702007-10-27 Ulrich Drepper <drepper@redhat.com>
71
72 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
73 Redefine thread_atfork for use of ATFORK_MEM.
74 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
75 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
76 function.
77 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
78 Use atomic operation when removing first element of list.
79
96c06e08
JJ
802007-10-17 Jakub Jelinek <jakub@redhat.com>
81
82 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
83 routine instead of an alias to __new_sem_post.
84
e807818b
JJ
852007-10-15 Jakub Jelinek <jakub@redhat.com>
86
87 * init.c (__pthread_initialize_minimal): Initialize word to appease
88 valgrind.
89
59d430c6
UD
902007-10-10 Jakub Jelinek <jakub@redhat.com>
91
92 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
93 libc.so just clear NAME.
94 (__libc_rwlock_fini): Nop inside of libc.so.
95 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
96 all zeros.
97
221d9d8e
UD
982007-09-02 Ulrich Drepper <drepper@redhat.com>
99
100 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
101 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
102 unlocking failed.
103 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
104
2a01ce56
UD
1052007-08-21 Ulrich Drepper <drepper@redhat.com>
106
107 [BZ #4938]
108 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
109 reclaimed stack if necessary.
110 * Makefile (tests): Add tst-tsd6.
111 * tst-tsd6.c: New file.
112
c273641b
JJ
1132007-08-21 Jakub Jelinek <jakub@redhat.com>
114
115 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
116 Add private argument.
117
fb84593c
UD
1182007-08-20 Ulrich Drepper <drepper@redhat.com>
119
120 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
121 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
122
3e8d1eab
JJ
1232007-08-16 Jakub Jelinek <jakub@redhat.com>
124
125 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
126 (__lll_robust_timedlock): Pass private as last argument to
127 __lll_robust_timedlock_wait.
128 (__lll_unlock): Fix a pasto.
129
e4720b0e
JJ
1302007-08-15 Jakub Jelinek <jakub@redhat.com>
131
132 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
133 sparc_old_sem): New structs.
134 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
135 (__sem_wait_cleanup): New function.
136 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
137 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
138 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
139 lll_futex_wait.
140 (__old_sem_wait): New function.
141 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
142 nptl/sysdeps/unix/sysv/linux/sparc version.
143 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
144 Likewise.
145 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
146 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
147 (__new_sem_trywait): Use sparc_old_sem structure.
148 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
149 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
150 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
151 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
152 lll_futex_timed_wait.
153 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
154 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
155 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
156 lll_futex_wake.
157 (__old_sem_post): New function.
158 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
159 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
160 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
161 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
162 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
163 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
164
d13f4a43
UD
1652007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
166
167 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
168 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
169 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
170 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
171 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
172 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
173 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
174 Use FUTEX_WAKE_OP.
175 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
176 kernel-features.h and tcb-offsets.h.
177 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
178 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
179 process private.
180 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
181 tcb-offsets.h.
182 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
183 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
184 process private.
185 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
186 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
187 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
188 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
189 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
190 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
191 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
192
702a9414
JJ
1932007-08-14 Jakub Jelinek <jakub@redhat.com>
194
467d1345
JJ
195 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
196 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
197 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
198 lll_futex_timed_wait.
199
702a9414
JJ
200 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
201 __lll_robust_unlock): Rewrite as macros instead of inline functions.
202 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
203 __lll_robust_unlock, __lll_wait_tid): Likewise.
204
22502ea2
UD
2052007-08-13 Jakub Jelinek <jakub@redhat.com>
206
207 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
208 Fix a pasto.
209 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
210 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
211 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
212 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
213 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
214 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
215 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
216 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
217 kernel-features.h.
218 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
219 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
220 process private. Switch DW_CFA_advance_loc1 and some
221 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
222 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
223 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
224 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
225 process private. Switch DW_CFA_advance_loc{1,2} and some
226 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
227 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
228 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
229 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
230 Likewise.
231 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
232 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
233 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
234 Likewise.
235 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
236 (__pthread_cond_broadcast): Compare %r8 instead of
237 dep_mutex-cond_*(%rdi) with $-1.
238 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
239 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
240 of oring.
241
4baf59ad
UD
2422007-08-13 Ulrich Drepper <drepper@redhat.com>
243
244 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
245
9c6f6953
UD
2462007-08-13 Jakub Jelinek <jakub@redhat.com>
247
248 * allocatestack.c: Include kernel-features.h.
249 * pthread_create.c: Likewise.
250 * pthread_mutex_init.c: Likewise.
251 * init.c: Likewise.
252 * pthread_cond_timedwait.c: Likewise.
253 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
254 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
255 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
256 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
257 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
258 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
259 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
260 Likewise.
261 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
262 Likewise.
263 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
264 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
265 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
266 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
267
974a1f0f
UD
2682007-08-12 Jakub Jelinek <jakub@redhat.com>
269
270 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
271 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
272 byte elements. One of them is the new __shared element.
273 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
274 adjust names of other padding elements.
275 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
276 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
277 byte elements. One of them is the new __shared element.
278 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
279 adjust names of other padding elements.
280 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
281 Renamed __pad1 element to __shared, adjust names of other padding
282 elements.
283 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
284 (pthread_rwlock_t): Likewise.
285 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
286 typo.
287
2882007-08-09 Anton Blanchard <anton@samba.org>
289
290 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
291
f47e2626
UD
2922007-08-12 Ulrich Drepper <drepper@redhat.com>
293
294 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
295 <kernel-features.h>.
296 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
297
5bd8a249
UD
2982007-08-11 Ulrich Drepper <drepper@redhat.com>
299
300 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
301 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
302 dealing with robust mutexes.
303 * pthread_mutex_timedlock.c: Likewise.
304 * pthread_mutex_trylock.c: Likewise.
305 * pthread_mutex_unlock.c: Likewise.
306 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
307
3082007-08-06 Jakub Jelinek <jakub@redhat.com>
309
310 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
311 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
312 (PTHREAD_MUTEX_PSHARED): Define.
313 * pthread_mutex_init.c (__pthread_mutex_init): Set
314 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
315 mutexes.
316 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
317 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
318 as second argument to lll_lock.
319 (LLL_MUTEX_TRYLOCK): Take mutex as argument
320 instead of its __data.__lock field.
321 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
322 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
323 to lll_robust_lock.
324 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
325 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
326 instead of mutex->__data.__kind directly, pass
327 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
328 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
329 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
330 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
331 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
332 to lll_timedlock, lll_robust_timedlock, lll_unlock and
333 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
334 of mutex->__data.__kind directly.
335 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
336 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
337 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
338 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
339 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
340 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
341 and lll_futex_wake.
342 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
343 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
344 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
345 directly.
346 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
347 Take mutex as argument instead of its __data.__lock field, pass
348 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
349 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
350 __data.__lock field.
351 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
352 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
353 to lll_robust_cond_lock.
354 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
355 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
356 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
357 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
358 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
359 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
360 lll_futex_wait.
361 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
362 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
363 lll_futex_wake.
364 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
365 pshared variable, pass it to lll_lock, lll_unlock,
366 lll_futex_timedwait and lll_futex_wake.
367 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
368 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
369 and lll_futex_wake.
370 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
371 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
372 macro.
373 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
374 lll_futex_wake_unlock): Likewise.
375 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
376 Likewise.
377 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
378 lll_futex_wake_unlock): Likewise.
379 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
380 Likewise.
381 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
382 lll_futex_wake_unlock): Likewise.
383 (lll_futex_wake): Fix a typo.
384 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
385 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
386 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
387 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
388 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
389 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
390 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
391 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
392 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
393 (__pthread_cond_timedwait): Likewise.
394 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
395 (__condvar_cleanup, __pthread_cond_wait): Likewise.
396
0470fa46
JJ
3972007-08-05 Jakub Jelinek <jakub@redhat.com>
398
399 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
400 Don't use CGOTSETUP and CGOTRESTORE macros.
401 (CGOTSETUP, CGOTRESTORE): Remove.
402 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
403 @local symbol.
404
64f6281c
UD
4052007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
406
407 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
408 definitions for private futexes.
409 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
410 kernel-features.h and lowlevellock.h. Use private futexes if
411 they are available.
412 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
413 (__lll_mutex_lock_wait): Rename to
414 (__lll_lock_wait): ... this. Don't compile in for libc.so.
415 (__lll_mutex_timedlock_wait): Rename to ...
416 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
417 Don't compile in for libc.so.
418 (__lll_mutex_unlock_wake): Rename to ...
419 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
420 (__lll_timedwait_tid): Use __NR_gettimeofday.
421 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
422 the header from assembler. Renamed all lll_mutex_* resp.
423 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
424 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
425 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
426 Define.
427 (__lll_lock_wait_private): Add prototype.
428 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
429 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
430 __lll_unlock_wake): Likewise.
431 (lll_lock): Add private argument. Call __lll_lock_wait_private
432 if private is constant LLL_PRIVATE.
433 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
434 lll_timedlock, lll_robust_timedlock): Add private argument.
435 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
436 if private is constant LLL_PRIVATE.
437 (lll_robust_unlock, lll_robust_dead): Add private argument.
438 (lll_lock_t): Remove.
439 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
440 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
441 lll_cond_wake, lll_cond_broadcast): Remove.
442 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
443 kernel-features.h and lowlevellock.h.
444 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
445 (LOAD_FUTEX_WAIT): Define.
446 (__lll_robust_mutex_lock_wait): Rename to ...
447 (__lll_robust_lock_wait): ... this. Add private argument.
448 Use LOAD_FUTEX_WAIT macro.
449 (__lll_robust_mutex_timedlock_wait): Rename to ...
450 (__lll_robust_timedlock_wait): ... this. Add private argument.
451 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
452 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
453 lowlevellock.h.
454 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
455 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
456 __lll_mutex_{lock,unlock}_*.
457 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
458 lowlevellock.h and pthread-errnos.h.
459 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
460 FUTEX_CMP_REQUEUE, EINVAL): Remove.
461 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
462 __lll_mutex_{lock,unlock}_*.
463 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
464 lowlevellock.h and pthread-errnos.h.
465 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
466 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
467 __lll_mutex_{lock,unlock}_*.
468 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
469 lowlevellock.h.
470 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
471 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
472 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
473 (__condvar_tw_cleanup): Likewise.
474 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
475 lowlevellock.h.
476 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
477 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
478 __lll_mutex_{lock,unlock}_*.
479 ( __condvar_w_cleanup): Likewise.
480 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
481 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
482 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
483 lowlevellock.h.
484 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
485 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
486 __lll_mutex_{lock,unlock}_*.
487 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
488 lowlevellock.h.
489 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
490 FUTEX_PRIVATE_FLAG): Remove.
491 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
492 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
493 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
494 lowlevellock.h.
495 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
496 FUTEX_PRIVATE_FLAG): Remove.
497 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
498 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
499 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
500 lowlevellock.h.
501 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
502 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
503 __lll_mutex_{lock,unlock}_*.
504 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
505 lowlevellock.h.
506 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
507 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
508 __lll_mutex_{lock,unlock}_*.
509 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
510 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
511 (__new_sem_post): Use standard initial exec code sequences.
512 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
513 lowlevellock.h.
514 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
515 FUTEX_PRIVATE_FLAG): Remove.
516 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
517 exec code sequences.
518 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
519 (__new_sem_trywait): Use standard initial exec code sequences.
520 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
521 (__new_sem_wait): Use standard initial exec code sequences.
522
e51deae7
UD
5232007-07-31 Anton Blanchard <anton@samba.org>
524
525 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
526 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
527 atomic_full_barrier.
528
5292007-07-31 Jakub Jelinek <jakub@redhat.com>
530
531 * allocatestack.c (stack_cache_lock): Change type to int.
532 (get_cached_stack, allocate_stack, __deallocate_stack,
533 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
534 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
535 as second argument to lll_lock and lll_unlock macros on
536 stack_cache_lock.
537 * pthread_create.c (__find_in_stack_list): Likewise.
538 (start_thread): Similarly with pd->lock. Use lll_robust_dead
539 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
540 as second argument.
541 * descr.h (struct pthread): Change lock and setxid_futex field
542 type to int.
543 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
544 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
545 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
546 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
547 Likewise.
548 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
549 * pthread_cond_init.c (__pthread_cond_init): Likewise.
550 * pthreadP.h (__attr_list_lock): Change type to int.
551 * pthread_attr_init.c (__attr_list_lock): Likewise.
552 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
553 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
554 lll_{,un}lock.
555 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
556 also for lll_futex_{wake,wait}.
557 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
558 a pointer to const.
559 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
560 LLL_SHARED as second argument to lll_{,un}lock.
561 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
562 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
563 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
564 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
565 Likewise.
566 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
567 as second argument to lll_{,un}lock macros on pd->lock.
568 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
569 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
570 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
571 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
572 Likewise.
573 * sysdeps/pthread/createthread.c (do_clone, create_thread):
574 Likewise.
575 * pthread_once.c (once_lock): Change type to int.
576 (__pthread_once): Pass LLL_PRIVATE as second argument to
577 lll_{,un}lock macros on once_lock.
578 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
579 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
580 rwlock->__data.__shared as second argument to them and similarly
581 for lll_futex_w*.
582 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
583 Likewise.
584 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
585 Likewise.
586 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
587 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
588 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
589 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
590 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
591 to lll_{,un}lock macros on __sem_mappings_lock.
592 * sem_open.c (check_add_mapping): Likewise.
593 (__sem_mappings_lock): Change type to int.
594 * semaphoreP.h (__sem_mappings_lock): Likewise.
595 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
596 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
597 instead of lll_*mutex_*, pass LLL_SHARED as last
598 argument.
599 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
600 pass LLL_SHARED as last argument.
601 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
602 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
603 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
604 pass LLL_SHARED as last argument.
605 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
606 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
607 LLL_SHARED as last argument.
608 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
609 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
610 Similarly.
611 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
612 __libc_lock_lock_recursive, __libc_lock_unlock,
613 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
614 argument to lll_{,un}lock.
615 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
616 _IO_lock_unlock): Likewise.
617 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
618 compound literal.
619 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
620 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
621 __fork_lock.
622 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
623 free_mem): Likewise.
624 (__fork_lock): Change type to int.
625 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
626 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
627 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
628 lll_futex_wake.
629 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
630 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
631 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
632 New function.
633 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
634 pass it through to lll_futex_*wait, only compile in when
635 IS_IN_libpthread.
636 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
637 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
638 argument and pass it through to lll_futex_*wait.
639 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
640 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
641 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
642 inline functions to __lll_* resp. __lll_robust_*.
643 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
644 (lll_mutex_dead): Add private argument.
645 (__lll_lock_wait_private): New prototype.
646 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
647 __lll_robust_lock_timedwait): Add private argument to prototypes.
648 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
649 call __lll_lock_wait_private, otherwise pass private to
650 __lll_lock_wait.
651 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
652 __lll_robust_timedlock): Add private argument, pass it to
653 __lll_*wait functions.
654 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
655 call __lll_unlock_wake_private, otherwise pass private to
656 __lll_unlock_wake.
657 (__lll_robust_unlock): Add private argument, pass it to
658 __lll_robust_unlock_wake.
659 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
660 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
661 argument, pass it through to __lll_* inline function.
662 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
663 (lll_lock_t): Remove.
664 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
665 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
666 lll_cond_wake, lll_cond_broadcast): Remove.
667 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
668 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
669 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
670 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
671 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
672 the header from assembler. Renamed all lll_mutex_* resp.
673 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
674 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
675 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
676 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
677 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
678 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
679 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
680 Remove prototype.
681 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
682 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
683 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
684 (lll_trylock): Likewise, use __lll_trylock_asm, pass
685 MULTIPLE_THREADS_OFFSET as another asm operand.
686 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
687 MULTIPLE_THREADS_OFFSET as last asm operand, call
688 __lll_lock_wait_private if private is constant LLL_PRIVATE,
689 otherwise pass private as another argument to __lll_lock_wait.
690 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
691 lll_timedlock, lll_robust_timedlock): Add private argument, pass
692 private as another argument to __lll_*lock_wait call.
693 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
694 MULTIPLE_THREADS_OFFSET as another asm operand, call
695 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
696 otherwise pass private as another argument to __lll_unlock_wake.
697 (lll_robust_unlock): Add private argument, pass private as another
698 argument to __lll_unlock_wake.
699 (lll_robust_dead): Add private argument, use __lll_private_flag
700 macro.
701 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
702 LLL_MUTEX_LOCK_INITIALIZER.
703 (lll_lock_t): Remove.
704 (LLL_LOCK_INITIALIZER_WAITERS): Define.
705 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
706 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
707 lll_cond_wake, lll_cond_broadcast): Remove.
708 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
709 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
710 2007-05-2{3,9} changes.
711 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
712 kernel-features.h and lowlevellock.h.
713 (LOAD_PRIVATE_FUTEX_WAIT): Define.
714 (LOAD_FUTEX_WAIT): Rewritten.
715 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
716 define.
717 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
718 (__lll_mutex_lock_wait): Rename to ...
719 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
720 %ecx, %ecx is now private argument. Don't compile in for libc.so.
721 (__lll_mutex_timedlock_wait): Rename to ...
722 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
723 contains private argument. Don't compile in for libc.so.
724 (__lll_mutex_unlock_wake): Rename to ...
725 (__lll_unlock_wake): ... this. %ecx contains private argument.
726 Don't compile in for libc.so.
727 (__lll_timedwait_tid): Use __NR_gettimeofday.
728 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
729 kernel-features.h and lowlevellock.h.
730 (LOAD_FUTEX_WAIT): Define.
731 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
732 define.
733 (__lll_robust_mutex_lock_wait): Rename to ...
734 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
735 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
736 macro.
737 (__lll_robust_mutex_timedlock_wait): Rename to ...
738 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
739 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
740 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
741 lowlevellock.h.
742 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
743 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
744 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
745 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
746 to __lll_lock_wait in %edx.
747 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
748 Include lowlevellock.h and pthread-errnos.h.
749 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
750 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
751 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
752 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
753 pass LLL_SHARED in %ecx to both __lll_lock_wait and
754 __lll_unlock_wake.
755 * sysdeps/unix/sysv/linux/i386/i486/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_*, pass
760 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
761 pass LLL_SHARED in %ecx to both __lll_lock_wait and
762 __lll_unlock_wake.
763 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
764 Include lowlevellock.h.
765 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
766 Don't define.
767 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
768 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
769 pass LLL_SHARED in %ecx to both __lll_lock_wait and
770 __lll_unlock_wake. Use __NR_gettimeofday.
771 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
772 Include lowlevellock.h.
773 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
774 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
775 to __lll_*, pass cond_lock address in %edx rather than %ecx to
776 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
777 and __lll_unlock_wake.
778 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
779 Include lowlevellock.h.
780 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
781 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
782 MUTEX(%ebx) address in %edx rather than %ecx to
783 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
784 and __lll_unlock_wake. Move return value from %ecx to %edx
785 register.
786 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
787 Include lowlevellock.h.
788 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
789 Don't define.
790 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
791 MUTEX(%ebp) address in %edx rather than %ecx to
792 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
793 and __lll_unlock_wake. Move return value from %ecx to %edx
794 register. Use __NR_gettimeofday.
795 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
796 Include lowlevellock.h.
797 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
798 Don't define.
799 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
800 MUTEX(%ebp) address in %edx rather than %ecx to
801 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
802 and __lll_unlock_wake. Move return value from %ecx to %edx
803 register. Use __NR_gettimeofday.
804 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
805 Include lowlevellock.h.
806 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
807 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
808 MUTEX(%edi) address in %edx rather than %ecx to
809 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
810 and __lll_unlock_wake.
811 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
812 Include lowlevellock.h.
813 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
814 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
815 MUTEX(%ebx) address in %edx rather than %ecx to
816 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
817 and __lll_unlock_wake. Move return value from %ecx to %edx
818 register.
819 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
820 lowlevellock.h.
821 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
822 define.
823 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
824 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
825 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
826 lowlevellock.h.
827 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
828 (sem_timedwait): Use __NR_gettimeofday.
829 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
830 lowlevellock.h.
831 (LOCK): Don't define.
832 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
833 lowlevellock.h.
834 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
835 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
836 are waiters.
837 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
838 2007-05-2{3,9} changes.
839 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
840 kernel-features.h and lowlevellock.h.
841 (LOAD_PRIVATE_FUTEX_WAIT): Define.
842 (LOAD_FUTEX_WAIT): Rewritten.
843 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
844 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
845 (__lll_mutex_lock_wait): Rename to ...
846 (__lll_lock_wait): ... this. %esi is now private argument.
847 Don't compile in for libc.so.
848 (__lll_mutex_timedlock_wait): Rename to ...
849 (__lll_timedlock_wait): ... this. %esi contains private argument.
850 Don't compile in for libc.so.
851 (__lll_mutex_unlock_wake): Rename to ...
852 (__lll_unlock_wake): ... this. %esi contains private argument.
853 Don't compile in for libc.so.
854 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
855 kernel-features.h and lowlevellock.h.
856 (LOAD_FUTEX_WAIT): Define.
857 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
858 (__lll_robust_mutex_lock_wait): Rename to ...
859 (__lll_robust_lock_wait): ... this. %esi argument contains private.
860 Use LOAD_FUTEX_WAIT macro.
861 (__lll_robust_mutex_timedlock_wait): Rename to ...
862 (__lll_robust_timedlock_wait): ... this. %esi argument contains
863 private, use LOAD_FUTEX_WAIT macro.
864 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
865 lowlevellock.h.
866 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
867 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
868 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
869 __lll_lock_wait and __lll_unlock_wake.
870 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
871 Include lowlevellock.h and pthread-errnos.h.
872 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
873 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
874 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
875 pass LLL_SHARED in %esi to both __lll_lock_wait and
876 __lll_unlock_wake.
877 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
878 Include lowlevellock.h and pthread-errnos.h.
879 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
880 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
881 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
882 pass LLL_SHARED in %esi to both __lll_lock_wait and
883 __lll_unlock_wake.
884 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
885 Include lowlevellock.h.
886 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
887 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
888 pass LLL_SHARED in %esi to both __lll_lock_wait and
889 __lll_unlock_wake.
890 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
891 Include lowlevellock.h.
892 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
893 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
894 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
895 and __lll_unlock_wake.
896 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
897 Include lowlevellock.h.
898 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
899 Don't define.
900 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
901 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
902 and __lll_unlock_wake.
903 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
904 Include lowlevellock.h.
905 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
906 Don't define.
907 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
908 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
909 and __lll_unlock_wake.
910 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
911 Include lowlevellock.h.
912 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
913 Don't define.
914 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
915 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
916 and __lll_unlock_wake.
917 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
918 Include lowlevellock.h.
919 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
920 Don't define.
921 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
922 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
923 and __lll_unlock_wake.
924 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
925 Include lowlevellock.h.
926 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
927 Don't define.
928 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
929 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
930 and __lll_unlock_wake.
931 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
932 lowlevellock.h.
933 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
934 define.
935 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
936 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
937 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
938 lowlevellock.h.
939 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
940 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
941 lowlevellock.h.
942 (LOCK): Don't define.
943 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
944 lowlevellock.h.
945 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
946 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
947 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
948 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
949 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
950 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
951 (__lll_lock_wait_private): New function.
952 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
953 it to lll_futex_*wait. Don't compile in for libc.so.
954 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
955 Remove.
956 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
957 (struct sparc_pthread_barrier): Remove.
958 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
959 struct sparc_pthread_barrier. Pass
960 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
961 and lll_futex_wait macros.
962 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
963 Remove.
964 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
965 Include sparc pthread_barrier_wait.c instead of generic one.
966
6f59d56e
UD
9672007-07-30 Jakub Jelinek <jakub@redhat.com>
968
1475e201
UD
969 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
970
6f59d56e
UD
971 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
972 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
973 %ecx.
974 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
975 (pthread_rwlock_timedwrlock): Likewise.
976 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
977 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
978
558f0300
JJ
9792007-07-31 Jakub Jelinek <jakub@redhat.com>
980
981 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
982
cedb4109
UD
9832007-07-26 Jakub Jelinek <jakub@redhat.com>
984
985 * tst-locale2.c (useless): Add return statement.
986
085a4412
UD
9872007-07-24 Jakub Jelinek <jakub@redhat.com>
988
989 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
990 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
991 * pthread_create.c (start_thread): Likewise.
992 * init.c (sighandler_setxid): Likewise.
993 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
994 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
995 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
996 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
997 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
998 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
999 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1000 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1001 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1002 Likewise.
1003 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1004 Likewise.
1005 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1006 Likewise.
1007 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1008 __rtld_notify): Likewise.
1009 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1010 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1011 __pthread_once): Likewise.
1012 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1013 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1014 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1015 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1016 (lll_futex_wait): Add private argument, define as wrapper around
1017 lll_futex_timed_wait.
1018 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1019 use __lll_private_flag macro.
1020 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1021 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1022 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1023 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1024 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1025 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1026 (lll_futex_wait): Add private argument, define as wrapper around
1027 lll_futex_timed_wait.
1028 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1029 use __lll_private_flag macro.
1030 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1031 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1032 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1033 Define.
1034 (lll_futex_timed_wait, lll_futex_wake): Use it.
1035 (lll_private_futex_wait, lll_private_futex_timed_wait,
1036 lll_private_futex_wake): Removed.
1037 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1038 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1039 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1040 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1041 (lll_futex_wait): Add private argument, define as wrapper around
1042 lll_futex_timed_wait.
1043 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1044 use __lll_private_flag macro.
1045 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1046 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1047 to lll_futex_*.
1048 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1049 (lll_private_futex_wait, lll_private_futex_timed_wait,
1050 lll_private_futex_wake): Removed.
1051 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1052 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1053 (lll_private_futex_wait, lll_private_futex_timed_wait,
1054 lll_private_futex_wake): Removed.
1055 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1056 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1057 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1058 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1059 (lll_futex_wait): Add private argument, define as wrapper around
1060 lll_futex_timed_wait.
1061 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1062 use __lll_private_flag macro.
1063 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1064 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1065 to lll_futex_*.
1066 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1067 Define.
1068 (lll_futex_timed_wait, lll_futex_wake): Use it.
1069 (lll_private_futex_wait, lll_private_futex_timed_wait,
1070 lll_private_futex_wake): Removed.
1071
ef0af159
JJ
10722007-07-27 Jakub Jelinek <jakub@redhat.com>
1073
1074 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1075 of the structure for sparc32.
1076
10772007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1078
1079 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1080
eb4f5909
UD
10812007-07-23 Ulrich Drepper <drepper@redhat.com>
1082
1083 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1084 code used when private futexes are assumed.
1085 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1086 Likewise.
1087
b5f13526
UD
10882007-07-23 Jakub Jelinek <jakub@redhat.com>
1089
1090 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1091 (__lll_private_flag): Define.
1092 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1093 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1094 __lll_private_flag.
1095 (lll_private_futex_wait, lll_private_futex_timedwait,
1096 lll_private_futex_wake): Define as wrapper around non-_private
1097 macros.
1098 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1099 (__lll_private_flag): Define.
1100 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1101 (lll_private_futex_wait, lll_private_futex_timedwait,
1102 lll_private_futex_wake): Define as wrapper around non-_private
1103 macros.
1104
eb7721f2
UD
11052007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1106
1107 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1108 parameter to lll_futex_wait call.
1109 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1110
1111 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1112 Replace lll_futex_wait with lll_private_futex_wait.
1113 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1114 Add LLL_SHARED parameter to lll_futex_wake().
1115
1116 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1117 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1118 lll_private_futex_wake.
1119 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1120 bit from private parm before syscall.
1121 (lll_futex_timed_wait): Likewise.
1122 (lll_futex_wake): Likewise.
1123 (lll_futex_wake_unlock): Likewise.
1124 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1125 (lll_robust_mutex_unlock): Likewise.
1126 (lll_mutex_unlock_force): Likewise.
1127 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1128
defc45f2
UD
11292007-07-23 Ulrich Drepper <drepper@redhat.com>
1130
1131 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1132 compilation when unconditionally using private futexes.
1133 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1134 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1135 Likewise.
1136 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1137 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1138
087722b8
UD
11392007-07-17 Jakub Jelinek <jakub@redhat.com>
1140
1141 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1142 Define.
1143
765c6b0c
UD
11442007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1145
1146 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1147 kernel-features.h.
1148
7d9d8bd1
RM
11492007-05-16 Roland McGrath <roland@redhat.com>
1150
1151 * init.c (__nptl_initial_report_events): New variable.
1152 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1153 to that.
1154
a4915df2
UD
11552007-06-22 Jakub Jelinek <jakub@redhat.com>
1156
1157 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1158 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1159
e4eb675d
UD
11602007-06-19 Ulrich Drepper <drepper@redhat.com>
1161
1162 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1163 implementation.
1164
ae1ad3ae
UD
11652007-06-18 Ulrich Drepper <drepper@redhat.com>
1166
1167 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1168 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1169 * pthread_mutex_timedlock.c: Likewise.
1170 * pthread_mutex_trylock.c: Likewise.
1171 * pthread_mutex_unlock.c: Likewise.
1172
89074592
UD
11732007-06-17 Andreas Schwab <schwab@suse.de>
1174
1175 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1176 sections.
1177
d4201cc4
UD
11782007-06-17 Ulrich Drepper <drepper@redhat.com>
1179
1180 * allocatestack.c (allocate_stack): Make code compile if
1181 __ASSUME_PRIVATE_FUTEX is set.
1182
339dbf0e
UD
11832007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1184
1185 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1186 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1187 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1188 (__pthread_rwlock_wrlock): Likewise.
1189 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1190 (pthread_rwlock_timedrdlock): Likewise.
1191 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1192 (pthread_rwlock_timedwrlock): Likewise.
1193 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1194 (__pthread_rwlock_unlock): Likewise.
1195
11962007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1197
1198 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1199 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1200 Split __flags into __flags, __shared, __pad1 and __pad2.
1201 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1202 futexes if they are available.
1203 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1204 in libc-lowlevellock.S allow using private futexes.
1205 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1206 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1207 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1208 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1209 lll_private_futex_timed_wait and lll_private_futex_wake.
1210 (lll_robust_mutex_unlock): Fix typo.
1211 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1212 field in futex command setup.
1213 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1214 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1215 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1216 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1217 if they are available. Remove clear_once_control.
1218 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1219 futexes if they are available.
1220 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1221 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1222 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1223 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1224 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1225 Wake only when there are waiters.
1226 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1227 support. Indicate that there are waiters. Remove unnecessary
1228 extra cancellation test.
1229 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1230 left-over duplication of __sem_wait_cleanup.
1231
26f56c1c
UD
12322007-06-07 Ulrich Drepper <drepper@redhat.com>
1233
1234 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1235 parameter to lll_futex_wait, lll_futex_timed_wait, and
1236 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1237 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1238 lll_private_futex_wake.
1239 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1240 * allocatestack.c: Adjust use of lll_futex_* macros.
1241 * init.c: Likewise.
1242 * lowlevellock.h: Likewise.
1243 * pthread_barrier_wait.c: Likewise.
1244 * pthread_cond_broadcast.c: Likewise.
1245 * pthread_cond_destroy.c: Likewise.
1246 * pthread_cond_signal.c: Likewise.
1247 * pthread_cond_timedwait.c: Likewise.
1248 * pthread_cond_wait.c: Likewise.
1249 * pthread_create.c: Likewise.
1250 * pthread_mutex_lock.c: Likewise.
1251 * pthread_mutex_setprioceiling.c: Likewise.
1252 * pthread_mutex_timedlock.c: Likewise.
1253 * pthread_mutex_unlock.c: Likewise.
1254 * pthread_rwlock_timedrdlock.c: Likewise.
1255 * pthread_rwlock_timedwrlock.c: Likewise.
1256 * pthread_rwlock_unlock.c: Likewise.
1257 * sysdeps/alpha/tls.h: Likewise.
1258 * sysdeps/i386/tls.h: Likewise.
1259 * sysdeps/ia64/tls.h: Likewise.
1260 * sysdeps/powerpc/tls.h: Likewise.
1261 * sysdeps/pthread/aio_misc.h: Likewise.
1262 * sysdeps/pthread/gai_misc.h: Likewise.
1263 * sysdeps/s390/tls.h: Likewise.
1264 * sysdeps/sh/tls.h: Likewise.
1265 * sysdeps/sparc/tls.h: Likewise.
1266 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1267 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1268 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1269 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1270 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1271 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1272 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1273 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1274 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1275 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1276 Likewise.
1277 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1278 * sysdeps/x86_64/tls.h: Likewise.
1279
ee5d5755
UD
12802007-05-29 Ulrich Drepper <drepper@redhat.com>
1281
b03b0c29
UD
1282 * pthread_getattr_np.c: No need to install a cancellation handler,
1283 this is no cancellation point.
1284 * pthread_getschedparam.c: Likewise.
1285 * pthread_setschedparam.c: Likewise.
1286 * pthread_setschedprio.c: Likewise.
1287 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1288 lll_unlock_wake_cb.
1289 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1290 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1291 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1292 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1293 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1294 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1295 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1296 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1297 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1298 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1299 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1300 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1301
0154658d
UD
1302 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1303 whether there are more than one thread makes no sense here since
1304 we only call the slow path if the locks are taken.
1305 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1306
ee5d5755
UD
1307 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1308 COND_NWAITERS_SHIFT.
1309 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1310 COND_CLOCK_BITS.
1311 * pthread_cond_init.c: Likewise.
1312 * pthread_cond_timedwait.c: Likewise.
1313 * pthread_cond_wait.c: Likewise.
1314 * pthread_condattr_getclock.c: Likewise.
1315 * pthread_condattr_setclock.c: Likewise.
1316 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1317 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1318 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1319 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1320 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1321
991fa82b
UD
13222007-05-28 Jakub Jelinek <jakub@redhat.com>
1323
40f57573
UD
1324 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1325 unistd.h.
1326
991fa82b
UD
1327 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1328 insn suffix.
1329 (THREAD_GSCOPE_GET_FLAG): Remove.
1330 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1331 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1332 changes.
1333 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1334 (THREAD_GSCOPE_GET_FLAG): Remove.
1335 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1336 instead of THREAD_GSCOPE_GET_FLAG.
1337 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1338 it.
1339 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1340 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1341 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1342 THREAD_GSCOPE_WAIT): Define.
1343 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1344 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1345 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1346 THREAD_GSCOPE_WAIT): Define.
1347 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1348 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1349 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1350 THREAD_GSCOPE_WAIT): Define.
1351 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1352 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1353 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1354 THREAD_GSCOPE_WAIT): Define.
1355
13562007-05-24 Richard Henderson <rth@redhat.com>
1357
1358 * descr.h (struct pthread): Add header.gscope_flag.
1359 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1360 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1361 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1362 THREAD_GSCOPE_WAIT): Define.
1363
e59660bc
UD
13642007-05-27 Ulrich Drepper <drepper@redhat.com>
1365
1366 * init.c: Make it compile with older kernel headers.
1367
1368 * tst-initializers1.c: Show through exit code which test failed.
1369
1370 * pthread_rwlock_init.c: Also initialize __shared field.
1371 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1372 element in rwlock structure into four byte elements. One of them is
1373 the new __shared element.
1374 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1375 Likewise.
cd0dbd89 1376 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1377 __shared, adjust names of other padding elements.
1378 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1379 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1380 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1381 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1382 FUTEX_PRIVATE_FLAG.
1383 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1384 futex to use private operations if possible.
1385 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1386 Likewise.
1387 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1388 Likewise.
1389 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1390 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1391 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1392 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1393 Likewise.
1394 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1395 Likewise.
1396 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1397 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1398
d8ff3792
UD
13992007-05-26 Ulrich Drepper <drepper@redhat.com>
1400
546346b6
UD
1401 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1402 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1403 * pthread_rwlock_timedrdlock.c: Likewise.
1404 * pthread_rwlock_tryrdlock.c: Likewise.
1405
a2dd3360
UD
1406 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1407 optimization.
1408
6df7ffad
UD
1409 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1410 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1411 duplication of __sem_wait_cleanup.
1412
1413 * allocatestack.c: Revert last change.
1414 * init.c: Likewise.
1415 * sysdeps/i386/tls.h: Likewise.
1416 * sysdeps/x86_64/tls.h: Likewise.
1417 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1418 header structure.
1419 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1420
d8ff3792
UD
1421 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1422 Add private field.
1423 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1424 * pthread_barrier_init.c: Set private flag if pshared and private
1425 futexes are supported.
1426 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1427 private field in futex command setup.
1428 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1429
3d2dd6ca
UD
14302007-05-25 Ulrich Drepper <drepper@redhat.com>
1431
42e6c665
UD
1432 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1433 support.
1434 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1435 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1436 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1437 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1438 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1439
3d2dd6ca
UD
1440 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1441 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1442 fields in the structure.
1443 (__old_sem_init): New function.
1444 * sem_open.c: Initialize all fields of the structure.
1445 * sem_getvalue.c: Adjust for renamed element.
1446 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1447 (gen-as-const-headers): Add structsem.sym.
1448 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1449 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1450 struct new_sem. Add struct old_sem.
1451 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1452 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1453 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1454 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1455 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1456 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1457 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1458 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1459 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1460 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1461 * tst-sem10.c: New file.
1462 * tst-sem11.c: New file.
1463 * tst-sem12.c: New file.
1464 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1465 of struct sem.
1466
20a4d722
JJ
14672007-05-25 Ulrich Drepper <drepper@redhat.com>
1468 Jakub Jelinek <jakub@redhat.com>
1469
1470 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1471 Move __pthread_enable_asynccancel right before futex syscall.
1472 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1473 Likewise.
1474
14752007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1476
1477 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1478 THREAD_COPY_PRIVATE_FUTEX): Define.
1479 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1480 THREAD_COPY_PRIVATE_FUTEX): Define.
1481 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1482 * init.c (__pthread_initialize_minimal_internal): Use
1483 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1484
1485 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1486 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1487 THREAD_GSCOPE_FLAG_WAIT): Define.
1488 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1489 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1490 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1491 PTR_DEMANGLE.
1492 (THREAD_GSCOPE_GET_FLAG): Define.
1493 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1494 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1495 instead of ->header.gscope_flag directly.
1496
5a8075b1
UD
14972007-05-23 Ulrich Drepper <drepper@redhat.com>
1498
1499 * init.c (__pthread_initialize_minimal_internal): Check whether
1500 private futexes are available.
1501 * allocatestack.c (allocate_stack): Copy private_futex field from
1502 current thread into the new stack.
1503 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1504 futexes if they are available.
1505 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1506 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1507 in libc-lowlevellock.S allow using private futexes.
1508 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1509 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1510 FUTEX_PRIVATE_FLAG.
1511 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1512 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1513 if they are available.
1514 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1515 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1516 * sysdeps/i386/tcb-offsets.sym: Likewise.
1517 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1518 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1519
6d59823c
UD
15202007-05-21 Ulrich Drepper <drepper@redhat.com>
1521
1522 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1523 Remove ptr_wait_lookup_done again.
1524 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1525 (__pthread_initialize_minimal_internal): Initialize
1526 _dl_wait_lookup_done pointer in _rtld_global directly.
1527 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1528 Remove code to code _dl_wait_lookup_done.
1529 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1530 encrypted for now.
1531
2c9718f3
JJ
15322007-05-21 Jakub Jelinek <jakub@redhat.com>
1533
1534 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1535 pthread_mutex_init failed with ENOTSUP.
1536
df94b641
UD
15372007-05-19 Ulrich Drepper <drepper@redhat.com>
1538
1539 * allocatestack.c (__wait_lookup_done): New function.
1540 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1541 Add ptr_wait_lookup_done.
1542 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1543 * pthreadP.h: Declare __wait_lookup_done.
1544 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1545 Define macros to implement reference handling of global scope.
1546 * sysdeps/x86_64/tls.h: Likewise.
1547 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1548 Initialize GL(dl_wait_lookup_done).
1549
bec51a30
UD
15502007-05-17 Ulrich Drepper <drepper@redhat.com>
1551
113ad5fc
UD
1552 [BZ #4512]
1553 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1554 is detected.
1555 * pthread_mutex_timedlock.c: Likewise.
1556 * pthread_mutex_trylock.c: Likewise.
1557 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1558
1559 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1560 * tst-robust9.c: New file.
1561 * tst-robustpi9.c: New file.
1562
bec51a30
UD
1563 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1564 unnecessary extra cancellation test.
1565
83d87915
UD
15662007-05-14 Ulrich Drepper <drepper@redhat.com>
1567
83d87915
UD
1568 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
1569 extra cancellation test.
1570 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1571
3771196d
UD
15722007-05-10 Ulrich Drepper <drepper@redhat.com>
1573
341c566f
UD
1574 * descr.h (struct pthread): Rearrange members to fill hole in
1575 64-bit layout.
1576
3771196d
UD
1577 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1578 (__pthread_setaffinity_new): If syscall was successful and
1579 RESET_VGETCPU_CACHE is defined, use it before returning.
1580 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
1581
7d29b542
JJ
15822007-05-10 Jakub Jelinek <jakub@redhat.com>
1583
1584 [BZ #4455]
1585 * tst-align2.c: Include stackinfo.h.
1586 * tst-getpid1.c: Likewise.
1587
16105fe0
UD
15882007-05-02 Carlos O'Donell <carlos@systemhalted.org>
1589
29c113f0
UD
1590 [BZ #4455]
1591 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
1592 * tst-getpid1.c (do_test): Likewise.
1593
16105fe0
UD
1594 [BZ #4456]
1595 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
1596 (allocate_stack): Likewise.
1597
6780bc44
UD
15982007-05-07 Ulrich Drepper <drepper@redhat.com>
1599
1600 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1601 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
1602 (__lll_robust_timedlock_wait): Likewise.
1603 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
1604
aa75f64c
UD
16052007-05-06 Mike Frysinger <vapier@gentoo.org>
1606
15eca720 1607 [BZ #4465]
aa75f64c
UD
1608 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
1609 * tst-cancel4.c (tf_fdatasync): New test.
1610
f672076e
UD
16112007-04-27 Ulrich Drepper <drepper@redhat.com>
1612
1bb5f5a1
UD
1613 [BZ #4392]
1614 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
1615 check mutexes like normal mutexes.
1616
f672076e
UD
1617 [BZ #4306]
1618 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
1619 Initialize the whole sigevent structure to appease valgrind.
1620
bce20b9a
UD
16212007-04-25 Ulrich Drepper <drepper@redhat.com>
1622
1623 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
1624 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
1625
0c786eac
UD
16262007-04-06 Ulrich Drepper <drepper@redhat.com>
1627
1628 * tst-locale1.c: Avoid warnings.
1629 * tst-locale2.c: Likewise.
1630
e1f0c5bc
UD
16312007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
1632
1633 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1634 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
1635
965cba04
UD
16362007-03-16 Jakub Jelinek <jakub@redhat.com>
1637
1638 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
1639 __extern_always_inline where appropriate.
1640 * sysdeps/pthread/pthread.h: Likewise.
1641
a5ea509b
RH
16422007-03-13 Richard Henderson <rth@redhat.com>
1643
1644 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
1645 separate cfi regions for the two subsections.
1646
00a1430e
UD
16472007-02-25 Ulrich Drepper <drepper@redhat.com>
1648
1649 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
1650 new thread, don't just decrement it.
1651 Patch by Suzuki K P <suzuki@in.ibm.com>.
1652
63a2f305
UD
16532007-02-21 Ulrich Drepper <drepper@redhat.com>
1654
1655 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
1656 PTHFCT_CALL definition.
1657
2484468b
UD
16582007-02-18 Ulrich Drepper <drepper@redhat.com>
1659
1660 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
1661 available, don't use it.
1662
5ed61e0f
UD
16632007-02-09 Jakub Jelinek <jakub@redhat.com>
1664
1665 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1666 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
1667 call into the kernel to delay.
1668
10ccaa5c
UD
16692007-01-18 Ulrich Drepper <drepper@redhat.com>
1670
f8a17855
UD
1671 * tst-initializers1.c: We want to test the initializers as seen
1672 outside of libc, so undefined _LIBC.
1673
10ccaa5c
UD
1674 * pthread_join.c (cleanup): Avoid warning.
1675
ea1533e0
UD
16762007-01-17 Ulrich Drepper <drepper@redhat.com>
1677
1476bce6
UD
1678 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1679 (__lll_timedwait_tid): Add unwind info.
1680
ea1533e0
UD
1681 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
1682 function table, mangle the pointers.
1683 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
1684 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
1685 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
1686 demangle pointers before use.
1687 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
1688 demangle pointer.
1689 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
1690 * sysdeps/pthread/setxid.h: Likewise.
1691
8980796b
UD
16922007-01-12 Ulrich Drepper <drepper@redhat.com>
1693
1694 * tst-rwlock7.c: Show some more information in case of correct
1695 behavior.
1696
a1d87b5d
UD
16972007-01-11 Ulrich Drepper <drepper@redhat.com>
1698
1699 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1700 (lll_futex_timed_wait): Undo part of last change, don't negate
1701 return value.
1702
11bf311e 17032007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 1704
11bf311e
UD
1705 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
1706 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 1707
11bf311e 17082006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 1709
11bf311e 1710 * shlib-versions: Fix sparc64 linux target specification.
a744da90 1711
11bf311e 17122007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 1713
11bf311e
UD
1714 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1715 Adjust include path for pthread_barrier_wait.c move.
fc242bef 1716
11bf311e 17172006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 1718
11bf311e
UD
1719 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
1720 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 1721
11bf311e
UD
17222006-12-06 Jakub Jelinek <jakub@redhat.com>
1723
1724 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
1725 6 argument cancellable syscalls.
1726 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
1727 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
1728 6 argument cancellable syscalls.
1729 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 1730
66f17705
UD
17312006-12-09 Ulrich Drepper <drepper@redhat.com>
1732
1733 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
1734 (__rtld_mrlock_initialize): Add missing closing parenthesis.
1735
11bf311e
UD
17362006-10-30 Jakub Jelinek <jakub@redhat.com>
1737
1738 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
1739 __sync_lock_release instead of __sync_lock_release_si.
1740
536e40e2
UD
17412006-10-29 Jakub Jelinek <jakub@redhat.com>
1742
1743 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
1744 Define.
1745 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
1746 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
1747 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1748 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
1749 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
1750 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
1751 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
1752 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1753 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1754 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1755 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
1756
11bf311e
UD
17572006-10-27 Ulrich Drepper <drepper@redhat.com>
1758
1759 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
1760 * pthread_barrier_wait.c: ...here.
1761 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
1762 * pthread_cond_broadcast.c: ...here.
1763 * sysdeps/pthread/pthread_cond_signal.c: Move to...
1764 * pthread_cond_signal.c: ...here.
1765 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
1766 * pthread_cond_timedwait.c: ...here.
1767 * sysdeps/pthread/pthread_cond_wait.c: Move to...
1768 * pthread_cond_wait.c: ...here.
1769 * sysdeps/pthread/pthread_once.c: Move to...
1770 * pthread_once.c: ...here.
1771 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
1772 * pthread_rwlock_rdlock.c: ...here.
1773 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
1774 * pthread_rwlock_timedrdlock.c: ...here.
1775 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
1776 * pthread_rwlock_timedwrlock.c: ...here.
1777 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
1778 * pthread_rwlock_unlock.c: ...here.
1779 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
1780 * pthread_rwlock_wrlock.c: ...here.
1781 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
1782 * pthread_spin_destroy.c: ...here.
1783 * sysdeps/pthread/pthread_spin_init.c: Move to...
1784 * pthread_spin_init.c: ...here.
1785 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
1786 * pthread_spin_unlock.c: ...here.
1787 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
1788 * pthread_getcpuclockid.c: ...here.
1789
1790 * init.c: USE_TLS support is now always enabled.
1791 * tst-tls5.h: Likewise.
1792 * sysdeps/alpha/tls.h: Likewise.
1793 * sysdeps/i386/tls.h: Likewise.
1794 * sysdeps/ia64/tls.h: Likewise.
1795 * sysdeps/powerpc/tls.h: Likewise.
1796 * sysdeps/s390/tls.h: Likewise.
1797 * sysdeps/sh/tls.h: Likewise.
1798 * sysdeps/sparc/tls.h: Likewise.
1799 * sysdeps/x86_64/tls.h: Likewise.
1800
006a8f6f 18012006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
1802
1803 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
1804 __rtld_mrlock_change): Update oldval if atomic compare and exchange
1805 failed.
1806
1807 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
1808 Define to THREAD_SELF->header.multiple_threads.
1809 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
1810 Likewise.
1811 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
1812 Likewise.
1813 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
1814 (SINGLE_THREAD_P): Likewise.
1815 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
1816 (SINGLE_THREAD_P): Likewise.
1817 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
1818 (SINGLE_THREAD_P): Likewise.
1819 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
1820 (SINGLE_THREAD_P): Likewise.
1821 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
1822 Likewise.
1823 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1824 (SINGLE_THREAD_P): Likewise.
1825 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1826 (SINGLE_THREAD_P): Likewise.
1827 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
1828 Likewise.
1829
11bf311e 18302006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 1831
11bf311e
UD
1832 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
1833 by default rather than 2_3_3.
32c075e1 1834
11bf311e 18352006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 1836
11bf311e
UD
1837 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
1838 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
1839 atomic_* instead of catomic_* macros.
1840
18412006-10-12 Ulrich Drepper <drepper@redhat.com>
1842
1843 [BZ #3285]
1844 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
1845 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
1846 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
1847 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
1848 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
1849 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
1850 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
1851 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1852 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
1853 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
1854 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
1855 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
1856 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
1857
18582006-10-11 Ulrich Drepper <drepper@redhat.com>
1859
1860 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
1861 cancelable syscalls with six parameters.
1862
1863 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
1864 operations instead of atomic_*.
32c075e1 1865
11bf311e 18662006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 1867
11bf311e 1868 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 1869
11bf311e 18702006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 1871
11bf311e
UD
1872 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
1873 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
1874 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
1875 New file.
1876 * pthread_attr_setstack.c: Allow overwriting the version number of the
1877 new symbol.
1878 * pthread_attr_setstacksize.c: Likewise.
1879 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
1880 it.
1881 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
1882 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 1883
457b559e
UD
18842006-09-24 Ulrich Drepper <drepper@redhat.com>
1885
1886 [BZ #3251]
1887 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
1888 Patch by Petr Baudis.
1889
0466106e
UD
18902006-09-18 Jakub Jelinek <jakub@redhat.com>
1891
1892 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
1893
1894 * tst-cancel2.c (tf): Loop as long as something was written.
1895
bd6d3b7d
UD
18962006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1897
1898 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
1899 mutexes wake all mutexes.
1900 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
1901 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
1902 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1903
30aa5785
UD
19042006-09-12 Ulrich Drepper <drepper@redhat.com>
1905
1906 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
1907 to guarantee the thread is always canceled.
1908
2b6a801e
UD
19092006-09-08 Jakub Jelinek <jakub@redhat.com>
1910
1911 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
1912 Include stdlib.h.
1913 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
1914 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
1915 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1916 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1917 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 1918
346e6ad4
UD
19192006-09-08 Ulrich Drepper <drepper@redhat.com>
1920
1921 [BZ #3123]
1922 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
1923 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
1924 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1925 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1926 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
1927 * Makefile (tests): Add tst-cond22.
1928 * tst-cond22.c: New file.
1929
b051fc44
UD
19302006-09-05 Ulrich Drepper <drepper@redhat.com>
1931
1932 [BZ #3124]
1933 * descr.h (struct pthread): Add parent_cancelhandling.
1934 * sysdeps/pthread/createthread.c (create_thread): Pass parent
1935 cancelhandling value to child.
1936 * pthread_create.c (start_thread): If parent thread was canceled
1937 reset the SIGCANCEL mask.
1938 * Makefile (tests): Add tst-cancel25.
1939 * tst-cancel25.c: New file.
1940
d052233c
UD
19412006-09-05 Jakub Jelinek <jakub@redhat.com>
1942 Ulrich Drepper <drepper@redhat.com>
1943
1944 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
1945 counterp if it is already zero.
1946 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
1947
cd248c3f
UD
19482006-03-04 Jakub Jelinek <jakub@redhat.com>
1949 Roland McGrath <roland@redhat.com>
1950
1951 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
1952 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
1953 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
1954 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
1955 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
1956 lll_robust_mutex_timedlock, lll_mutex_unlock,
1957 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
1958 Add _L_*_ symbols around the subsection.
1959 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
1960 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
1961
19622006-03-03 Jakub Jelinek <jakub@redhat.com>
1963 Roland McGrath <roland@redhat.com>
1964
1965 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1966 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
1967 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
1968 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
1969 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
1970 lll_robust_mutex_timedlock, lll_mutex_unlock,
1971 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
1972 Add _L_*_ symbols around the subsection.
1973 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
1974 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
1975
b80770b2
UD
19762006-08-31 Ulrich Drepper <drepper@redhat.com>
1977
1978 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
1979 change because it can disturb too much existing code. If real hard
1980 reader preference is needed we'll introduce another type.
1981 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1982 (pthread_rwlock_timedwrlock): Likewise.
1983 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
1984 Likewise.
1985
bee2df0b
UD
19862006-08-30 Ulrich Drepper <drepper@redhat.com>
1987
1988 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
1989 reader preference.
1990 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1991 (pthread_rwlock_timedwrlock): Likewise.
1992 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
1993 Likewise.
1994
d678ebc1
UD
19952006-08-25 Jakub Jelinek <jakub@redhat.com>
1996
1997 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
1998 Only define ifdef SHARED.
1999
ba408f84
UD
20002006-08-23 Ulrich Drepper <drepper@redhat.com>
2001
2002 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2003 (free_stacks): ...here.
2004 (__free_stack_cache): New function.
2005 * pthreadP.h: Declare __free_stack_cache.
2006 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2007 ptr_freeres.
2008 * init.c (pthread_functions): Initialize ptr_freeres.
2009 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2010 New freeres function.
2011
376e973a
UD
20122006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2013
2014 [BZ #3018]
2015 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2016
2b34af01
UD
20172006-08-20 Ulrich Drepper <drepper@redhat.com>
2018
2019 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2020 _XOPEN_REALTIME_THREADS.
2021
89c85f87
UD
20222006-08-15 Jakub Jelinek <jakub@redhat.com>
2023
2024 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2025 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2026 HAVE_CLOCK_GETTIME_VSYSCALL.
2027 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2028
f17efcb4
UD
20292006-08-14 Jakub Jelinek <jakub@redhat.com>
2030
2031 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2032 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2033 * descr.h (struct priority_protection_data): New type.
2034 (struct pthread): Add tpp field.
2035 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2036 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2037 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2038 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2039 TPP mutexes.
2040 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2041 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2042 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2043 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2044 * tpp.c: New file.
2045 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2046 boosted by TPP.
2047 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2048 * pthread_mutexattr_getprioceiling.c
2049 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2050 in the SCHED_FIFO priority range.
2051 * pthread_mutexattr_setprioceiling.c
2052 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2053 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2054 if mutex is not TPP. Ceiling is now in __data.__lock.
2055 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2056 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2057 is now in __data.__lock. Add locking.
2058 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2059 * Makefile (libpthread-routines): Add tpp.
2060 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2061 * tst-tpp.h: New file.
2062 * tst-mutexpp1.c: New file.
2063 * tst-mutexpp6.c: New file.
2064 * tst-mutexpp10.c: New file.
2065 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2066 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2067
22bb134c
UD
20682006-08-12 Ulrich Drepper <drepper@redhat.com>
2069
2070 [BZ #2843]
2071 * pthread_join.c (pthread_join): Account for self being canceled
2072 when checking for deadlocks.
2073 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2074 (tf1): Don't print anything after pthread_join returns, this would be
2075 another cancellation point.
2076 (tf2): Likewise.
2077 * tst-join6.c: New file.
2078 * Makefile (tests): Add tst-join6.
2079
f1762c0c
UD
20802006-08-03 Ulrich Drepper <drepper@redhat.com>
2081
9c06eb66
UD
2082 [BZ #2892]
2083 * pthread_setspecific.c (__pthread_setspecific): Check
2084 out-of-range index before checking for unused key.
2085
f1762c0c
UD
2086 * sysdeps/pthread/gai_misc.h: New file.
2087
7bb1b2c9
UD
20882006-08-01 Ulrich Drepper <drepper@redhat.com>
2089
2090 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2091 file. Don't use sysctl.
2092 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2093 overwrite the file if this is likely not true.
2094
b06e7e9a
UD
20952006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2096
2097 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2098 * Makefile (tests): Add tst-getpid3.
2099 * tst-getpid3.c: New file.
2100
b894c2ea
RM
21012006-07-30 Roland McGrath <roland@redhat.com>
2102
2103 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2104
2105 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2106 (pause_not_cancel): New macro.
2107 (nanosleep_not_cancel): New macro.
2108 (sigsuspend_not_cancel): New macro.
2109 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2110 nanosleep_not_cancel macro from <not-cancel.h>.
2111 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2112 macro from <not-cancel.h>.
2113
df47504c
UD
21142006-07-28 Ulrich Drepper <drepper@redhat.com>
2115 Jakub Jelinek <jakub@redhat.com>
2116
2117 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2118 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2119 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2120 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2121 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2122 * pthread_mutex_lock.c: Likewise.
2123 * pthread_mutex_timedlock.c: Likewise.
2124 * pthread_mutex_trylock.c: Likewise.
2125 * pthread_mutex_unlock.c: Likewise.
2126 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2127 all mutexes.
2128 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2129 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2130 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2131 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2132 pthread-pi-defines.sym.
2133 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2134 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2135 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2136 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2137 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2138 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2139 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2140 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2141 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2142 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2143 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2144 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2145 * tst-mutex2.c: Likewise.
2146 * tst-mutex3.c: Likewise.
2147 * tst-mutex4.c: Likewise.
2148 * tst-mutex5.c: Likewise.
2149 * tst-mutex6.c: Likewise.
2150 * tst-mutex7.c: Likewise.
2151 * tst-mutex7a.c: Likewise.
2152 * tst-mutex8.c: Likewise.
2153 * tst-mutex9.c: Likewise.
2154 * tst-robust1.c: Likewise.
2155 * tst-robust7.c: Likewise.
2156 * tst-robust8.c: Likewise.
2157 * tst-mutexpi1.c: New file.
2158 * tst-mutexpi2.c: New file.
2159 * tst-mutexpi3.c: New file.
2160 * tst-mutexpi4.c: New file.
2161 * tst-mutexpi5.c: New file.
2162 * tst-mutexpi6.c: New file.
2163 * tst-mutexpi7.c: New file.
2164 * tst-mutexpi7a.c: New file.
2165 * tst-mutexpi8.c: New file.
2166 * tst-mutexpi9.c: New file.
2167 * tst-robust1.c: New file.
2168 * tst-robust2.c: New file.
2169 * tst-robust3.c: New file.
2170 * tst-robust4.c: New file.
2171 * tst-robust5.c: New file.
2172 * tst-robust6.c: New file.
2173 * tst-robust7.c: New file.
2174 * tst-robust8.c: New file.
2175 * Makefile (tests): Add the new tests.
2176
2177 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2178 * pthread_mutex_destroy.c: Remove unneeded label.
2179
f3be81a9
UD
21802006-07-01 Ulrich Drepper <drepper@redhat.com>
2181
2182 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2183 computations to compile time.
2184
c26ca5e1
UD
21852006-06-04 Ulrich Drepper <drepper@redhat.com>
2186
2187 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2188
6f8a7dff
UD
21892006-05-15 Ulrich Drepper <drepper@redhat.com>
2190
c26ca5e1 2191 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2192
3d237e42
UD
21932006-05-11 Ulrich Drepper <drepper@redhat.com>
2194
04974d63
UD
2195 * pthread_key_create.c (__pthread_key_create): Do away with
2196 __pthread_keys_lock.
2197
2198 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2199 (__kernel_cpumask_size): Mark as hidden.
2200 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2201
3d237e42
UD
2202 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2203 * semaphoreP.h (__sem_mappings_lock): Likewise.
2204
790fc6e4
UD
22052006-05-10 Ulrich Drepper <drepper@redhat.com>
2206
2207 * pthread_atfork.c: Mark __dso_handle as hidden.
2208
be434a72
UD
22092006-05-09 Ulrich Drepper <drepper@redhat.com>
2210
2211 [BZ #2644]
2212 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2213 the reload problem. Change the one path in pthread_cancel_init
2214 which causes the problem. Force gcc to reload. Simplify callers.
2215 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2216 (_Unwind_GetBSP): Undo last patch.
2217
3142b1ac
UD
22182006-05-07 Ulrich Drepper <drepper@redhat.com>
2219
bf3635d3
UD
2220 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2221 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2222
2223 [BZ #2644]
2224 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2225 pointers are reloaded after pthread_cancel_init calls.
2226
27488789
UD
22272006-05-01 Ulrich Drepper <drepper@redhat.com>
2228
2229 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2230 __always_inline.
2231
a6375d11
UD
22322006-04-27 Ulrich Drepper <drepper@redhat.com>
2233
2234 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2235 Allocate new object which is passed to timer_sigev_thread so that
2236 the timer can be deleted before the new thread is scheduled.
2237
16a1d952
RM
22382006-04-26 Roland McGrath <roland@redhat.com>
2239
2240 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2241
7960f2a7
UD
22422006-04-08 Ulrich Drepper <drepper@redhat.com>
2243
ab9a9ff8
UD
2244 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2245 suffix for conditional jumps.
2246 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2247 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2248 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2249 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2250 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2251 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2252
7960f2a7
UD
2253 * init.c (sigcancel_handler): Compare with correct PID even if the
2254 thread is in the middle of a fork call.
2255 (sighandler_setxid): Likewise.
2256 Reported by Suzuki K P <suzuki@in.ibm.com> .
2257
2035d91c
UD
22582006-04-07 Jakub Jelinek <jakub@redhat.com>
2259
2260 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2261
0292b0dd
UD
22622006-04-06 Ulrich Drepper <drepper@redhat.com>
2263
2264 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2265 fails [Coverity CID 105].
2266
6738b3c0
UD
22672006-04-05 Ulrich Drepper <drepper@redhat.com>
2268
2269 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2270
359157a5
RM
22712006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2272
2273 [BZ #2505]
2274 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2275 Define __lll_rel_instr using lwsync.
2276
cd277b2d
UD
22772006-03-27 Ulrich Drepper <drepper@redhat.com>
2278
2279 * allocatestack.c (allocate_stack): Always initialize robust_head.
2280 * descr.h: Define struct robust_list_head.
2281 (struct pthread): Use robust_list_head in robust mutex list definition.
2282 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2283 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2284 (__pthread_initialize_minimal_internal): Register robust_list with
2285 the kernel.
2286 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2287 Declare __set_robust_list_avail.
2288 * pthread_create.c (start_thread): Register robust_list of new thread.
2289 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2290 waiters.
2291 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2292 number of users, it's unreliable.
2293 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2294 set_robust_list syscall is available.
2295 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2296 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2297 Set robust_head.list_op_pending before trying to lock a robust mutex.
2298 * pthread_mutex_timedlock.c: Likewise.
2299 * pthread_mutex_trylock.c: Likewise.
2300 * pthread_mutex_unlock.c: Likewise for unlocking.
2301 * Makefile (tests): Add tst-robust8.
2302 * tst-robust8.c: New file.
2303
facac085
UD
23042006-03-08 Andreas Schwab <schwab@suse.de>
2305
2306 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2307 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2308
7ccbe1a1
RM
23092006-03-05 Roland McGrath <roland@redhat.com>
2310
2311 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2312 and $config_os doesn't match *linux*.
2313
043cee37
RM
23142006-03-05 David S. Miller <davem@sunset.davemloft.net>
2315
2316 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2317 Use __syscall_error.
2318 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2319 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2320 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2321 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2322 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2323 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2324
88bce79e
UD
23252006-03-02 Ulrich Drepper <drepper@redhat.com>
2326
2327 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2328
672ec465
UD
23292006-03-01 Ulrich Drepper <drepper@redhat.com>
2330
2331 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2332 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2333 mutex.
2334 (__lll_robust_timedlock_wait): Likewise.
2335 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2336 (__lll_robust_lock_wait): Likewise.
2337 (__lll_robust_timedlock_wait): Likewise.
2338 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2339 (__lll_robust_lock_wait): Likewise.
2340 (__lll_robust_timedlock_wait): Likewise.
2341
c4a4875d
RM
23422006-03-01 Jakub Jelinek <jakub@redhat.com>
2343
2344 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2345 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2346 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2347 lll_robust_mutex_unlock): Define.
2348 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2349
3192fd8e
RM
23502006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2351
2352 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2353 instead of <clone.S>.
2354
14d44b19
RM
23552006-02-27 Jakub Jelinek <jakub@redhat.com>
2356
2357 * Makefile (libpthread-routines): Add
2358 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2359 and pthread_mutex_[sg]etprioceiling.
2360 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2361 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2362 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2363 pthread_mutex_setprioceiling.
2364 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2365 PTHREAD_PRIO_PROTECT): New enum values.
2366 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2367 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2368 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2369 prototypes.
2370 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2371 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2372 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2373 Define.
2374 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2375 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2376 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2377 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2378 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2379 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2380 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2381 protocol mutexes.
2382 * pthread_mutex_getprioceiling.c: New file.
2383 * pthread_mutex_setprioceiling.c: New file.
2384 * pthread_mutexattr_getprioceiling.c: New file.
2385 * pthread_mutexattr_setprioceiling.c: New file.
2386 * pthread_mutexattr_getprotocol.c: New file.
2387 * pthread_mutexattr_setprotocol.c: New file.
2388
62f6b9b2
RM
23892006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2390
2391 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2392
e0a3ed4f
RM
23932006-02-27 Roland McGrath <roland@redhat.com>
2394
2395 * sysdeps/pthread/Subdirs: List nptl here too.
2396 * configure (libc_add_on_canonical): New variable.
2397
2398 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2399
2400 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2401 self to get main source tree's file.
2402 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2403 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2404 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2405 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2406 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2407 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2408 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2409 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2410 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2411 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2412 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2413 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2414 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2415
2416 * Makefile: Use $(sysdirs) in vpath directive.
2417
2418 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2419 (CPPFLAGS-timer_routines.c): Likewise.
2420
2421 * Makeconfig (includes): Variable removed.
2422
84cfa284
RM
24232006-02-26 Roland McGrath <roland@redhat.com>
2424
2425 * sysdeps/generic/pt-raise.c: Moved to ...
2426 * pt-raise.c: ... here.
2427 * sysdeps/generic/lowlevellock.h: Moved to ...
2428 * lowlevellock.h: ... here.
2429
c5132ca1
RM
24302006-02-23 Roland McGrath <roland@redhat.com>
2431
2432 * descr.h (struct pthread): Add final member `end_padding'.
2433 (PTHREAD_STRUCT_END_PADDING): Use it.
2434
24352006-02-20 Roland McGrath <roland@redhat.com>
2436
2437 * sysdeps/mips: Directory removed, saved in ports repository.
2438 * sysdeps/unix/sysv/linux/mips: Likewise.
2439
a93317a1
UD
24402006-02-18 Ulrich Drepper <drepper@redhat.com>
2441
2442 * tst-robust1.c: Add second mutex to check that the mutex list is
2443 handled correctly.
2444
f1740bc4
UD
24452006-02-17 Jakub Jelinek <jakub@redhat.com>
2446
2447 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2448 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2449 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2450 lll_robust_mutex_unlock): New macros.
2451 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2452 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2453 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2454 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2455 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2456
a7245bf5
UD
24572006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2458
2459 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2460 definitions.
2461 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2462
49bfc1fe
UD
24632006-02-17 Ulrich Drepper <drepper@redhat.com>
2464
2465 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2466 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2467 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2468 (lll_robust_mutex_unlock): Likewise.
2469
56e987ac
UD
24702006-02-13 Jakub Jelinek <jakub@redhat.com>
2471
2472 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2473 Set robust_list.__next rather than robust_list.
2474 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2475 (__pthread_list_t): New typedef.
2476 (pthread_mutex_t): Replace __next and __prev fields with __list.
2477 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2478 (__pthread_list_t): New typedef.
2479 (pthread_mutex_t): Replace __next and __prev fields with __list.
2480 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2481 (__pthread_list_t, __pthread_slist_t): New typedefs.
2482 (pthread_mutex_t): Replace __next and __prev fields with __list.
2483 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2484 (__pthread_list_t, __pthread_slist_t): New typedefs.
2485 (pthread_mutex_t): Replace __next and __prev fields with __list.
2486 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2487 (__pthread_list_t, __pthread_slist_t): New typedefs.
2488 (pthread_mutex_t): Replace __next and __prev fields with __list.
2489 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2490 (__pthread_slist_t): New typedef.
2491 (pthread_mutex_t): Replace __next field with __list.
2492
683040c3
UD
24932006-02-15 Ulrich Drepper <drepper@redhat.com>
2494
25bc77e6 2495 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2496 PTHREAD_MUTEX_OWNERDEAD.
2497 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2498 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2499 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2500 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2501 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2502 to PTHREAD_MUTEX_INCONSISTENT.
2503 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2504 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2505 * pthread_mutex_trylock.c: Likewise.
2506 * pthread_mutex_timedlock.c: Likewise.
2507 * pthread_mutex_unlock.c: Likewise.
2508 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2509 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2510 lowlevelrobustlock.sym.
2511 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2512 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2513 definitions.
2514 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2515 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2516 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2517 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2518 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2519
bbf209a4
UD
25202006-02-12 Ulrich Drepper <drepper@redhat.com>
2521
b007ce7c
UD
2522 * allocatestack.c (allocate_stack): Initialize robust_list.
2523 * init.c (__pthread_initialize_minimal_internal): Likewise.
2524 * descr.h (struct xid_command): Pretty printing.
2525 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2526 robust_list. Adjust macros.
2527 * pthread_create.c (start_thread): Adjust robust_list handling.
2528 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2529 but the owner for all robust mutex types.
2530 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2531 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2532 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2533 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2534
bbf209a4
UD
2535 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2536 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2537
b576fca1
UD
25382006-02-08 Jakub Jelinek <jakub@redhat.com>
2539
2540 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2541 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2542
a6df7387
UD
25432006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2544
2545 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2546 Return status.
2547 (lll_futex_timed_wait): Define.
2548
7c65e900
UD
25492006-01-19 Ulrich Drepper <drepper@redhat.com>
2550
2551 * tst-cancel4.c: Test ppoll.
2552
5f9f21e8
AJ
25532006-01-18 Andreas Jaeger <aj@suse.de>
2554
cf407dfb 2555 [BZ #2167]
5f9f21e8
AJ
2556 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2557 (pthread_mutex_t): Follow changes for other archs. Based on patch
2558 by Jim Gifford <patches@jg555.com>.
2559
251278c6
UD
25602006-01-13 Richard Henderson <rth@redhat.com>
2561
2562 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2563
de59a291
RM
25642006-01-10 Roland McGrath <roland@redhat.com>
2565
2566 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
2567 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2568 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2569 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2570 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2571 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2572 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2573 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2574 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 2575 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 2576
931786ee
RM
25772006-01-09 Roland McGrath <roland@redhat.com>
2578
5d42c8c3
RM
2579 * tst-initializers1-c89.c: New file.
2580 * tst-initializers1-c99.c: New file.
2581 * tst-initializers1-gnu89.c: New file.
2582 * tst-initializers1-gnu99.c: New file.
2583 * Makefile (tests): Add them.
2584 (CFLAGS-tst-initializers1-c89.c): New variable.
2585 (CFLAGS-tst-initializers1-c99.c): New variable.
2586 (CFLAGS-tst-initializers1-gnu89.c): New variable.
2587 (CFLAGS-tst-initializers1-gnu99.c): New variable.
2588
931786ee
RM
2589 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2590 Use __extension__ on anonymous union definition.
2591 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2592 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2593 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2594 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 2595 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 2596
8dd18431
RM
25972006-01-08 Jakub Jelinek <jakub@redhat.com>
2598
2599 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2600 Don't give the union a name because it changes the mangled name.
2601 Instead name the struct for __data.
2602 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
2603 Likewise.
2604 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
2605 Likewise.
2606
ae11e412
UD
26072006-01-09 Jakub Jelinek <jakub@redhat.com>
2608
2609 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
2610 stack bias to mc_ftp field.
2611
c6885aa1
UD
26122006-01-07 Ulrich Drepper <drepper@redhat.com>
2613
2614 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 2615 being too clever and reloading the futex value where it shouldn't.
c6885aa1 2616
ae4ad00a
UD
26172006-01-06 Ulrich Drepper <drepper@redhat.com>
2618
2619 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
2620 correct type.
2621
ced368f7
UD
26222006-01-06 Jakub Jelinek <jakub@redhat.com>
2623
2624 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
2625 Add cfi directives.
2626
d804f5df
UD
26272006-01-06 Ulrich Drepper <drepper@redhat.com>
2628
cbbbb188 2629 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
2630 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
2631 rename in tcbhead_t.
2632
d804f5df
UD
2633 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2634 Don't give the union a name because it changes the mangled name.
2635 Instead name the struct for __data.
2636 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2637 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2638 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2639 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2640 * pthread_create.c (start_thread): Adjust robust mutex free loop.
2641 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
2642
679d83ba
UD
26432006-01-05 Ulrich Drepper <drepper@redhat.com>
2644
2645 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2646 Return status.
2647 (lll_futex_timed_wait): Define.
2648 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2649 * sysdeps/pthread/aio_misc.h: New file.
2650
06dc5bf3
RM
26512006-01-03 Joseph S. Myers <joseph@codesourcery.com>
2652
2653 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
2654
9759bbf1
UD
26552006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
2656
2657 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2658 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
2659 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2660
db59b28b
UD
26612006-01-04 Ulrich Drepper <drepper@redhat.com>
2662
2663 * tst-cancel24.cc: Use C headers instead of C++ headers.
2664
b01fe5f7
UD
26652006-01-03 Jakub Jelinek <jakub@redhat.com>
2666
2667 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
2668 sparc-linux configured glibc.
2669 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
2670 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
2671 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
2672 atomic_compare_and_exchange_val_24_acq instead of
2673 atomic_compare_and_exchange_val_acq.
2674 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
2675 instead of atomic_exchange_rel.
2676 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
2677 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
2678 file.
2679 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
2680 file.
2681 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
2682 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
2683 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
2684 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
2685 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
2686 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
2687 New file.
2688 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2689 New file.
2690 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
2691 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
2692 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
2693 file.
2694 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
2695 file.
2696 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
2697
35c2fd59
UD
26982006-01-03 Ulrich Drepper <drepper@redhat.com>
2699
2700 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
2701 mutex initializers.
2702
305bb37e
UD
27032006-01-02 Jakub Jelinek <jakub@redhat.com>
2704
2705 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
2706 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2707 THREAD_COPY_POINTER_GUARD): Define.
2708 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
2709 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
2710
cc792128
UD
27112006-01-01 Ulrich Drepper <drepper@redhat.com>
2712
2713 * version.c: Update copyright year.
2714
db0a00d3
UD
27152005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2716
2717 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
2718 .eh_frame section, use cfi_* directives.
2719 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
2720
b36205c4
UD
27212005-12-30 Ulrich Drepper <drepper@redhat.com>
2722
2723 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
2724 now.
2725
8b4f1598
UD
27262005-12-29 Ulrich Drepper <drepper@redhat.com>
2727
2728 * sysdeps/pthread/sigaction.c: Removed.
2729 * sigaction.c: New file.
2730 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
2731
fec5592d
UD
27322005-12-28 Ulrich Drepper <drepper@redhat.com>
2733
2734 * Makefile (tests): Add tst-signal7.
2735 * tst-signal7.c: New file.
2736
db169ed5
RM
27372005-12-27 Roland McGrath <roland@redhat.com>
2738
2739 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
2740 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
2741 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
2742 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2743 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2744 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2745 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2746 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2747 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2748 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2749 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
2750
bfffffae
UD
27512005-12-27 Jakub Jelinek <jakub@redhat.com>
2752
2753 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
2754 and __prev field to pthread_mutex_t.
2755 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2756 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2757 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2758 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2759 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
2760 to pthread_mutex_t.
2761
1bcfb5a5
UD
27622005-12-26 Ulrich Drepper <drepper@redhat.com>
2763
2764 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
2765 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
2766 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
2767 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
2768 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
2769 and PTHREAD_MUTEXATTR_FLAG_BITS.
2770 * descr.h (struct pthread): Add robust_list field and define
2771 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
2772 * pthread_mutexattr_getrobust.c: New file.
2773 * pthread_mutexattr_setrobust.c: New file.
2774 * pthread_mutex_consistent.c: New file.
2775 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
2776 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
2777 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
2778 Adjust pthread_mutex_t initializers.
2779 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
2780 field to pthread_mutex_t.
2781 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
2782 and __prev field to pthread_mutex_t.
2783 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
2784 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
2785 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
2786 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
2787 * pthread_mutexattr_gettype.c: Likewise.
2788 * pthread_mutexattr_setpshared.c: Likewise.
2789 * pthread_mutexattr_settype.c: Likewise.
2790 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
2791 Initialize mutex kind according to robust flag.
2792 * pthread_mutex_lock.c: Implement local robust mutex.
2793 * pthread_mutex_timedlock.c: Likewise.
2794 * pthread_mutex_trylock.c: Likewise.
2795 * pthread_mutex_unlock.c: Likewise.
2796 * pthread_create.c (start_thread): Mark robust mutexes which remained
2797 locked as dead.
2798 * tst-robust1.c: New file.
2799 * tst-robust2.c: New file.
2800 * tst-robust3.c: New file.
2801 * tst-robust4.c: New file.
2802 * tst-robust5.c: New file.
2803 * tst-robust6.c: New file.
2804 * tst-robust7.c: New file.
2805 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
2806 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
2807 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
2808 tst-robust5, tst-robust6, and tst-robust7.
2809
2810 * tst-typesizes.c: New file.
2811 * Makefile (tests): Add tst-typesizes.
2812
2813 * tst-once3.c: More debug output.
2814
9333ed0d
UD
28152005-12-24 Ulrich Drepper <drepper@redhat.com>
2816
d4d138a4
UD
2817 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
2818 missing after last change.
2819
bfffffae 2820 * version.c: Update copyright year.
9333ed0d 2821
dcc73a8d
UD
28222005-12-23 Ulrich Drepper <drepper@redhat.com>
2823
2824 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
2825 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
2826 * pthread_mutex_trylock.c: Likewise.
2827 * pthread_mutex_timedlock.c: Likewise.
2828 * pthread_mutex_unlock.c: Likewise.
2829
879f3ca6
RM
28302005-12-22 Roland McGrath <roland@redhat.com>
2831
2832 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
2833 so that #include_next's search location is not reset to the -I..
2834 directory where <nptl/...> can be found.
2835
077a0da7
UD
28362005-12-22 Ulrich Drepper <drepper@redhat.com>
2837
2838 [BZ #1913]
2839 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
2840 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
2841 * tst-cancel24.cc: New file.
2842 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 2843
8dea90aa
RM
28442005-12-21 Roland McGrath <roland@redhat.com>
2845
2846 * libc-cancellation.c: Use <> rather than "" #includes.
2847 * pt-cleanup.c: Likewise.
2848 * pthread_create.c: Likewise.
2849 * pthread_join.c: Likewise.
2850 * pthread_timedjoin.c: Likewise.
2851 * pthread_tryjoin.c: Likewise.
2852 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
2853 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
2854 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
2855 * unwind.c: Likewise.
2856
8da21f96
UD
28572005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2858
2859 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
2860 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
2861 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2862 THREAD_COPY_POINTER_GUARD): Define.
2863
00c2b3b9
UD
28642005-12-19 Jakub Jelinek <jakub@redhat.com>
2865
2866 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
2867 rather than one.
2868 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2869 THREAD_COPY_POINTER_GUARD): Define.
2870 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
2871 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
2872 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
2873 THREAD_COPY_POINTER_GUARD): Define.
2874 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
2875 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
2876 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
2877 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
2878 Use PTR_DEMANGLE for B0 if defined.
2879
827b7087
UD
28802005-12-17 Ulrich Drepper <drepper@redhat.com>
2881
2882 * pthread_create.c (__pthread_create_2_1): Use
2883 THREAD_COPY_POINTER_GUARD if available.
2884 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
2885 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
2886 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
2887 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
2888 * sysdeps/x86_64/tls.h: Likewise.
2889
2826ac7e
RM
28902005-12-15 Roland McGrath <roland@redhat.com>
2891
2892 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
2893
b6ab06ce
UD
28942005-12-13 Ulrich Drepper <drepper@redhat.com>
2895
2896 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
2897 sysdeps/generic.
2898 * errno-loc.c: New file.
2899
f0d1a3b5
RM
29002005-12-12 Roland McGrath <roland@redhat.com>
2901
2902 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
2903 adjustments before choosing stack size. Update minimum stack size
2904 calculation to match allocate_stack change.
2905
db13ddbc
UD
29062005-12-12 Ulrich Drepper <drepper@redhat.com>
2907
2908 * allocatestack.c (allocate_stack): Don't demand that there is an
2909 additional full page available on the stack beside guard, TLS, the
2910 minimum stack.
2911
088f460f
UD
29122005-11-24 Ulrich Drepper <drepper@redhat.com>
2913
2914 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
2915 (__cleanup_fct_attribute): Use __regparm__ not regparm.
2916
2917 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
2918 compiling 32-bit code we must define __cleanup_fct_attribute.
2919
16feadf2
UD
2920005-11-24 Jakub Jelinek <jakub@redhat.com>
2921
2922 [BZ #1920]
2923 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
2924 __attribute__ instead of __attribute.
2925 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
2926 (__cleanup_fct_attribute): Likewise.
2927
e6e493bb
UD
29282005-11-17 Jakub Jelinek <jakub@redhat.com>
2929
2930 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
2931 a write barrier before writing libgcc_s_getcfa.
2932
8e635611
UD
29332005-11-06 Ulrich Drepper <drepper@redhat.com>
2934
2935 * sysdeps/unix/sysv/linux/configure: Removed.
2936
ce33ee7c
UD
29372005-11-05 Ulrich Drepper <drepper@redhat.com>
2938
2939 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
2940 optional init_array/fini_array support.
2941
20d511e0
RM
29422005-10-24 Roland McGrath <roland@redhat.com>
2943
2944 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
2945 versioned_symbol use.
2946
fe60d146
RM
29472005-10-16 Roland McGrath <roland@redhat.com>
2948
2949 * init.c (__pthread_initialize_minimal_internal): Even when using a
2950 compile-time default stack size, apply the minimum that allocate_stack
2951 will require, and round up to page size.
2952
0faa1cf5
RM
29532005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
2954
2955 * Makefile ($(test-modules)): Remove static pattern rule.
2956
f9126cc2
UD
29572005-10-14 Jakub Jelinek <jakub@redhat.com>
2958 Ulrich Drepper <drepper@redhat.com>
2959
2960 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
2961 alignment in callback function.
2962 * Makefile: Add rules to build and run tst-align3.
2963 * tst-align3.c: New file.
2964
015a5d22
RM
29652005-10-03 Jakub Jelinek <jakub@redhat.com>
2966
2967 * allocatestack.c (setxid_signal_thread): Add
2968 INTERNAL_SYSCALL_DECL (err).
2969
b71ce910
UD
29702005-10-02 Jakub Jelinek <jakub@redhat.com>
2971
2972 * allocatestack.c (setxid_signal_thread): Need to use
2973 atomic_compare_and_exchange_bool_acq.
2974
dff9a7a1
UD
29752005-10-01 Ulrich Drepper <drepper@redhat.com>
2976 Jakub Jelinek <jakub@redhat.com>
2977
2978 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
2979 CANCEL_RESTMASK.
2980 (struct pthread): Move specific_used field to avoid padding.
2981 Add setxid_futex field.
2982 * init.c (sighandler_setxid): Reset setxid flag and release the
2983 setxid futex.
2984 * allocatestack.c (setxid_signal_thread): New function. Broken
2985 out of the bodies of the two loops in __nptl_setxid. For undetached
2986 threads check whether they are exiting and if yes, don't send a signal.
2987 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
2988 * pthread_create.c (start_thread): For undetached threads, check
2989 whether setxid bit is set. If yes, wait until signal has been
2990 processed.
2991
2992 * allocatestack.c (STACK_VARIABLES): Initialize them.
2993 * pthread_create.c (__pthread_create_2_1): Initialize pd.
2994
560b4709
UD
29952004-09-02 Jakub Jelinek <jakub@redhat.com>
2996
2997 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
2998 waiters, awake all waiters on the associated mutex.
2999
5eac4760
RM
30002005-09-22 Roland McGrath <roland@redhat.com>
3001
3002 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3003 ../sysdeps/x86_64/hp-timing.h).
3004
a3615024
UD
30052005-08-29 Jakub Jelinek <jakub@redhat.com>
3006
3007 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3008 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3009 (lll_futex_wake_unlock): Define.
3010 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3011 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3012 (lll_futex_wake_unlock): Define.
3013 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3014 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3015 (lll_futex_wake_unlock): Define.
3016 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3017 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3018 (lll_futex_wake_unlock): Define.
3019 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3020 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3021 (lll_futex_wake_unlock): Define.
3022 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3023 lll_futex_wake_unlock.
3024 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3025 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3026 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3027 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3028 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3029 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3030
bf017034
UD
30312005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3032
3033 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3034 Fix typo in register name.
3035
fd4af664
UD
30362005-08-23 Ulrich Drepper <drepper@redhat.com>
3037
8558d715
UD
3038 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3039 Use __sigfillset. Document that sigfillset does the right thing wrt
3040 to SIGSETXID.
fd4af664 3041
3fd1bc67
UD
30422005-07-11 Jakub Jelinek <jakub@redhat.com>
3043
44d75caf 3044 [BZ #1102]
3fd1bc67
UD
3045 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3046 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3047 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3048 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3049 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3050 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3051 in the structure.
3052 * Makefile (tests): Add tst-initializers1.
3053 (CFLAGS-tst-initializers1.c): Set.
3054 * tst-initializers1.c: New test.
3055
553185e2
UD
30562005-07-11 Jakub Jelinek <jakub@redhat.com>
3057
3058 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3059 Make sure __flags are located at offset 48 from the start of the
3060 structure.
3061
8df08cb2
RM
30622005-07-02 Roland McGrath <roland@redhat.com>
3063
3064 * Makeconfig: Comment fix.
3065
253eb3a0
UD
30662005-07-05 Jakub Jelinek <jakub@redhat.com>
3067
3068 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3069 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3070 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3071 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3072 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3073 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3074 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3075 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3076 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3077 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3078
bb6e8ca3
UD
30792005-06-25 Jakub Jelinek <jakub@redhat.com>
3080
3081 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3082 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3083 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3084 fields.
3085 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3086 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3087 field. Put in sysinfo field unconditionally.
3088 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3089 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3090 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3091 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3092 fields.
3093 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3094 * pthread_create.c (__pthread_create_2_1): Use
3095 THREAD_COPY_STACK_GUARD macro.
3096 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3097 tests.
3098 * tst-stackguard1.c: New file.
3099 * tst-stackguard1-static.c: New file.
3100
99c7f870
UD
31012005-06-14 Alan Modra <amodra@bigpond.net.au>
3102
3103 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3104 Invoke CGOTSETUP and CGOTRESTORE.
3105 (CGOTSETUP, CGOTRESTORE): Define.
3106
8074c5c5
RM
31072005-05-29 Richard Henderson <rth@redhat.com>
3108
3109 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3110 (tf_write, tf_writev): Use it.
3111 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3112 the system minimum.
3113
c179df4e
UD
31142005-05-23 Jakub Jelinek <jakub@redhat.com>
3115
3116 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3117 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3118 __librt_*_asynccancel@local.
3119
b0e196a4
UD
31202005-05-17 Alan Modra <amodra@bigpond.net.au>
3121
3122 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3123 all occurrences of JUMPTARGET. Instead append @local to labels.
3124
f7d78e18
UD
31252005-05-20 Jakub Jelinek <jakub@redhat.com>
3126
3127 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3128 size/alignment of struct pthread rather than tcbhead_t.
3129 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3130 Likewise.
3131 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3132 Likewise.
3133 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3134 Likewise.
3135
363dd976
UD
31362005-05-19 Richard Henderson <rth@redhat.com>
3137
3138 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3139 __sync_val_compare_and_swap, not explicit _si variant.
3140 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3141
1ad9da69
UD
31422005-05-03 Ulrich Drepper <drepper@redhat.com>
3143
3144 [BZ #915]
3145 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3146
5085cd1f
UD
31472005-05-03 Jakub Jelinek <jakub@redhat.com>
3148
3149 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3150 .eh_frame section, use cfi_* directives.
3151
ad529081
UD
31522005-04-27 Jakub Jelinek <jakub@redhat.com>
3153
3154 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3155 of "" includes.
3156
dea99685
UD
31572005-04-27 Ulrich Drepper <drepper@redhat.com>
3158
c06aad09 3159 [BZ #1075]
dea99685
UD
3160 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3161 aio_write blocks.
3162
84060bad
RM
31632005-04-27 Roland McGrath <roland@redhat.com>
3164
5e2d8ac8
RM
3165 * Makefile (tests): Remove tst-clock2.
3166
84060bad
RM
3167 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3168 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3169 translating to the kernel clockid_t for our own process/thread clock.
3170
3171 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3172
4a035b9d
RM
31732005-04-15 Jakub Jelinek <jakub@redhat.com>
3174
3175 * old_pthread_cond_init.c: Include <errno.h>.
3176 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3177 process shared or uses clock other than CLOCK_REALTIME.
3178 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3179
edac0e8f
UD
31802005-04-13 David S. Miller <davem@davemloft.net>
3181
3182 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3183 * sysdeps/sparc/sparc64/clone.S: New file.
3184
613d8d52
RM
31852005-04-05 Jakub Jelinek <jakub@redhat.com>
3186
44d75caf 3187 [BZ #1102]
613d8d52
RM
3188 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3189 __inline instead of inline.
3190 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3191
ee618985
UD
31922005-03-31 Jakub Jelinek <jakub@redhat.com>
3193
3194 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3195 functionally equivalent, but shorter instructions.
3196 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3197 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3198 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3199 Likewise.
3200 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3201 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3202 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3203 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3204 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3205 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3206 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3207 Likewise.
3208 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3209 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3210 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3211 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3212 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3213
f850220b
AJ
32142005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3215
3216 * sysdeps/mips/Makefile: New file.
3217 * sysdeps/mips/nptl-sysdep.S: New file.
3218 * sysdeps/mips/tcb-offsets.sym: New file.
3219 * sysdeps/mips/pthread_spin_lock.S: New file.
3220 * sysdeps/mips/pthread_spin_trylock.S: New file.
3221 * sysdeps/mips/pthreaddef.h: New file.
3222 * sysdeps/mips/tls.h: New file.
3223 * sysdeps/mips/jmpbuf-unwind.h: New file.
3224 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3225 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3226 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3227 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3228 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3229 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3230 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3231 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3232 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3233 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3234
1e6da2b0
UD
32352005-03-23 Ulrich Drepper <drepper@redhat.com>
3236
c06aad09 3237 [BZ #1112]
1e6da2b0
UD
3238 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3239 variable to scerr.
3240
5233d576
RM
32412005-03-10 Jakub Jelinek <jakub@redhat.com>
3242
3243 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3244
3053ff11
RM
32452005-02-25 Roland McGrath <roland@redhat.com>
3246
3247 * alloca_cutoff.c: Correct license text.
3248 * tst-unload.c: Likewise.
3249 * sysdeps/pthread/allocalim.h: Likewise.
3250 * sysdeps/pthread/pt-initfini.c: Likewise.
3251 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3252 * sysdeps/pthread/bits/sigthread.h: Likewise.
3253 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3254 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3255
9cfe5381
RM
32562005-02-16 Roland McGrath <roland@redhat.com>
3257
3258 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3259 Use unsigned int * for ptr_nthreads.
3260
7de00121
RM
32612005-02-14 Alan Modra <amodra@bigpond.net.au>
3262
20d511e0 3263 [BZ #721]
7de00121
RM
3264 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3265 gcc4.
3266
4bae262d
UD
32672005-02-07 Richard Henderson <rth@redhat.com>
3268
613d8d52 3269 [BZ #787]
4bae262d
UD
3270 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3271 argument.
3272
75df54b7
RM
32732004-11-03 Marcus Brinkmann <marcus@gnu.org>
3274
3275 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3276 order of arguments in invocation of atomic_add_zero.
3277
ea9c93cc
UD
32782005-01-26 Jakub Jelinek <jakub@redhat.com>
3279
9cfe5381 3280 [BZ #737]
ea9c93cc
UD
3281 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3282 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3283 at least gotntpoff relocation and addition.
3284 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3285 Likewise.
3286 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3287 Likewise.
3288 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3289 Likewise.
3290
9dcafc55
UD
32912005-01-06 Ulrich Drepper <drepper@redhat.com>
3292
3293 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3294 entry for static tls deallocation fix.
3295 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3296 also contains information whether the memory pointed to is static
3297 TLS or not.
3298 * sysdeps/i386/tls.h: Likewise.
3299 * sysdeps/ia64/tls.h: Likewise.
3300 * sysdeps/powerpc/tls.h: Likewise.
3301 * sysdeps/s390/tls.h: Likewise.
3302 * sysdeps/sh/tls.h: Likewise.
3303 * sysdeps/sparc/tls.h: Likewise.
3304 * sysdeps/x86_64/tls.h: Likewise.
3305
a71c152c
UD
33062004-12-27 Ulrich Drepper <drepper@redhat.com>
3307
3308 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3309
d143c49e
UD
33102004-12-21 Jakub Jelinek <jakub@redhat.com>
3311
3312 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3313 %esp.
3314 * Makefile (tests): Add tst-align2.
3315 * tst-align2.c: New test.
3316 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3317 -mpreferred-stack-boundary=4.
3318
50130ded
RM
33192004-12-18 Roland McGrath <roland@redhat.com>
3320
3321 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3322 New file removed withdrawn for the moment.
3323
cbc53df0
RH
33242004-12-17 Richard Henderson <rth@redhat.com>
3325
3326 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3327 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3328
fb9d5c73
UD
33292004-12-16 Ulrich Drepper <drepper@redhat.com>
3330
03332aa6
UD
3331 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3332 Increased PTHREAD_STACK_MIN.
3333
fb9d5c73
UD
3334 * tst-context1.c (stacks): Use bigger stack size.
3335
e853ea00
UD
33362004-12-16 Jakub Jelinek <jakub@redhat.com>
3337
3338 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3339 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3340
f23673fc
UD
33412004-12-15 Jakub Jelinek <jakub@redhat.com>
3342
3343 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3344 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3345 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3346
917fbe70
UD
33472004-12-15 Ulrich Drepper <drepper@redhat.com>
3348
3349 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3350
1f9d7c27
UD
33512004-12-14 Ulrich Drepper <drepper@redhat.com>
3352
3353 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3354 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3355
3356 * tst-getpid1.c: If child crashes, report this first. Print which
3357 signal.
3358
bf7c04cd
UD
33592004-12-09 Ulrich Drepper <drepper@redhat.com>
3360
3361 * init.c (__pthread_initialize_minimal_internal): Also unblock
3362 SIGSETXID.
3363
33642004-12-01 Jakub Jelinek <jakub@redhat.com>
3365
3366 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3367 _POSIX_THREAD_CPUTIME): Define to 0.
3368 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3369 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3370 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3371 __timer_signal_thread_tclk): Remove.
3372 (init_module): Remove their initialization.
3373 (thread_cleanup): Remove their cleanup assertions.
3374 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3375 __timer_signal_thread_tclk): Remove.
3376 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3377 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3378 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3379
484cc801
UD
33802004-12-07 Jakub Jelinek <jakub@redhat.com>
3381
3382 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3383 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3384
3385 * Makefile (tests): Add tst-getpid2.
3386 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3387 (do_test): Use it. Use __clone2 instead of clone on ia64.
3388 * tst-getpid2.c: New test.
3389
2da9a6a1
UD
33902004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3391
3392 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3393
1ff241b8
UD
33942004-12-04 Ulrich Drepper <drepper@redhat.com>
3395
3396 * Makefile (tests): Add tst-getpid1.
3397 * tst-getpid1.c: New file.
3398 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3399 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3400
3f488b9c
RM
34012004-12-02 Roland McGrath <roland@redhat.com>
3402
3403 * Makefile (libpthread-nonshared): Variable removed.
3404 ($(objpfx)libpthread_nonshared.a): Target removed.
3405 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3406 These are now handled by generic magic from
3407 libpthread-static-only-routines being set.
3408
597ce09c
UD
34092004-11-27 Ulrich Drepper <drepper@redhat.com>
3410
3411 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3412 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3413 _POSIX_THREAD_PRIO_PROTECT): Define.
3414 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3415 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3416 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3417
60e4523a
UD
34182004-11-26 Jakub Jelinek <jakub@redhat.com>
3419
3420 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3421 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3422 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3423 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
3424 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3425 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3426 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3427
f1f2cafc
UD
34282004-11-24 Ulrich Drepper <drepper@redhat.com>
3429
bca2d208
UD
3430 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3431
f1f2cafc
UD
3432 * Makefile (libpthread-routines): Add pthread_setschedprio.
3433 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3434 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3435 * pthread_setschedprio.c: New file.
3436
b639d0c9
UD
34372004-11-20 Jakub Jelinek <jakub@redhat.com>
3438
ef2bb413
UD
3439 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3440 * pthread_cancel.c (pthread_create): Likewise.
3441
b639d0c9
UD
3442 * Makefile (libpthread-routines): Add vars.
3443 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3444 * init.c (__default_stacksize, __is_smp): Remove.
3445 * vars.c: New file.
3446 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3447 and define a wrapper macro.
3448 (PTHREAD_STATIC_FN_REQUIRE): Define.
3449 * allocatestack.c (__find_thread_by_id): Undefine.
3450 * pthread_create (__pthread_keys): Remove.
3451 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3452 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3453 PTHREAD_STATIC_FN_REQUIRE.
3454
3defcff3
UD
34552004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3456
3457 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3458 parameter to REGISTER macro.
3459
ec188f92
RM
34602004-11-17 Roland McGrath <roland@redhat.com>
3461
3462 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3463 Make sure SIGCANCEL is blocked as well.
3464
ccd8de9a
UD
34652004-11-10 Jakub Jelinek <jakub@redhat.com>
3466
3467 * sysdeps/pthread/setxid.h: New file.
3468 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3469 (struct xid_command): Add forward decl.
3470 (struct pthread_functions): Change return type of __nptl_setxid hook
3471 to int.
3472 * pthreadP.h (__nptl_setxid): Change return type to int.
3473 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3474 calling thread, return its return value and set errno on failure.
3475 * descr.h (struct xid_command): Change id type to long array.
3476
3477 * Makefile: Add rules to build and test tst-setuid1 and
3478 tst-setuid1-static.
3479 * tst-setuid1.c: New test.
3480 * tst-setuid1-static.c: New test.
3481
ed2ced8a
UD
34822004-11-10 Jakub Jelinek <jakub@redhat.com>
3483
3484 * Makefile (tests): Add tst-exit3.
3485 * tst-exit3.c: New test.
3486
948603ee
UD
34872004-11-09 Ulrich Drepper <drepper@redhat.com>
3488
3489 * Makefile (tests): Add tst-exit2.
3490 * tst-exit2.c: New file.
3491
ba5ffd2a
RM
34922004-11-09 Roland McGrath <roland@redhat.com>
3493
3494 [BZ #530]
3495 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3496 here, before calling clone.
3497 * pthread_create.c (start_thread): Don't do it here.
3498
c4d7bd39
RM
34992004-11-02 Jakub Jelinek <jakub@redhat.com>
3500
3501 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3502
543fb0c8
UD
35032004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3504
3505 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3506 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3507 assembler warning.
3508
a1fbd858
UD
35092004-10-28 Jakub Jelinek <jakub@redhat.com>
3510
3511 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3512 if sched_priority is not between minprio and maxprio.
3513
c2a4357a
UD
35142004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3515
3516 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3517 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3518
3519 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3520 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3521
78d8d211
UD
35222004-10-24 Ulrich Drepper <drepper@redhat.com>
3523
3524 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3525 not-cancelable I/O functions.
3526
dd28590f
UD
35272004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3528
3529 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3530 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3531 make sure 2 is stored in the futex and we looked at the old value.
3532 Fix a few other problems to return the correct value.
3533
f8c97af7
RH
35342004-10-14 Richard Henderson <rth@redhat.com>
3535
3536 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3537 make gcc4 happy.
3538
3feb8efa
UD
35392004-10-06 Jakub Jelinek <jakub@redhat.com>
3540
3541 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3542 of pthread-functions.h and pthreaddef.h.
3543 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3544
3545 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3546 Change __data.__nwaiters from int to unsigned int.
3547
3548 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3549 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3550
3551 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3552 before return type.
3553
3554 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3555 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3556
67060ef5
UD
35572004-10-06 Ulrich Drepper <drepper@redhat.com>
3558
3559 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3560 test fails, remove message queue.
3561 (tf_msgsnd): Likewise.
3562
f38a3086
UD
35632004-10-05 Jakub Jelinek <jakub@redhat.com>
3564
3565 * tst-clock1.c: Change #ifdef to #if defined.
3566 * tst-clock2.c: Likewise.
3567 * tst-cond11.c: Likewise.
3568
2c03b6db
UD
3569 * sysdeps/pthread/timer_create.c (timer_create): Use
3570 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
3571 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
3572 THREAD_CPUTIME.
3573
6ab5f50d
UD
35742004-10-05 Jakub Jelinek <jakub@redhat.com>
3575
3576 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
3577 _POSIX_THREAD_CPUTIME): Define to 0.
3578
e4bb4853
UD
35792004-10-04 Ulrich Drepper <drepper@redhat.com>
3580
3581 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
3582 and _POSIX_THREAD_CPUTIME to zero.
3583 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3584 * tst-barrier2.c: Fix testing for POSIX feature.
3585 * tst-clock1.c: Likewise.
3586 * tst-clock2.c: Likewise.
3587 * tst-cond11.c: Likewise.
3588 * tst-cond4.c: Likewise.
3589 * tst-cond6.c: Likewise.
3590 * tst-flock2.c: Likewise.
3591 * tst-mutex4.c: Likewise.
3592 * tst-mutex9.c: Likewise.
3593 * tst-rwlock12.c: Likewise.
3594 * tst-rwlock4.c: Likewise.
3595 * tst-signal1.c: Likewise.
3596 * tst-spin2.c: Likewise.
3597 * sysdeps/pthread/posix-timer.h: Likewise.
3598 * sysdeps/pthread/timer_create.c: Likewise.
3599 * sysdeps/pthread/timer_routines.c: Likewise.
3600
c1b48791
UD
36012004-10-01 Ulrich Drepper <drepper@redhat.com>
3602
927f0673
UD
3603 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3604 (__lll_mutex_timedlock_wait): Address futex correctly.
3605
c1b48791 3606 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 3607 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
3608 make sure 2 is stored in the futex and we looked at the old value.
3609 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3610 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
3611 which might very well made the code not working at all before.
7b87aca6 3612 [BZ #417]
c1b48791 3613
e9f4e844
UD
36142004-09-28 Ulrich Drepper <drepper@redhat.com>
3615
4f21c95d
UD
3616 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
3617 allow SIGSETXID to be sent.
3618 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
3619 for SIGSETXID to be defined.
3620 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
3621 SIGSETXID cannot be blocked.
3622
e9f4e844
UD
3623 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3624 Add __extension__ to long long types.
3625 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3626 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3627 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3628 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3629 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
3630 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3631 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3632
5f66b766
UD
36332004-09-25 Ulrich Drepper <drepper@redhat.com>
3634
3635 * descr.h (struct pthread): Add stopped_start field.
3636 * sysdeps/pthread/createthread.c (create_thread): Set
3637 start_stopped flag in descriptor for new thread appropriately.
3638 * pthread_create.c (start_thread): Only take lock to be stopped on
3639 startup if stopped_start flag says so.
3640
362038b0
UD
36412004-09-24 Ulrich Drepper <drepper@redhat.com>
3642
3f80a99b
UD
3643 * pthread_create.c (__pthread_create_2_1): Remember whether thread
3644 is created detached and if yes, do not try to free the stack in case
3645 the thread creation failed.
3646 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
3647 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
3648 case there has been no error. [BZ #405]
3649
362038b0
UD
3650 * pthread_create.c (start_thread): Don't wait for scheduler data
3651 etc to be set at the beginning of the function. The cancellation
3652 infrastructure must have been set up. And enable async
3653 cancellation before potentially going to sleep. [BZ #401]
3654
65f0beb9
UD
36552004-09-20 Ulrich Drepper <drepper@redhat.com>
3656
3c12b91a 3657 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
3658 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
3659 for now.
3660 * Makefile: Don't build pthread_set*id code for now.
3661
2edb61e3
UD
36622004-09-19 Ulrich Drepper <drepper@redhat.com>
3663
3664 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
3665 internal use.
3666 * allocatestack.c (__nptl_setxid): New function.
3667 * descr.h (struct xid_command): Define type.
3668 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
3669 (sighandler_setxid): New function.
3670 (__pthread_initialize_minimal): Register sighandler_setxid for
3671 SIGCANCEL.
3672 * pt-allocrtsig.c: Update comment.
3673 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
3674 Declare __nptl_setxid.
3675 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
3676 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
3677 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
3678 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
3679 and pthread_setresuid_np.
3680 * pthread_setgid_np.c: New file.
3681 * pthread_setuid_np.c: New file.
3682 * pthread_setegid_np.c: New file.
3683 * pthread_seteuid_np.c: New file.
3684 * pthread_setregid_np.c: New file.
3685 * pthread_setreuid_np.c: New file.
3686 * pthread_setresgid_np.c: New file.
3687 * pthread_setresuid_np.c: New file.
3688 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
3689 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
3690 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
3691 and pthread_setresuid_np.
3692 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
3693 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
3694 pthread_setregid, and pthread_setresgid.
3695
1ab1fa6f
UD
36962004-09-18 Ulrich Drepper <drepper@redhat.com>
3697
3698 * allocatestack.c (allocate_stack): Return EAGAIN instead of
3699 ENOMEM when out of memory.
3700
ae9e6b36
RM
37012004-09-10 Roland McGrath <roland@redhat.com>
3702
3703 [BZ #379]
3704 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
3705 code, since we don't try to use the broken CLONE_STOPPED any more.
3706 * pthread_create.c (start_thread): Likewise.
3707
424bd2f8
RH
37082004-09-15 Richard Henderson <rth@redhat.com>
3709
3710 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
3711
17b8a52d
UD
37122004-09-01 David Mosberger <davidm@hpl.hp.com>
3713
3714 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
3715 (__libc_unwind_longjmp): Delete macro and declare as function.
3716 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
3717 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
3718 nptl directory.
3719 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
3720 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
3721 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
3722
ccc63b07
UD
37232004-09-12 Ulrich Drepper <drepper@redhat.com>
3724
3725 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
3726 for __USE_XOPEN2K.
3727 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
3728 types also for __USE_XOPEN2K.
3729 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3730 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3731 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3732 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3733 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3734 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3735 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3736 [BZ #320]
3737
31f93b3b
UD
37382004-09-08 Ulrich Drepper <drepper@redhat.com>
3739
3740 * sysdeps/pthread/pthread.h
3741 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
3742 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
3743 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
3744 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
3745 [BZ #375]
3746
e0329987
UD
37472004-09-07 Ulrich Drepper <drepper@redhat.com>
3748
590b40f7
UD
3749 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
3750 PSEUDO to be used with . prefix.
3751
67254a97
UD
3752 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
3753 Use atomic_increment instead of atomic_exchange_and_add.
3754 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
3755 Likewise.
3756 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
3757 Likewise.
3758 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3759 Likewise.
3760
3761 * allocatestack.c (allocate_stack): Use atomic_increment_val
3762 instead of atomic_exchange_and_add.
3763 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
3764 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3765 Likewise.
3766 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
3767 Likewise.
3768
e0329987
UD
3769 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
3770 the initialization function might throw.
3771
42d86dd6 37722005-09-05 Richard Henderson <rth@redhat.com>
e0329987 3773
42d86dd6
RH
3774 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
3775 Move definition inside libpthread, libc, librt check. Provide
3776 definition for rtld.
3777
73f7c32c
UD
37782004-09-02 Ulrich Drepper <drepper@redhat.com>
3779
f76c8499
UD
3780 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
3781 * sysdeps/i386/jmpbuf-unwind.h: Likewise
3782 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3783 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3784 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3785 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3786 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3787 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
3788 * unwind.c: Use it.
3789
73f7c32c
UD
3790 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
3791 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
3792 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3793 Likewise.
3794 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
3795 Decrement __nwaiters. If pthread_cond_destroy has been called and
3796 this is the last waiter, signal pthread_cond_destroy caller and
3797 avoid using the pthread_cond_t structure after unlock.
3798 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3799 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3800 Read clock type from the least significant bits of __nwaiters instead
3801 of __clock.
3802 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3803 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
3804
38052004-08-31 Jakub Jelinek <jakub@redhat.com>
3806
3807 [BZ #342]
3808 * Makefile (tests): Add tst-cond20 and tst-cond21.
3809 * tst-cond20.c: New test.
3810 * tst-cond21.c: New test.
3811 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
3812 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
3813 it unsigned int.
3814 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
3815 Likewise.
3816 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3817 (pthread_cond_t): Likewise.
3818 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
3819 Likewise.
3820 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3821 Likewise.
3822 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
3823 Likewise.
3824 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
3825 (cond_nwaiters): New.
3826 (clock_bits): New.
3827 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
3828 if there are waiters not signalled yet.
3829 Wait until all already signalled waiters wake up.
3830 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
3831 __nwaiters. If pthread_cond_destroy has been called and this is the
3832 last waiter, signal pthread_cond_destroy caller and avoid using
3833 the pthread_cond_t structure after unlock.
3834 (__pthread_cond_wait): Increment __nwaiters in the beginning,
3835 decrement it when leaving. If pthread_cond_destroy has been called
3836 and this is the last waiter, signal pthread_cond_destroy caller.
3837 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
3838 Likewise. Read clock type from the least significant bits of
3839 __nwaiters instead of __clock.
3840 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
3841 whether clock ID can be encoded in COND_CLOCK_BITS bits.
3842 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
3843 clock type just from the last COND_CLOCK_BITS bits of value.
3844 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
3845 instead of __clock, just from second bit of condattr's value.
3846
409f7493
UD
38472004-08-30 Jakub Jelinek <jakub@redhat.com>
3848
3849 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
3850 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
3851 != 64.
3852 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
3853
92c6ccd1
RM
38542004-08-15 Roland McGrath <roland@frob.com>
3855
3856 * pthread_atfork.c: Update copyright terms including special exception
3857 for these trivial files, which are statically linked into executables
3858 that use dynamic linking for the significant library code.
3859
4d004cfb
UD
38602004-08-09 Jakub Jelinek <jakub@redhat.com>
3861
3862 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
3863 pthread_rwlock_rdlock.
3864 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
3865 Decrease __nr_readers_queued after reacquiring lock.
3866 * sysdeps/pthread/pthread_rwlock_timedrdlock
3867 (pthread_rwlock_timedrdlock): Likewise.
3868 Reported by Bob Cook <bobcook47@hotmail.com>.
3869
90595fb6
RM
38702004-08-11 Jakub Jelinek <jakub@redhat.com>
3871
3872 * tst-rwlock14.c (tf): Read main thread handle from *ARG
3873 before pthread_barrier_wait.
3874
fa46f7ab
UD
38752004-08-07 Ulrich Drepper <drepper@redhat.com>
3876
3877 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
3878 Remove unnecessary exception handling data.
3879
15ef4b55
UD
38802004-07-23 Jakub Jelinek <jakub@redhat.com>
3881
3882 [BZ #284]
3883 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
3884 instead of clockid_t.
3885
4fb907b7
RM
38862004-07-21 Roland McGrath <roland@redhat.com>
3887
3888 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
3889
38902004-07-19 Roland McGrath <roland@redhat.com>
3891
3892 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
3893
8f73811b
RM
38942004-07-02 Roland McGrath <roland@redhat.com>
3895
3896 * configure: Don't exit.
3897
290639c3
UD
38982004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3899
3900 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3901 (__pthread_cond_timedwait): Check for invalid nanosecond in
3902 timeout value.
3903
8e5aaad9
UD
39042004-07-07 Ulrich Drepper <drepper@redhat.com>
3905
3906 * Makefile: Add rules to build and run tst-fini1.
3907 * tst-fini1.c: New file.
3908 * tst-fini1mod.c: New file.
3909
ce6e047f
UD
39102004-07-05 Ulrich Drepper <drepper@redhat.com>
3911
3912 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
3913 if no cancellation support is needed.
3914 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
3915 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
3916 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3917 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
3918 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3919 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
3920 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
3921 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
3922 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
3923
3924 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
3925 only if not already defined.
3926
9b9ef823
UD
39272004-07-05 Jakub Jelinek <jakub@redhat.com>
3928
2dd18ce2
UD
3929 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
3930 constraint "m" instead of "0" for futex.
3931
9b9ef823
UD
3932 * shlib-versions: Add powerpc64-.*-linux.*.
3933
38205402
UD
39342004-07-04 Jakub Jelinek <jakub@redhat.com>
3935
3936 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
3937 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
3938 for valid tv_nsec.
3939 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
3940 1 billion and 64-bit tv_nsec which is valid when truncated to 32
3941 bits.
3942
78a9c837
RM
39432004-06-29 Roland McGrath <roland@redhat.com>
3944
3945 * Banner: NPTL no longer has its own version number.
3946 * Makefile (nptl-version): Variable removed.
3947 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
3948 using $(version), the glibc version number.
3949
d3d35527
UD
39502004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3951
3952 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
3953 Fix branch offset for a PLT entry.
3954 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
3955 Likewise.
3956 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3957 Likewise.
3958 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
3959 Likewise.
3960 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
3961 Likewise.
3962
346f18ae
UD
39632004-06-28 Jakub Jelinek <jakub@redhat.com>
3964
3965 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
3966 unconditionally.
3967
f3a19754
UD
39682004-06-28 Jakub Jelinek <jakub@redhat.com>
3969
3970 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
3971 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
3972 instead of tv_sec.
3973 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
3974 (pthread_rwlock_timedrdlock): Likewise.
3975
539842a4
UD
39762004-06-22 Jakub Jelinek <jakub@redhat.com>
3977
3978 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
3979 Set __r7 to val, not mutex.
3980
46f4c578
UD
39812004-06-27 Ulrich Drepper <drepper@redhat.com>
3982
3983 * Makefile: Add rules to build tst-rwlock14.
3984 * tst-rwlock14.c: New file.
3985
39862004-06-24 Boris Hu <boris.hu@intel.com>
3987
3988 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
3989 check.
3990 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
3991
9898e99c
AJ
39922004-06-19 Andreas Jaeger <aj@suse.de>
3993
3994 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
3995 assembler in last patch.
3996
7c3164bc
UD
39972004-06-17 Ulrich Drepper <drepper@redhat.com>
3998
3999 * sysdeps/pthread/pthread_cond_timedwait.c
4000 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4001 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4002 (__pthread_cond_timedwait): Check for invalid nanosecond in
4003 timeout value.
4004 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4005 * tst-cond19.c: New file.
4006 * Makefile: Add rules to build and run tst-cond19.
4007
72e61500
UD
40082004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4009
4010 * tst-context1.c (GUARD_PATTERN): Defined.
4011 (tst_context_t): Define struct containing ucontext_t & guard words.
4012 (ctx): Declare as an array of tst_context_t.
4013 (fct): Verify uc_link & guard words are still valid.
4014 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4015
7c370086
UD
40162004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4017
4018 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4019 Add __data.__futex field, reshuffle __data.__clock.
4020 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4021 (__pthread_cond_signal): Increment __futex at the same time as
4022 __wakeup_seq or __total_seq. Pass address of __futex instead of
4023 address of low 32-bits of __wakeup_seq to futex syscall.
4024 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4025 (__pthread_cond_wait): Likewise. Pass __futex value from before
4026 releasing internal lock to FUTEX_WAIT.
4027 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4028 (__pthread_cond_timedwait): Likewise.
4029 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4030 (FUTEX_CMP_REQUEUE): Define.
4031 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4032 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4033 Pass __futex value from before the unlock and __futex address instead
4034 of address of low 32-bits of __wakeup_seq to futex syscall.
4035 Fallback to FUTEX_WAKE all on any errors.
4036
a9e526e7
RM
40372004-06-08 Jakub Jelinek <jakub@redhat.com>
4038
4039 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4040 comment typo.
4041 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4042 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4043 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4044 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4045 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4046
f1847a84
RM
40472004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4048
4049 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4050 Add memory clobber to inline assembly.
4051 (__lll_mutex_trylock): Likewise.
4052 (__lll_mutex_cond_trylock): Likewise.
4053
f7c81e1a
UD
40542004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4055
4056 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4057 Pass val argument as 6th system call argument in %r7.
4058
75fccede
UD
40592004-05-21 Jakub Jelinek <jakub@redhat.com>
4060
4061 * Makefile (tests): Add tst-cond16.
4062 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4063 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4064 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4065 Add __data.__futex field, reshuffle __data.__clock.
4066 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
4067 (__pthread_cond_signal): Increment __futex at the same time as
4068 __wakeup_seq or __total_seq. Pass address of __futex instead of
4069 address of low 32-bits of __wakeup_seq to futex syscall.
4070 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
4071 (__pthread_cond_wait): Likewise. Pass __futex value from before
4072 releasing internal lock to FUTEX_WAIT.
4073 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
4074 (__pthread_cond_timedwait): Likewise.
4075 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
4076 (FUTEX_CMP_REQUEUE): Define.
4077 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4078 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4079 Pass __futex value from before the unlock and __futex address instead
4080 of address of low 32-bits of __wakeup_seq to futex syscall.
4081 Fallback to FUTEX_WAKE all on any errors.
4082 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4083 Define.
4084 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4085 internally. Return non-zero if error, zero if success.
4086 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4087 Add __data.__futex field, reshuffle __data.__clock.
4088 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4089 Define.
4090 (lll_futex_requeue): Add val argument, return 1 unconditionally
4091 for the time being.
4092 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4093 Add __data.__futex field, reshuffle __data.__clock.
4094 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4095 Define.
4096 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4097 internally. Return non-zero if error, zero if success.
4098 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4099 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4100 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4101 Define.
4102 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4103 internally. Return non-zero if error, zero if success.
4104 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4105 Add __data.__futex field, reshuffle __data.__clock.
4106 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4107 Define.
4108 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4109 internally. Return non-zero if error, zero if success.
4110 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4111 Add __data.__futex field, reshuffle __data.__clock.
4112 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4113 Add __data.__futex field, reshuffle __data.__clock.
4114 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4115 Increment __futex at the same time as __wakeup_seq or __total_seq.
4116 Pass address of __futex instead of address of low 32-bits of
4117 __wakeup_seq to futex syscall.
4118 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4119 Pass __futex value from before releasing internal lock
4120 to FUTEX_WAIT.
4121 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4122 Likewise. Avoid unnecessary shadowing of variables.
4123 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4124 Set __futex to 2 * __total_seq. Pass __futex value from before the
4125 unlock and __futex address instead of address of low 32-bits of
4126 __wakeup_seq to futex_requeue macro, adjust for new return value
4127 meaning.
4128 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4129 (__pthread_cond_signal): Increment __futex at the same time as
4130 __wakeup_seq or __total_seq. Pass address of __futex instead of
4131 address of low 32-bits of __wakeup_seq to futex syscall.
4132 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4133 (__pthread_cond_wait): Likewise. Pass __futex value from before
4134 releasing internal lock to FUTEX_WAIT.
4135 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4136 (__pthread_cond_timedwait): Likewise.
4137 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4138 (FUTEX_CMP_REQUEUE): Define.
4139 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4140 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4141 Pass __futex value from before the unlock and __futex address instead
4142 of address of low 32-bits of __wakeup_seq to futex syscall.
4143 Fallback to FUTEX_WAKE all on any errors.
4144
41452004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4146
4147 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4148 Add nop to align the end of critical section.
4149 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4150
fbf86dda
UD
41512004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4152
4153 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4154 Add __broadcast_seq field.
4155 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4156 all waiters as woken with woken_seq and bump broadcast counter.
4157 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4158 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4159 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4160 Comment typo fixes. Avoid returning -ETIMEDOUT.
4161
41622004-06-01 Ulrich Drepper <drepper@redhat.com>
4163
4164 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4165 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4166 Reported by Kaz Kojima.
4167
ffdd5e50
UD
41682004-05-25 Jakub Jelinek <jakub@redhat.com>
4169
4170 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4171
3abc82c8
UD
41722004-05-21 Jakub Jelinek <jakub@redhat.com>
4173
4174 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4175 __broadcast_seq with bc_seq after acquiring internal lock instead of
4176 before it.
4177
893a3511
UD
41782004-05-18 Jakub Jelinek <jakub@redhat.com>
4179
4180 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4181 compilation.
4182 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4183 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4184 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4185 (pthread_cond_t): Add __data.__broadcast_seq field.
4186 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4187 (FRAME_SIZE): Define.
4188 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4189 Comment typo fixes.
4190 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4191 Define.
4192 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4193 typo fixes.
4194 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4195 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4196 fixes.
4197
41982004-05-18 Ulrich Drepper <drepper@redhat.com>
4199
4200 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4201 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4202 Add __broadcast_seq field.
4203 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4204 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4205 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4206 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4207 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4208 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4209 all waiters as woken with woken_seq and bump broadcast counter.
4210 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4211 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4212 __broadcast_seq field.
4213 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4214 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4215 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4216 * pthread_cond_init.c: Initialize __broadcast_seq field.
4217 * Makefile (tests): Add tst-cond17 and tst-cond18.
4218 Add .NOTPARALLEL goal.
4219 * tst-cond16.c: New file. From Jakub.
4220 * tst-cond17.c: New file. From Jakub.
4221 * tst-cond18.c: New file. From Jakub.
4222
4123718e
UD
42232004-05-16 Ulrich Drepper <drepper@redhat.com>
4224
4225 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4226 unwind info.
4227
4228 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4229 Parametrize frame size. Correct some unwind info.
4230 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4231
2d7ae210
UD
42322004-05-04 Jakub Jelinek <jakub@redhat.com>
4233
4234 * tst-stack3.c: Note testing functionality beyond POSIX.
4235
50c2b6d7
UD
42362004-05-04 Jakub Jelinek <jakub@redhat.com>
4237
4238 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4239 Change conditional from ifdef to if.
4240
27b02589
UD
42412004-04-23 Jakub Jelinek <jakub@redhat.com>
4242
4243 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4244 SYSDEP_CANCEL_ERROR): Define.
4245 (PSEUDO): Use it.
4246
4bb8fc33
UD
42472004-05-01 Jakub Jelinek <jakub@redhat.com>
4248
4249 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4250
f9a06dc1
UD
42512004-04-20 Jakub Jelinek <jakub@redhat.com>
4252
4253 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4254
d3b52028
UD
42552004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4256
4257 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4258 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4259 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4260 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4261
a5dd0a6c
UD
42622004-04-19 Ulrich Drepper <drepper@redhat.com>
4263
4264 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4265 thread has all signals blocked.
4266
620c3354
AJ
42672004-04-18 Andreas Jaeger <aj@suse.de>
4268
4269 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4270 (SEM_VALUE_MAX): Add missing brace.
4271
1683daeb
UD
42722004-04-17 Jakub Jelinek <jakub@redhat.com>
4273
4274 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4275 in rt subdir.
4276 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4277 * sysdeps/pthread/tst-mqueue8x.c: New test.
4278 * tst-cancel4.c: Update comment about message queues.
4279
4280 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4281 return it_value { 0, 0 }.
4282 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4283 like SIGEV_SIGNAL.
4284 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4285 assertion for SIGEV_NONE.
4286 (thread_attr_compare): Compare all attributes, not just a partial
4287 subset.
4288
42892004-04-17 Jakub Jelinek <jakub@redhat.com>
4290
4291 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4292
f532641d
UD
42932004-04-17 Ulrich Drepper <drepper@redhat.com>
4294
4295 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4296 Just use a plain number.
4297 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4298 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4299 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4300 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4301 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4302 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4303 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4304
7eb7fdda
UD
43052004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4306
53392906
UD
4307 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4308 frame info.
4309 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4310
d7ba1313
UD
43112004-04-15 Jakub Jelinek <jakub@redhat.com>
4312
4313 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4314 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4315 of calling sigwaitinfo.
4316
5adac0e4
UD
43172004-04-16 Ulrich Drepper <drepper@redhat.com>
4318
4319 * allocatestack.c (allocate_stack): Set reported_guardsize
4320 unconditionally.
4321 * pthread_getattr_np.c (pthread_getattr_np): Use
4322 reported_guardsize instead of guardsize.
4323 * descr.h (struct pthread): Add reported_guardsize field.
4324
f93fa7d4
UD
43252004-04-13 Jakub Jelinek <jakub@redhat.com>
4326
4327 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4328
1b82c6c7
UD
43292004-04-12 Ulrich Drepper <drepper@redhat.com>
4330
4331 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4332
43332004-04-08 Jakub Jelinek <jakub@redhat.com>
4334
4335 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4336 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4337 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4338 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4339 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4340 Define.
4341 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4342 (_POSIX_MESSAGE_PASSING): Define.
4343 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4344 (_POSIX_MESSAGE_PASSING): Define.
4345 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4346 (_POSIX_MESSAGE_PASSING): Define.
4347
e6eb894e
UD
43482004-04-04 Ulrich Drepper <drepper@redhat.com>
4349
4350 * tst-context1.c (fct): Check whether correct stack is used.
4351
1e084487
UD
43522004-04-03 Ulrich Drepper <drepper@redhat.com>
4353
4e73e115
UD
4354 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4355 matching constraints for asm mem parameters.
4356
1e084487
UD
4357 * tst-clock2.c (tf): Don't define unless needed.
4358
feca5e0b
UD
43592004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4360
4361 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4362 $(gnulib).
4363
3fa21fd8
UD
43642004-03-30 Ulrich Drepper <drepper@redhat.com>
4365
4366 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4367 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4368 * pthreadP.h: Declare __nptl_deallocate_tsd.
4369 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4370 Adjust caller.
4371
4372 * Makefile (tests): Add tst-tsd5.
4373 * tst-tsd5.c: New file.
4374
8e32efa6
UD
43752004-03-29 Ulrich Drepper <drepper@redhat.com>
4376
4377 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4378 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4379 is SHLIB_COMPAT check.
4380 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4381 (__pthread_attr_getaffinity_old): Likewise.
4382 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4383 (__pthread_getaffinity_old): Likewise.
4384 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4385 (__pthread_setaffinity_old): Likewise.
4386
eec8b6ca
UD
43872004-03-26 Ulrich Drepper <drepper@redhat.com>
4388
4389 * allocatestack.c (_make_stacks_executable): Call
4390 _dl_make_stack_executable first.
4391
db2f05ba
RM
43922004-03-24 Roland McGrath <roland@redhat.com>
4393
4394 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4395 constraint instead of "0".
4396
6abbc501
UD
43972004-03-24 Ulrich Drepper <drepper@redhat.com>
4398
68dc4dcb
UD
4399 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4400 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4401
6abbc501
UD
4402 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4403 code to avoid warning.
4404
865e14d9
AJ
44052004-03-24 Andreas Jaeger <aj@suse.de>
4406
4407 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4408 (__pthread_attr_setaffinity_old): Remove const.
4409
16b06b70
UD
44102004-03-23 Ulrich Drepper <drepper@redhat.com>
4411
2c0b891a
UD
4412 * sysdeps/unix/sysv/linux/smp.h: New file.
4413 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4414 * init.c: Define __is_smp.
4415 (__pthread_initialize_minimal_internal): Call is_smp_system to
4416 initialize __is_smp.
4417 * pthreadP.h: Declare __is_smp.
4418 Define MAX_ADAPTIVE_COUNT is necessary.
4419 * pthread_mutex_init.c: Add comment regarding __spins field.
4420 * pthread_mutex_lock.c: Implement adaptive mutex type.
4421 * pthread_mutex_timedlock.c: Likewise.
4422 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4423 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4424 Add __spins field.
4425 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4426 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4427 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4428 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4429 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4430 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4431 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4432 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4433 lll_mutex_cond_trylock.
4434 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4435 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4436 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4437 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4438 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4439 Define BUSY_WAIT_NOP.
4440 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4441 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4442
4443 * tst-mutex5.c: Add support for testing adaptive mutexes.
4444 * tst-mutex7.c: Likewise.
4445 * tst-mutex5a.c: New file.
4446 * tst-mutex7a.c: New file.
4447 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4448
565699e4
UD
4449 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4450 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4451 vgettimeofday call might destroy the content.
565699e4 4452
7fe1586f
UD
4453 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4454 @pause in the loop.
4455
e408880b
UD
4456 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4457 No need to restrict type of ret. Make it int. Add comment.
4458
16b06b70
UD
4459 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4460 Remove unnecessary setne instruction.
4461
61645263
UD
44622004-03-22 Jakub Jelinek <jakub@redhat.com>
4463
4464 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4465 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4466 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4467 If realloc fails, break out of the loop.
4468
e3d4c585
AJ
44692004-03-20 Andreas Jaeger <aj@suse.de>
4470
4471 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4472 (__pthread_setaffinity_old): Fix interface.
4473 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4474 (__pthread_getaffinity_old): Likewise.
4475
4476 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4477 (__pthread_setaffinity_new): Remove duplicate declaration.
4478
3abb1ff7
UD
44792004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4480
4481 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4482 the return value to a safe register.
4483 (CDISABLE): Set the function argument correctly.
4484
07bd2a3f
UD
44852004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4486
4487 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4488 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4489 Rewrite so that only one locked memory operation per round is needed.
4490 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4491 (pthread_barrier_wait): After wakeup, release lock only when the
4492 last thread stopped using the barrier object.
4493 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4494 (__pthread_cond_wait): Don't store mutex address if the current
4495 value is ~0l. Add correct cleanup support and unwind info.
4496 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4497 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4498 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4499 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4500 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4501 Add correct cleanup support and unwind info.
4502 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4503 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4504 information for syscall wrappers.
4505
14c35863
UD
45062004-03-18 Ulrich Drepper <drepper@redhat.com>
4507
4508 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4509 cpusetsize field, remove next.
4510 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4511 parameter for size of the CPU set.
4512 (pthread_setaffinity_np): Likewise.
4513 (pthread_attr_getaffinity_np): Likewise.
4514 (pthread_attr_setaffinity_np): Likewise.
4515 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4516 interface change, keep compatibility code.
4517 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4518 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4519 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4520 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4521 __pthread_getaffinity_np.
4522 * Versions: Add version for changed interfaces.
4523 * tst-attr3.c: Adjust test for interface change.
4524 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4525 increasing buffer sizes.
4526 * pthread_attr_destroy.c: Remove unused list handling.
4527 * pthread_attr_init.c: Likewise.
4528
8e115d80
RM
45292004-03-17 Roland McGrath <roland@redhat.com>
4530
4531 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4532 first argument to clock_getres so we ever enable kernel timers.
4533
e3b22ad3
UD
45342004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4535
4536 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4537
841153fa
RH
45382004-03-12 Richard Henderson <rth@redhat.com>
4539
e3b22ad3
UD
4540 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4541 oldvalue from CENABLE to CDISABLE.
841153fa 4542
932dfea7
UD
45432004-03-12 Ulrich Drepper <drepper@redhat.com>
4544
4545 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4546 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4547 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4548 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4549
9852f6dc
RH
45502004-03-11 Richard Henderson <rth@redhat.com>
4551
4552 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4553 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4554 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4555
43513fb7
UD
45562004-03-11 Jakub Jelinek <jakub@redhat.com>
4557
4558 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4559 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4560 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4561
45622004-03-11 Jakub Jelinek <jakub@redhat.com>
4563
4564 * forward.c (__pthread_cond_broadcast_2_0,
4565 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
4566 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
4567 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
4568
8a3e10e0
UD
45692004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4570
4571 * sysdeps/sh/tcb-offsets.sym: Add PID.
4572 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
4573 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
4574
6d3a2bec
UD
45752004-03-10 Ulrich Drepper <drepper@redhat.com>
4576
4577 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
4578 include <sysdep-cancel.h>, vfork is no cancellation point.
4579 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
4580 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
4581 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
4582
d3a4a571
UD
45832004-03-10 Jakub Jelinek <jakub@redhat.com>
4584
73b4ce64
UD
4585 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
4586 libc_hidden_def.
4587 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
4588 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
4589 Likewise.
4590 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
4591 Likewise.
4592 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
4593 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
4594 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
4595 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
4596 of DO_CALL_VIA_BREAK. Work around a gas problem.
4597
d682a515
UD
4598 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
4599 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
4600 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
4601 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
4602 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
4603 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
4604
4605 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
4606 a local register for saving old PID. Negate PID in parent upon exit.
4607
d3a4a571
UD
4608 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
4609 tcb-offsets.h.
4610 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4611 before syscall, set to the old value in the parent afterwards.
4612 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
4613 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
4614 tcb-offsets.h.
4615 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4616 before syscall, set to the old value in the parent afterwards.
4617 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
4618 * sysdeps/s390/tcb-offsets.sym: Add PID.
4619
4620 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
4621 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
4622 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
4623 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
4624 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
4625 * sysdeps/sparc/tcb-offsets.sym: Add PID.
4626
46272004-03-10 Andreas Schwab <schwab@suse.de>
4628
4629 * sysdeps/ia64/tcb-offsets.sym: Add PID.
4630 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
4631 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
4632
3f2fb223 46332004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 4634
3f2fb223
UD
4635 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
4636 * tst-cancel21.c (do_one_test): Likewise.
4637 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 4638
8b9d6054
UD
46392004-02-09 Jakub Jelinek <jakub@redhat.com>
4640
4641 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
4642 if non-zero and set to INT_MIN if zero.
4643 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
4644 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
4645 (SAVE_PID, RESTORE_PID): Define.
4646 (__vfork): Use it.
4647 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
4648 Use relative path to avoid including NPTL i386/vfork.S.
4649 (SAVE_PID, RESTORE_PID): Define.
4650 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
4651 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
4652 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
4653 tst-vfork2x.
4654 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
4655 * tst-vfork1.c: New test.
4656 * tst-vfork2.c: New test.
4657 * tst-vfork1x.c: New test.
4658 * tst-vfork2x.c: New test.
4659
02287d05
UD
46602004-03-08 Ulrich Drepper <drepper@redhat.com>
4661
c072ef6d 4662 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 4663 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 4664 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 4665 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 4666
d4acd24b
UD
46672004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
4668
4669 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
4670
8acb4b81
UD
46712004-03-08 H.J. Lu <hongjiu.lu@intel.com>
4672
4673 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
4674 _rtld_global_ro.
4675
4d1a02ef
UD
46762004-03-07 Ulrich Drepper <drepper@redhat.com>
4677
001836c8 4678 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 4679 _rtld_global_ro.
001836c8 4680
4d1a02ef
UD
4681 * tst-once4.c: Remove unnecessary macro definition.
4682
4683 * tst-mutex7.c (do_test): Limit thread stack size.
4684 * tst-once2.c (do_test): Likewise.
4685 * tst-tls3.c (do_test): Likewise.
4686 * tst-tls1.c (do_test): Likewise.
4687 * tst-signal3.c (do_test): Likewise.
4688 * tst-kill6.c (do_test): Likewise.
4689 * tst-key4.c (do_test): Likewise.
4690 * tst-join4.c (do_test): Likewise.
4691 * tst-fork1.c (do_test): Likewise.
4692 * tst-context1.c (do_test): Likewise.
4693 * tst-cond2.c (do_test): Likewise.
4694 * tst-cond10.c (do_test): Likewise.
4695 * tst-clock2.c (do_test): Likewise.
4696 * tst-cancel10.c (do_test): Likewise.
4697 * tst-basic2.c (do_test): Likewise.
4698 * tst-barrier4.c (do_test): Likewise.
4699
aa420660
UD
47002004-03-05 Ulrich Drepper <drepper@redhat.com>
4701
4702 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
4703
cff08c81
UD
47042004-03-01 Ulrich Drepper <drepper@redhat.com>
4705
4706 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4707 (__pthread_cond_timedwait): Optimize wakeup test.
4708 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
4709 (__pthread_cond_wait): Likewise.
4710 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4711 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4712 Likewise.
4713
b7fe377c
UD
47142004-02-29 Ulrich Drepper <drepper@redhat.com>
4715
4716 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
4717 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
4718 the atomic instruction needed.
4719 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4720 (__lll_mutex_lock_wait): Likewise.
4721
4c771a3b
UD
47222004-02-28 Ulrich Drepper <drepper@redhat.com>
4723
4724 * Makefile (tests): Add tst-cond14 and tst-cond15.
4725 * tst-cond14.c: New file.
4726 * tst-cond15.c: New file.
4727
a2c33d5a
UD
47282004-02-27 Ulrich Drepper <drepper@redhat.com>
4729
4730 * sysdeps/pthread/createthread.c (create_thread): Remove use of
4731 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
4732 needs to be implemented differently to be useful.
4733
261eada2
UD
47342004-02-26 Ulrich Drepper <drepper@redhat.com>
4735
14ffbc83
UD
4736 * pthread_attr_setschedparam.c: Don't test priority against limits
4737 here. Set ATTR_FLAG_SCHED_SET flag.
4738 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
4739 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
4740 from parent thread to child. If attribute is used and scheduling
4741 parameters are not inherited, copy parameters from attribute or
4742 compute them. Check priority value.
4743 * pthread_getschedparam.c: If the parameters aren't known yet get
4744 them from the kernel.
4745 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
4746 ATTR_FLAG_POLICY_SET flag for thread.
4747 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
4748 and ATTR_FLAG_POLICY_SET.
4749
4750 * sysdeps/pthread/createthread.c: Use tgkill if possible.
4751
261eada2
UD
4752 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
4753 fail if stack address hasn't been set. Just return 0.
4754
701d185c
UD
47552004-02-25 Ulrich Drepper <drepper@redhat.com>
4756
25b8e63c
UD
4757 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
4758 libpthread for the files in this list.
4759 (CFLAGS-tst-unload): Removed.
4760 * tst-unload.c (do_test): Don't use complete path for
4761 LIBPHREAD_SO.
4762
701d185c
UD
4763 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
4764 tst-_res1mod2.
4765
a8fd5a02
UD
47662004-02-22 Ulrich Drepper <drepper@redhat.com>
4767
4768 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
4769 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
4770 operation per round is needed.
4771 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4772 (__lll_mutex_lock_wait): Likewise.
4773
dd0b7b19
UD
47742004-02-20 Ulrich Drepper <drepper@redhat.com>
4775
4776 * tst-cancel9.c (cleanup): Don't print to stderr.
4777
5990e1fe
UD
47782004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4779
4780 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
4781
33ab3b66
UD
47822004-02-20 Jakub Jelinek <jakub@redhat.com>
4783
1be3130e
UD
4784 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
4785 (__syscall_error_handler2): Call CDISABLE.
4786 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
4787 (__syscall_error_handler2): Call CDISABLE.
4788
8ba5025a
UD
4789 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4790 Release lock before the loop, don't reacquire it.
8ba5025a 4791
33ab3b66
UD
4792 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
4793
11986c68
UD
47942004-02-19 Andreas Schwab <schwab@suse.de>
4795
4796 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4797 Fix last change.
4798
dc391246
UD
47992004-02-18 Ulrich Drepper <drepper@redhat.com>
4800
37c054c7
UD
4801 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
4802 (pthread_barrier_wait): After wakeup, release lock only when the
4803 last thread stopped using the barrier object.
4804 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
4805 (pthread_barrier_wait): Likewise.
4806 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4807 Likewise.
4808 * Makefile (tests): Add tst-barrier4.
4809 * tst-barrier4.c: New file.
dc391246
UD
4810
4811 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4812 (__pthread_cond_timedwait): Perform timeout test while holding
4813 internal lock to prevent wakeup race.
4814 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
4815 * sysdeps/pthread/pthread_cond_timedwait.c
4816 (__pthread_cond_timedwait): Likewise.
4817 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4818 (__pthread_cond_timedwait): Likewise.
4819
4a08113c
UD
48202004-02-18 Jakub Jelinek <jakub@redhat.com>
4821
4822 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
4823 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
4824 * Makefile (tests): Add tst-rwlock13.
4825 * tst-rwlock13.c: New test.
4826
71b1675e
UD
48272004-02-16 Ulrich Drepper <drepper@redhat.com>
4828
4829 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4830 (__condvar_tw_cleanup): Little optimization.
4831 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
4832
cd9fdc72
UD
48332004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
4834
4835 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
4836 libpthread as "lib" parameter to SHLIB_COMPAT.
4837 (__novmx_siglongjmp): Fix typo in function name.
4838 (__novmx_longjmp): Fix typo in function name.
4839
82038750
UD
48402004-02-13 Ulrich Drepper <drepper@redhat.com>
4841
b078c591
UD
4842 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
4843 __builtin_expect.
4844
82038750
UD
4845 * sysdeps/generic/pt-longjmp.c: Moved to...
4846 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
4847
e2982bf0
UD
48482004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
4849
4850 * Makefile (libpthread-routines): Add pt-cleanup.
4851 * pt-longjmp.c: Removed.
4852 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
4853 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
4854 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
4855 Version longjmp, siglongjmp for GLIBC_2.3.4.
4856 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
4857
3730d95c
UD
48582004-02-13 Ulrich Drepper <drepper@redhat.com>
4859
219304ec
UD
4860 * sysdeps/pthread/pthread_cond_timedwait.c
4861 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
4862 Reuse code. Add __builtin_expects.
4863
3730d95c
UD
4864 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4865 (__pthread_cond_timedwait): Get internal lock in case timeout has
4866 passed before the futex syscall.
4867 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4868
5673ccc1
UD
48692004-01-20 Ulrich Drepper <drepper@redhat.com>
4870
debddf64
UD
4871 * allocatestack.c: Pretty printing.
4872
5673ccc1
UD
4873 * sysdeps/pthread/createthread.c (create_thread): Don't add
4874 CLONE_DETACHED bit if it is not necessary.
4875
6bae8725
UD
48762004-01-16 Ulrich Drepper <drepper@redhat.com>
4877
4878 * pthread_getattr_np.c: Include ldsodefs.h.
4879
ff151400
RH
48802004-01-16 Richard Henderson <rth@redhat.com>
4881
6bae8725
UD
4882 * allocatestack.c: Don't declare __libc_stack_end.
4883 * init.c (__pthread_initialize_minimal_internal): Likewise.
4884 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 4885
ba683832
RH
48862004-01-15 Richard Henderson <rth@redhat.com>
4887
4888 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
4889 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
4890 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
4891 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
4892 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
4893 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
4894 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
4895 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
4896
630d93a7
UD
48972004-01-14 Ulrich Drepper <drepper@redhat.com>
4898
219304ec 4899 * init.c (pthread_functions): Make array const.
630d93a7 4900
d1fc817e
UD
49012004-01-13 Ulrich Drepper <drepper@redhat.com>
4902
4903 * allocatestack.c (__make_stacks_executable): Change interface.
4904 Check parameters. Pass parameter on to libc counterpart.
4905 * pthreadP.h: Change declaration.
4906
dc927809
RH
49072004-01-13 Richard Henderson <rth@redhat.com>
4908
10677727
UD
4909 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
4910 prototype form.
4911 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
4912 Likewise.
4913
d1fc817e
UD
4914 * sysdeps/alpha/Makefile: New file.
4915 * sysdeps/alpha/tcb-offsets.sym: New file.
4916 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4917 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 4918
d1fc817e
UD
4919 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
4920 on powerpc version.
dc927809 4921
249a3d0c
UD
49222004-01-08 Jakub Jelinek <jakub@redhat.com>
4923
4924 * Makefile (tests): Add tst-backtrace1.
4925 * tst-backtrace1.c: New test.
4926
763c0490
RM
49272003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
4928
4929 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
4930 register as second parameter to the REGISTER macro.
4931 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
4932 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
4933 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
4934 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
4935 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
4936 of thread register as second parameter to REGISTER macro in 64 case.
4937
c7baafd5
UD
49382004-01-03 Ulrich Drepper <drepper@redhat.com>
4939
4940 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
4941 (CFLAGS-getpid.o): Defined.
4942 (CFLAGS-getpid.os): Defined.
4943
25ac0258
UD
49442003-12-31 Ulrich Drepper <drepper@redhat.com>
4945
4946 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
4947 returned for main thread does not overlap with any other VMA.
4948 Patch by Jakub Jelinek.
4949
795985e4
UD
49502003-12-29 Jakub Jelinek <jakub@redhat.com>
4951
4952 * tst-raise1.c: Include stdio.h.
4953
cb5b9388
UD
49542003-12-23 Jakub Jelinek <jakub@redhat.com>
4955
4956 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
4957 setting with __ASSUME_TGKILL || defined __NR_tgkill.
4958 If pid is 0, set it to selftid.
4959 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
4960 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
4961 != 0, return self->tid without doing a syscall.
4962 * descr.h (struct pthread): Move pid field after tid.
4963
4964 * Makefile (tests): Add tst-raise1.
4965 * tst-raise1.c: New file.
4966
432aaf5b
RM
49672003-12-23 Roland McGrath <roland@redhat.com>
4968
4969 * tst-oddstacklimit.c: New file.
4970 * Makefile (tests): Add it.
4971 (tst-oddstacklimit-ENV): New variable.
4972
4973 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
4974 value up to page size for __default_stacksize.
4975
33ebea17
UD
49762003-12-21 Ulrich Drepper <drepper@redhat.com>
4977
4978 * Makefile (tests): Add tst-eintr5.
4979 * tst-eintr5.c: New file.
4980
4981 * eintr.c (eintr_source): Prevent sending signal to self.
4982
4983 * tst-eintr2.c (tf1): Improve error message.
4984
bbe35eb5
UD
49852003-12-20 Ulrich Drepper <drepper@redhat.com>
4986
4987 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
4988 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
4989 * pthread_cancel.c: Add comment explaining use of PID field.
4990 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
4991 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
4992 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
4993 temporarily to signal the field must not be relied on and updated
4994 by getpid().
4995 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
4996 temporarily negative.
4997 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 4998
4efdd8d3
UD
49992003-12-19 Ulrich Drepper <drepper@redhat.com>
5000
5001 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5002 (eintr_source): If ARG != NULL, use pthread_kill.
5003 * tst-eintr1.c: Adjust for this change.
5004 * tst-eintr2.c: Likewise.
5005 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5006 * tst-eintr3.c: New file.
5007 * tst-eintr4.c: New file.
5008
50092003-12-19 Jakub Jelinek <jakub@redhat.com>
5010
5011 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5012 if CANCELSTATE_BITMASK is set.
5013 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5014 Likewise.
5015
5016 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5017 (tests-reverse): Add tst-cancel23.
5018 * tst-cancel22.c: New test.
5019 * tst-cancel23.c: New test.
5020
675620f7
UD
50212003-12-18 Ulrich Drepper <drepper@redhat.com>
5022
5023 * tst-eintr1.c: Better error messages.
5024
5025 * Makefile (tests): Add tst-eintr2.
5026 * tst-eintr2.c: New file.
5027
50282003-12-18 Jakub Jelinek <jakub@redhat.com>
5029
5030 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5031 (CFLAGS-tst-cancelx21.c): Set.
5032 * tst-cancel21.c: New test.
5033 * tst-cancelx21.c: New test.
5034
5035 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5036 comparison operand.
5037 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5038 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5039 * pt-longjmp.c: Include jmpbuf-unwind.h.
5040 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5041 _JMPBUF_UNWINDS. Adjust compared pointers.
5042 * init.c (__pthread_initialize_minimal_internal): Initialize
5043 pd->stackblock_size.
5044 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5045 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5046 * sysdeps/i386/jmpbuf-unwind.h: New file.
5047 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5048 * sysdeps/s390/jmpbuf-unwind.h: New file.
5049 * sysdeps/sh/jmpbuf-unwind.h: New file.
5050 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5051 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5052 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5053 (_JMPBUF_CFA_UNWINDS): Remove.
5054 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5055
50562003-12-12 Jakub Jelinek <jakub@redhat.com>
5057
5058 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5059 (CFLAGS-tst-cancelx20.c): Set.
5060 * tst-cancel20.c: New test.
5061 * tst-cancelx20.c: New test.
5062
2d951ab6
UD
50632003-12-17 Ulrich Drepper <drepper@redhat.com>
5064
5065 * init.c (__pthread_initialize_minimal_internal): Don't treat
5066 architectures with separate register stack special here when
5067 computing default stack size.
5068
f8a3a2e7
RM
50692003-12-17 Roland McGrath <roland@redhat.com>
5070
5071 * Makefile (tst-cancelx7-ARGS): New variable.
5072 Reportd by Greg Schafer <gschafer@zip.com.au>.
5073
e796f92f
UD
50742003-12-17 Jakub Jelinek <jakub@redhat.com>
5075
5076 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5077 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5078 (tst-stack3-ENV): Set.
5079 ($(objpfx)tst-stack3-mem): New.
5080 * tst-stack3.c: New test.
5081
092eb73c
UD
50822003-12-10 David Mosberger <davidm@hpl.hp.com>
5083
5084 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5085 Add unwind directives. Drop unused .regstk directive.
5086 (_fini_EPILOG_BEGINS): Add unwind directives.
5087
ff48874d
UD
50882003-12-11 Ulrich Drepper <drepper@redhat.com>
5089
5090 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5091 Assume parameter is a pointer.
5092 (lll_futex_wake): Likewise.
20945457
UD
5093 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5094 Likewise.
5095 (lll_futex_wake): Likewise.
ff48874d
UD
5096 Reported by Boris Hu.
5097 * sysdeps/unix/sysv/linux/unregister-atfork.c
5098 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5099
5100 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5101
1d9d0b80
UD
51022003-12-10 Ulrich Drepper <drepper@redhat.com>
5103
5104 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5105 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5106 __rtld_lock_initialize for ld.so lock.
5107 Patch in part by Adam Li <adam.li@intel.com>.
5108
c776b3d7
UD
51092003-12-02 David Mosberger <davidm@hpl.hp.com>
5110
5111 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5112 in $(gnulib). Also, remove stale comment.
5113
51142003-11-12 David Mosberger <davidm@hpl.hp.com>
5115
5116 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5117 advantage of new syscall stub and optimize accordingly.
5118
5119 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5120 from SYS_futex, to match expectations of
5121 sysdep.h:DO_INLINE_SYSCALL.
5122 (lll_futex_clobbers): Remove.
5123 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5124 (lll_futex_wake): Likewise.
5125 (lll_futex_requeue): Likewise.
5126 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5127 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5128 Jelinek).
5129 (__lll_mutex_lock): Likewise.
5130 (__lll_mutex_cond_lock): Likewise.
5131 (__lll_mutex_timed_lock): Likewise.
5132 (__lll_mutex_unlock): Likewise.
5133 (__lll_mutex_unlock_force): Likewise.
5134
5135 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5136 comes before the include of <sysdep.h>.
5137 (THREAD_SELF_SYSINFO): New macro.
5138 (THREAD_SYSINFO): Likewise.
5139 (INIT_SYSINFO): New macro.
5140 (TLS_INIT_TP): Call INIT_SYSINFO.
5141
5142 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5143
5144 * sysdeps/pthread/createthread.c (create_thread): Use
5145 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5146 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5147 THREAD_SELF_SYSINFO instead of open code.
5148 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5149 (THREAD_SYSINFO): Likewise.
5150
5151 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5152
5153 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5154
57d20ee7
UD
51552003-12-06 Ulrich Drepper <drepper@redhat.com>
5156
5157 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5158 instead of .init. Patch by David Mosberger.
5159
67aeab2a
AJ
51602003-11-30 Thorsten Kukuk <kukuk@suse.de>
5161
5162 * sysdeps/pthread/configure.in: Remove broken declaration in C
5163 cleanup handling check.
5164
8ca203e6
AJ
51652003-11-30 Andreas Jaeger <aj@suse.de>
5166
5167 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5168 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5169 Likewise.
5170
46bf9de7
UD
51712003-11-27 Jakub Jelinek <jakub@redhat.com>
5172
5173 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5174 * pthread_attr_destroy.c: Include shlib-compat.h.
5175 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5176 is set in iattr->flags.
5177 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5178
1d9b73ab
UD
51792003-11-21 Jakub Jelinek <jakub@redhat.com>
5180
5181 * Makefile (distribute): Add tst-cleanup4aux.c.
5182
5183 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5184 include.
5185
53f9084e
UD
51862003-11-21 Ulrich Drepper <drepper@redhat.com>
5187
1d9b73ab
UD
5188 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5189 pthread_cond_signal.
5190
e42a990e
UD
5191 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5192 store mutex address if the current value is ~0l.
5193 * sysdeps/pthread/pthread_cond_timedwait.c
5194 (__pthread_cond_timedwait): Likewise.
5195 * sysdeps/pthread/pthread_cond_broadcast.c
5196 (__pthread_cond_broadcast): Don't use requeue for pshared
5197 condvars.
5198
5199 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5200 (__pthread_cond_wait): Don't store mutex address if the current
5201 value is ~0l.
5202 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5203 (__pthread_cond_timedwait): Likewise.
5204 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5205 (__pthread_cond_broadcast): Don't use requeue for pshared
5206 condvars.
5207
5208 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5209 element with ~0l for pshared condvars, with NULL otherwise.
5210
5211 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5212 (__pthread_cond_wait): Don't store mutex address if the current
5213 value is ~0l.
5214 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5215 (__pthread_cond_timedwait): Likewise.
5216 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5217 (__pthread_cond_broadcast): Don't use requeue for pshared
5218 condvars.
5219
bf68b236 5220 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5221 * tst-cond12.c: New file.
bf68b236 5222 * tst-cond13.c: New file.
53f9084e 5223
9780c971
UD
52242003-11-17 Ulrich Drepper <drepper@redhat.com>
5225
5226 * sysdeps/pthread/configure.in: Make missing forced unwind support
5227 fatal.
5228
74e12fbc
UD
52292003-11-11 Ulrich Drepper <drepper@redhat.com>
5230
5231 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5232
c685b2b0
UD
52332003-11-06 Ulrich Drepper <drepper@redhat.com>
5234
5235 * Makefile: Add magic to clean up correctly.
5236
44e94149
UD
52372003-11-05 Jakub Jelinek <jakub@redhat.com>
5238
5239 * unwind.c (FRAME_LEFT): Define.
5240 (unwind_stop): Handle old style cleanups here.
5241 (__pthread_unwind): Handle old style cleanups only if
5242 !HAVE_FORCED_UNWIND.
5243 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5244 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5245 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5246 ($(objpfx)tst-cleanupx4): Likewise.
5247 * tst-cleanup4.c: New test.
5248 * tst-cleanup4aux.c: New.
5249 * tst-cleanupx4.c: New test.
5250
c28422b5
UD
52512003-11-04 Ulrich Drepper <drepper@redhat.com>
5252
5253 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5254 lll_mutex_*lock macros to skip atomic operations on some archs.
5255
27176677
UD
52562003-11-03 Ulrich Drepper <drepper@redhat.com>
5257
5258 * sysdeps/pthread/tst-timer.c (main): Initialize
5259 sigev2.sigev_value as well.
5260
026395a2
RM
52612003-10-15 Roland McGrath <roland@redhat.com>
5262
5263 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5264 is missing.
5265 * sysdeps/pthread/configure: Regenerated.
5266
fa3cbe3d
UD
52672003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5268
5269 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5270 locking macros. No distinction between normal and mutex locking
5271 anymore.
5272 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5273 Merge bits from lowlevelmutex.S we still need.
5274 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5275 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5276 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5277 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5278 new mutex implementation.
5279 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5280 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5281 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5282 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5283 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5284 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5285 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5286 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5287 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5288 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5289 symbol for entry point to avoid cancellation.
5290
e700a908
UD
52912003-10-07 Jakub Jelinek <jakub@redhat.com>
5292
5293 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5294 changes.
5295 (SAVE_OLDTYPE_0): Fix a typo.
5296
c70a86b6
UD
52972003-10-03 Ulrich Drepper <drepper@redhat.com>
5298
5299 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5300 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5301
134abcb5
UD
53022003-10-02 Ulrich Drepper <drepper@redhat.com>
5303
5304 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5305 correct offset.
5306
b77ca0e8
UD
53072003-10-02 Jakub Jelinek <jakub@redhat.com>
5308
5309 * Makefile (tests): Add tst-cancel19.
5310 * tst-cancel19.c: New test.
5311
4d961dc7
UD
53122003-10-02 Ulrich Drepper <drepper@redhat.com>
5313
5314 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5315 restoring of the old cancellation type.
5316
1d5b20ad 53172003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5318
1d5b20ad
UD
5319 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5320
4106a403
RM
53212003-09-27 Wolfram Gloger <wg@malloc.de>
5322
4d961dc7 5323 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5324
fca9d8e4
RM
53252003-09-24 Roland McGrath <roland@redhat.com>
5326
5327 * allocatestack.c (__make_stacks_executable): Don't ignore return
5328 value from _dl_make_stack_executable.
5329
c9c60884
UD
53302003-09-24 Ulrich Drepper <drepper@redhat.com>
5331
69c9fa04
UD
5332 * allocatestack.c (__make_stacks_executable): Also change
5333 permission of the currently unused stacks.
5334
279f1143
UD
5335 * allocatestack.c (change_stack_perm): Split out from
5336 __make_stacks_executable.
5337 (allocate_stack): If the required permission changed between the time
5338 we started preparing the stack and queueing it, change the permission.
5339 (__make_stacks_executable): Call change_stack_perm.
5340
c9c60884
UD
5341 * Makefile: Build tst-execstack-mod locally.
5342 * tst-execstack-mod.c: New file.
5343
54ee14b3
UD
53442003-09-23 Jakub Jelinek <jakub@redhat.com>
5345
5346 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5347
53482003-09-23 Roland McGrath <roland@redhat.com>
5349
5350 * tst-execstack.c: New file.
5351 * Makefile (tests): Add it.
5352 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5353 (LDFLAGS-tst-execstack): New variable.
5354
5355 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5356 whether to use PROT_EXEC for stack mmap.
5357 (__make_stacks_executable): New function.
5358 * pthreadP.h: Declare it.
5359 * init.c (__pthread_initialize_minimal_internal): Set
5360 GL(dl_make_stack_executable_hook) to that.
5361
365b1602
UD
53622003-09-22 Ulrich Drepper <drepper@redhat.com>
5363
5364 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5365 recommendation from AMD re avoidance of lock prefix.
5366
39358e8b
UD
53672003-09-22 Jakub Jelinek <jakub@redhat.com>
5368
5369 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5370 lll_futex_timed_wait instead of lll_futex_wait.
5371 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5372 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5373 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5374 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5375 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5376 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5377 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5378 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5379 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5380 Completely revamp the locking macros. No distinction between
5381 normal and mutex locking anymore.
5382 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5383 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5384 __lll_lock_timedwait): Fix prototypes.
5385 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5386 __lll_lock_timedwait): Likewise.
5387 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5388 macros, add __builtin_expect.
5389 (lll_mutex_timedlock): Likewise. Fix return value.
5390 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5391 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5392 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5393 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5394 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5395 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5396 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5397 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5398
9d08fbbb
UD
53992003-09-22 Ulrich Drepper <drepper@redhat.com>
5400
c0df57e1
UD
5401 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5402 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5403 operation if possible.
5404
9d08fbbb
UD
5405 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5406 like jumping over the lock prefix.
5407
71451de2
UD
54082003-09-21 Ulrich Drepper <drepper@redhat.com>
5409
5410 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5411 locking macros. No distinction between normal and mutex locking
5412 anymore.
3a226d33 5413 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5414 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5415 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5416 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5417 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5418 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5419 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5420 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5421 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5422 * Makefile (routines): Remove libc-lowlevelmutex.
5423 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5424 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5425 for new mutex implementation.
5426 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5427 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5428 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5429 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5430 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5431 Likewise.
5432 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5433 Likewise.
5434 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5435 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5436 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5437 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5438 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5439 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5440 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5441 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5442 Likewise.
5443 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5444 Likewise.
5445 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5446 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5447 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5448 Don't use requeue.
5449 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5450 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5451
8f31c0ef
UD
54522003-09-20 Ulrich Drepper <drepper@redhat.com>
5453
56a4aa98
UD
5454 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5455 in parameters of asm with output parameters.
5456
8f31c0ef
UD
5457 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5458 type of DECR parameter to int.
5459 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5460
8b8074da
UD
54612003-09-18 Jakub Jelinek <jakub@redhat.com>
5462
5463 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5464 guardsize for each thread.
5465
65af7e61
UD
54662003-09-17 Jakub Jelinek <jakub@redhat.com>
5467
9ba96eda
UD
5468 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5469 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5470 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5471
06f6ca90
UD
5472 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5473 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5474 NULL.
5475 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5476 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5477 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5478 (pthread_getaffinity_np): Add hidden_def.
5479
5480 * Makefile (tests): Add tst-attr3.
5481 * tst-attr3.c: New test.
5482
65af7e61
UD
5483 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5484
3402852c
UD
54852003-09-15 Jakub Jelinek <jakub@redhat.com>
5486
5487 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5488 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5489
a4db3439
UD
54902003-09-17 Jakub Jelinek <jakub@redhat.com>
5491
5492 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5493 * tst-align.c: Include tst-stack-align.h.
5494 (tf, do_test): Use TEST_STACK_ALIGN macro.
5495
54962003-09-17 Ulrich Drepper <drepper@redhat.com>
5497
5498 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5499 variable.
5500
92ce4676
UD
55012003-09-16 Ulrich Drepper <drepper@redhat.com>
5502
5503 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5504 stack-related values for the initial thread.
5505
e07bb02a
UD
55062003-09-15 Jakub Jelinek <jakub@redhat.com>
5507
5508 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5509
d087b5dc
UD
55102003-09-11 Ulrich Drepper <drepper@redhat.com>
5511
5512 * pthread_mutex_lock.c: Minor code rearrangements.
5513
7f08f55a
RM
55142003-09-05 Roland McGrath <roland@redhat.com>
5515
5516 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5517 Instead, include ../nptl_db/db_info.c to do its magic.
5518 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5519 (__pthread_pthread_key_2ndlevel_size): Likewise.
5520 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5521 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5522 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5523 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5524 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5525 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5526 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5527 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5528 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5529 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5530 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5531 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5532 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5533 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5534 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5535 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5536 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5537
806e4a4a
UD
55382003-09-08 Ulrich Drepper <drepper@redhat.com>
5539
5540 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5541 of pthread_t to be compatible with LT.
5542 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5543 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5544 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5545 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5546 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5547 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5548 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5549
17f83e56
UD
55502003-09-04 Ulrich Drepper <drepper@redhat.com>
5551
5552 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5553
58e8ec84
UD
55542003-09-04 Jakub Jelinek <jakub@redhat.com>
5555
5556 * unwind-forcedunwind.c: Move to...
5557 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5558 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5559 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5560 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5561 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5562 * unwind.c: Include jmpbuf-unwind.h.
5563 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5564
abf1cf21
JJ
55652003-09-02 Jakub Jelinek <jakub@redhat.com>
5566
4a244f0d
UD
5567 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
5568 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
5569 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
5570 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
5571 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5572 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
5573 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
5574 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
5575 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
5576 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
5577 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
5578 function.
5579 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
5580 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
5581 * Makefile (tests): Add tst-stack2.
5582 * tst-stack2.c: New test.
5583 * tst-stack1.c: Include limits.h and sys/param.h.
5584 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
5585
e29ef647
UD
5586 * pthread_condattr_setpshared.c: Include errno.h.
5587 (pthread_condattr_setpshared): Return EINVAL if pshared
5588 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
5589
5777d565
UD
5590 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
5591 defined symbol for entry point to avoid cancellation.
5592 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5593 Likewise.
5594 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5595 Likewise.
5596 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5597 Likewise.
5598 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
5599 Likewise.
5600 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5601 Likewise.
5602 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
5603 __close_nocancel, __read_nocancel, __write_nocancel,
5604 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
5605 libpthread.so or librt.so, define to corresponding function
5606 without _nocancel suffix.
5607 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
5608 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
5609 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
5610
abf1cf21
JJ
5611 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
5612
8348dcc8
UD
56132003-09-02 Ulrich Drepper <drepper@redhat.com>
5614
5615 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 5616 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
5617
5618 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
5619 in subsections has a symbol associated with it.
5620
5621 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
5622 defined symbol for entry point to avoid cancellation.
5623 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
5624
c874a32e
UD
56252003-09-01 Jakub Jelinek <jakub@redhat.com>
5626
5627 * Makefile (tests): Add tst-tls5.
5628 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
5629 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
5630 ($(objpfx)tst-tls5): New.
5631 ($(objpfx)tst-tls6.out): Likewise.
5632 (tests): Depend on $(objpfx)tst-tls6.out.
5633 * tst-tls3.c: Include stdint.h and pthreaddef.h.
5634 (do_test): Check pthread_self () return value alignment.
5635 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
5636 (tf): Check pthread_self () return value alignment.
5637 * tst-tls5.c: New test.
5638 * tst-tls5.h: New.
5639 * tst-tls5mod.c: New.
5640 * tst-tls5moda.c: New.
5641 * tst-tls5modb.c: New.
5642 * tst-tls5modc.c: New.
5643 * tst-tls5modd.c: New.
5644 * tst-tls5mode.c: New.
5645 * tst-tls5modf.c: New.
5646 * tst-tls6.sh: New test.
5647
c503d3dc
UD
5648 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
5649 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
5650 * init.c (pthread_functions): Initialize them.
5651 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
5652 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
5653 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
5654 pthread_cond_timedwait@@GLIBC_2.3.2.
5655
48614753
JJ
56562003-09-01 Jakub Jelinek <jakub@redhat.com>
5657
56a1b877
JJ
5658 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
5659 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
5660 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
5661 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
5662 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
5663 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5664
5665 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
5666
48614753
JJ
5667 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
5668 _POSIX_THREAD_PRIORITY_SCHEDULING.
5669 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
5670
28c97261
UD
56712003-08-31 Ulrich Drepper <drepper@redhat.com>
5672
eef80cf8
UD
5673 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
5674 nested function, use static inline function from libio.h.
5675 Code by Richard Henderson.
5676
28c97261
UD
5677 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
5678 weak.
5679
cd2fbe58
UD
56802003-08-30 Jakub Jelinek <jakub@redhat.com>
5681
5682 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
5683 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
5684 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
5685 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
5686 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
5687 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
5688 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
5689 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
5690 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
5691 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
5692 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
5693 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
5694 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
5695 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
5696 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
5697 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
5698 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
5699 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
5700 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
5701 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
5702 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
5703 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
5704 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
5705 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
5706 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
5707 * sysdeps/sparc/tls.h: New file.
5708 * sysdeps/sparc/tcb-offsets.sym: New file.
5709 * sysdeps/sparc/Makefile: New file.
5710 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
5711 * init.c [__sparc__] (__NR_set_tid_address): Define.
5712
feda52c0
UD
57132003-08-29 Jakub Jelinek <jakub@redhat.com>
5714
5715 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
5716 _IO_release_lock): Define.
5717
7c868816
JJ
57182003-08-29 Jakub Jelinek <jakuB@redhat.com>
5719
0261d33f 5720 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
5721 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
5722
68b9e1ae
UD
57232003-08-27 Ulrich Drepper <drepper@redhat.com>
5724
5725 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
5726 (__pthread_cleanup_class): Add missing return types of member
5727 functions.
5728
13b3edfc
UD
57292003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
5730
5731 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
5732 (lll_mutex_unlock_force): Add memory barrier between store and futex
5733 syscall.
5734
bb606fbe
UD
57352003-08-25 Ulrich Drepper <drepper@redhat.com>
5736
5737 * tst-cancel4.c (do_test): Also unlink tempfname and remove
5738 tempmsg in first loop.
5739
ee4e5a3d
UD
57402003-08-18 Ulrich Drepper <drepper@redhat.com>
5741
5742 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5743 _POSIX_THREAD_PRIORITY_SCHEDULING.
5744 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5745
334fcf2a
UD
57462003-08-07 Jakub Jelinek <jakub@redhat.com>
5747
5748 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
5749 (__rtld_lock_default_lock_recursive,
5750 __rtld_lock_default_unlock_recursive): Define.
5751 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
5752 __rtld_lock_unlock_recursive): Define using
5753 GL(_dl_rtld_*lock_recursive).
5754 * init.c (__pthread_initialize_minimal_internal): Initialize
5755 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
5756 Lock GL(_dl_load_lock) the same number of times as
5757 GL(_dl_load_lock) using non-mt implementation was nested.
5758
5759 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
5760 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
5761
a30fb2df
UD
57622003-08-06 Jakub Jelinek <jakub@redhat.com>
5763
5764 * tst-cancel17.c (do_test): Make len2 maximum of page size and
5765 PIPE_BUF.
5766
ce0d30a0
JJ
57672003-08-07 Jakub Jelinek <jakub@redhat.com>
5768
5769 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
5770
9c988b83
UD
57712003-08-03 Jakub Jelinek <jakub@redhat.com>
5772
5773 * sysdeps/pthread/createthread.c (do_clone): Move error handling
5774 to first syscall error check. Move syscall error check for tkill
5775 into __ASSUME_CLONE_STOPPED #ifdef.
5776
5c5252bd
UD
57772003-08-02 Ulrich Drepper <drepper@redhat.com>
5778
f1205aa7
UD
5779 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
5780 is not defined, do explicit synchronization.
5781 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
5782 is not defined also unlock pd->lock for non-debugging case in case
5783 it is necessary.
5784 * pthread_create.c (start_thread): Always get and release pd->lock
5785 if __ASSUME_CLONE_STOPPED is not defined.
5786 (start_thread_debug): Removed. Adjust users.
5787 * allocatestack.c (allocate_stack): Always initialize lock if
5788 __ASSUME_CLONE_STOPPED is not defined.
5789 * Makefile (tests): Add tst-sched1.
5790 * tst-sched1.c: New file.
5791
5c5252bd
UD
5792 * sysdeps/pthread/createthread.c (do_clone): Only use
5793 sched_setschduler and pass correct parameters.
5794
973d66e4
UD
57952003-07-31 Jakub Jelinek <jakub@redhat.com>
5796
5797 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
5798 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
5799 PTHREAD_STACK_MIN in comments.
5800
d347a4ab
UD
58012003-07-31 Jakub Jelinek <jakub@redhat.com>
5802
5803 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5804 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
5805 argument.
5806 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
5807 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
5808 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
5809 (__pthread_cleanup_upto): Fix prototype.
5810 (_longjmp_unwind): Adjust caller.
5811 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
5812 Change second argument to const struct pointer.
5813 * tst-sem8.c (main): Remove unused s2 and s3 variables.
5814 * tst-sem9.c (main): Likewise.
5815 * unwind.c: Include string.h for strlen prototype.
5816
1b26e9a5
UD
58172003-07-31 Ulrich Drepper <drepper@redhat.com>
5818
5819 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5820 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
5821 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
5822 Define HAVE_CMOV.
5823 Patch by Nicholas Miell <nmiell@attbi.com>.
5824
adc12574
UD
58252003-07-30 Jakub Jelinek <jakub@redhat.com>
5826
5827 * init.c (__pthread_initialize_minimal_internal): Initialize
5828 GL(dl_init_static_tls).
5829 * pthreadP.h (__pthread_init_static_tls): New prototype.
5830 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
5831 New functions.
5832 * Makefile (tests): Add tst-tls4.
5833 (modules-names): Add tst-tls4moda and tst-tls4modb.
5834 ($(objpfx)tst-tls4): Link against libdl and libpthread.
5835 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
5836 tst-tls4modb.so.
5837 * tst-tls4.c: New file.
5838 * tst-tls4moda.c: New file.
5839 * tst-tls4modb.c: New file.
5840
a7f6c66e
RM
58412003-06-19 Daniel Jacobowitz <drow@mvista.com>
5842
5843 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
5844 before __timer_dealloc.
5845 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
5846 Don't call list_unlink.
5847
172ce013
RM
58482003-07-29 Roland McGrath <roland@redhat.com>
5849
5850 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
5851
7b787f85
UD
58522003-07-25 Jakub Jelinek <jakub@redhat.com>
5853
5854 * tst-cancel17.c (do_test): Check if aio_cancel failed.
5855 Don't reuse struct aiocb A if it failed.
5856 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
5857 not just one byte, as that does not block.
5858
0e9d6240
UD
58592003-07-22 Jakub Jelinek <jakub@redhat.com>
5860
9d79e037
UD
5861 * sysdeps/pthread/unwind-resume.c: New file.
5862 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
5863 unwind-resume in csu subdir.
5864 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
5865 exceptions.
5866 (librt-sysdep_routines, librt-shared-only-routines): Add
5867 rt-unwind-resume.
5868 * sysdeps/pthread/rt-unwind-resume.c: New file.
5869 * unwind-forcedunwind.c: New file.
5870 * Makefile (libpthread-routines): Add unwind-forcedunwind.
5871 (libpthread-shared-only-routines): Likewise.
5872 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
5873 * pthreadP.h (pthread_cancel_init): New prototype.
5874 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
5875
5876 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
5877 attr argument const struct pthread_attr *.
5878
0e9d6240
UD
5879 * res.c (__res_state): Return __resp.
5880 * descr.h: Include resolv.h.
5881 (struct pthread): Add res field.
5882 * pthread_create.c: Include resolv.h.
5883 (start_thread): Initialize __resp.
5884 * Makefile (tests): Add tst-_res1.
5885 (module-names): Add tst-_res1mod1, tst-_res1mod2.
5886 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
5887 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
5888 libpthread.
5889 * tst-_res1.c: New file.
5890 * tst-_res1mod1.c: New file.
5891 * tst-_res1mod2.c: New file.
5892
1a379ea0
UD
58932003-07-21 Ulrich Drepper <drepper@redhat.com>
5894
7e939b21
UD
5895 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
5896
1a379ea0
UD
5897 * Makefile: Define various *-no-z-defs variables for test DSOs
5898 which has undefined symbols.
5899
ca86a763
UD
59002003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
5901
5902 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
5903 Retry if the stwcx fails to store once_control.
5904
80f536db
UD
59052003-07-20 Ulrich Drepper <drepper@redhat.com>
5906
5907 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
5908 pthread_attr_setaffinity.
5909 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
5910 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
5911 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
5912 * pthread_attr_destroy.c: Free cpuset element if allocated.
5913 * pthread_create.c: Pass iattr as additional parameter to
5914 create_thread.
5915 * sysdeps/pthread/createthread.c: If attribute is provided and
5916 a new thread is created with affinity set or scheduling parameters,
5917 start thread with CLONE_STOPPED.
5918 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
5919 pthread_attr_setaffinity.
5920 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
5921 cpuset element.
5922
73299943
UD
59232003-07-15 Ulrich Drepper <drepper@redhat.com>
5924
5925 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
5926
da35d15e
UD
59272003-07-14 Ulrich Drepper <drepper@redhat.com>
5928
5929 * sysdeps/pthread/configure.in: Require CFI directives also for
5930 ppc and s390.
5931
75540d8a
UD
59322003-07-15 Jakub Jelinek <jakub@redhat.com>
5933
5934 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5935 Add cfi directives.
5936
4a17085f
UD
59372003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5938
5939 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
5940 CLEANUP_JMP_BUF.
5941 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
5942 registers as variables. Call __pthread_mutex_unlock_usercnt.
5943 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5944 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
5945 not self pointer in __writer. Compare with TID to determine
5946 deadlocks.
5947 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5948 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
5949 Likewise.
5950 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
5951 Likewise.
5952 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
5953 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
5954 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
5955 macros also when compiling librt.
5956
6080ecdf
UD
59572003-07-11 Jakub Jelinek <jakub@redhat.com>
5958
5959 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
5960 -fasynchronous-unwind-tables.
5961 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5962 (PSEUDO): Add cfi directives.
5963 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
5964 Likewise.
5965 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5966 Likewise.
5967
da0c02ee
UD
59682003-07-08 Jakub Jelinek <jakub@redhat.com>
5969
5970 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
5971 __pthread_unregister_cancel): Add prototypes and hidden_proto.
5972 * unwind.c (__pthread_unwind_next): Add hidden_def.
5973 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
5974 Likewise.
5975 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
5976 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
5977 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
5978 Likewise.
5979 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
5980 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
5981 Likewise.
5982 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
5983 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
5984 __pthread_unregister_cancel and __pthread_unwind_next.
5985
57a5ea02
UD
59862003-07-04 Jakub Jelinek <jakub@redhat.com>
5987
5988 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
5989 different symbol for the cancellation syscall wrapper and
5990 non-cancellation syscall wrapper.
5991 (PSEUDO_END): Define.
5992
d810b358
UD
59932003-07-05 Richard Henderson <rth@redhat.com>
5994
5995 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
5996 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
5997 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
5998 return actual return value from the syscall, not 0.
d810b358 5999
db54f488
UD
60002003-07-07 Ulrich Drepper <drepper@redhat.com>
6001
6002 * descr.h (struct pthread): Add pid field.
6003 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6004 (__reclaim_stacks): Likewise.
6005 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6006 also check for PID of the signal source.
6007 (__pthread_initialize_minimal_internal): Also initialize pid field
6008 of initial thread's descriptor.
6009 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6010 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6011 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6012 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6013 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6014
5e497a41
UD
60152003-07-05 Ulrich Drepper <drepper@redhat.com>
6016
6017 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6018 Fix use of parameter.
6019 (__libc_cleanup_pop): Likewise.
6020
86a0c4fa
UD
60212003-07-04 Ulrich Drepper <drepper@redhat.com>
6022
6023 * init.c (sigcancel_handler): Change parameters to match handler
6024 for SA_SIGACTION. Check signal number and code to recognize
6025 invalid invocations.
6026
bdbecaa3
RM
60272003-07-03 Roland McGrath <roland@redhat.com>
6028
6029 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6030 Apply sizeof (struct pthread) bias to r13 value.
6031
56421b23
UD
60322003-07-03 Ulrich Drepper <drepper@redhat.com>
6033
fbd90f6c
UD
6034 * sysdeps/pthread/configure.in: Require CFI directives.
6035
56421b23
UD
6036 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6037 definition.
6038 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6039 libpthread compilation.
6040 * unwind.c (__pthread_unwind): Add hidden_def.
6041 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6042
ca2b4cd7
UD
60432003-07-01 Ulrich Drepper <drepper@redhat.com>
6044
6045 * libc-cancellation.c (__libc_cleanup_routine): Define.
6046 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6047 (__pthread_cleanup_pop): Define.
6048
f036e569
UD
60492003-07-01 Richard Henderson <rth@redhat.com>
6050
6051 * sysdeps/alpha/elf/pt-initfini.c: New file.
6052 * sysdeps/alpha/pthread_spin_lock.S: New file.
6053 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6054 * sysdeps/alpha/pthreaddef.h: New file.
6055 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6056 * sysdeps/alpha/tls.h: New file.
6057 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6058 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6059 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6060 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6061 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6062 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6063 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6064 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6065 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6066 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6067
3b985826
UD
60682003-07-01 Ulrich Drepper <drepper@redhat.com>
6069
6070 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6071 cleanup support and unwind info.
6072
3a4d1e1e
UD
60732003-06-30 Ulrich Drepper <drepper@redhat.com>
6074
6075 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6076 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6077 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6078 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6079 * tst-once3.c: Add cleanup handler and check it is called.
6080 * tst-once4.c: Likewise.
6081 * tst-oncex3.c: New file.
6082 * tst-oncex4.c: New file.
6083 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6084
e479cc8e
UD
60852003-06-29 Ulrich Drepper <drepper@redhat.com>
6086
6087 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6088
7d7ff54c
UD
60892003-06-27 Ulrich Drepper <drepper@redhat.com>
6090
483e95d0
UD
6091 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6092 (tf_msgsnd): Likewise.
6093
7d7ff54c
UD
6094 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6095 premature returns a bit more.
6096
7539c7ec
UD
60972003-06-26 Ulrich Drepper <drepper@redhat.com>
6098
6099 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6100 definition to the front.
6101
6102 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6103 the cleanup functions to make the names unique. Fix dwarf opcode
6104 un unwind table.
6105 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6106 functions to make the names unique. Fix CFA offset for two blocks.
6107
0af6a1d9
UD
61082003-06-25 Ulrich Drepper <drepper@redhat.com>
6109
6110 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6111 missing closing braces.
6112 Patch by Christophe Saout <christophe@saout.de>.
6113
eef4a9f3
RM
61142003-06-24 Roland McGrath <roland@redhat.com>
6115
6116 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6117
4165d44d
UD
61182003-06-24 Ulrich Drepper <drepper@redhat.com>
6119
7f8f7b9d
UD
6120 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6121 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6122
4165d44d
UD
6123 * pthreadP.h: Declare __find_thread_by_id.
6124 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6125 * pthread_clock_gettime.c: Allow using other thread's clock.
6126 * pthread_clock_settime.c: Likewise.
6127 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6128 * Makefile: Add rules to build and run tst-clock2.
6129 * tst-clock2.c: New file.
6130
67b78ef9
UD
61312003-06-23 Ulrich Drepper <drepper@redhat.com>
6132
6133 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6134 to use exception-based cleanup handler.
6135 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6136
6137 * tst-cond8.c (ch): Announce that we are done.
6138
6139 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6140
6141 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6142 Also test aio_suspend with timeout value.
6143
61623643
UD
61442003-06-22 Ulrich Drepper <drepper@redhat.com>
6145
3a4f2043
UD
6146 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6147 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6148 attribute_hidden.
6149
61623643
UD
6150 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6151 (__pthread_mutex_lock_internal): Likewise.
6152 (__pthread_mutex_unlock_internal): Likewise.
6153 (__pthread_mutex_unlock_usercnt): Declare.
6154 * pthread_mutex_destroy.c: Always fail if used in any way.
6155 * pthread_mutex_init.c: Update comment.
6156 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6157 * pthread_mutex_timedlock.c: Adjust __nusers.
6158 * pthread_mutex_trylock.c: Adjust __nusers.
6159 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6160 and public interfaces are wrapper with pass additional parameter.
6161 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6162 parameter zero.
6163 * tst-mutex8.c: New file.
6164 * Makefile (tests): Add tst-mutex8.
6165 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6166 __pthread_mutex_unlock_usercnt.
6167 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6168 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6169 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6170 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6171 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6172 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6173 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6174 Add __nusers.
6175 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6176 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6177 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6178 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6179 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6180
6181 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6182 * pthread_mutex_timedlock.c: Likewise.
6183 * pthread_mutex_trylock.c: Adjust __nusers.
6184 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6185 * tst-mutex9.c: New file.
6186 * Makefile (tests): Add tst-mutex9.
6187 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6188 * sysdeps/ia64/tls.h: Likewise.
6189 * sysdeps/powerpc/tls.h: Likewise.
6190 * sysdeps/s390/tls.h: Likewise.
6191 * sysdeps/sh/tls.h: Likewise.
6192 * sysdeps/x86_64/tls.h: Likewise.
6193 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6194 Change type of __owner.
6195 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6196 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6197 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6198 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6199 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6200
9bdabb94
UD
62012003-06-19 Jakub Jelinek <jakub@redhat.com>
6202
6203 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6204 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6205
6206 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6207 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6208 instead of nr to lll_futex_wake. Only set errno and return -1
6209 if err < 0.
6210
6211 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6212 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6213 return actual return value from the syscall, not 0.
6214
f6c93bd9
UD
62152003-06-18 Ulrich Drepper <drepper@redhat.com>
6216
ca343e73
UD
6217 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6218 find a random value.
6219 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6220 errno==EIDRM.
6221
50441a98
UD
6222 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6223 compat_timer_settime.
6224 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6225 compat_timer_gettime.
6226 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6227 compat_timer_getoverrun.
50441a98
UD
6228 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6229 compat_timer_delete.
6230
f6c93bd9
UD
6231 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6232 error-checking mutex detect busy mutexes.
6233
047aec8f
UD
62342003-06-17 Ulrich Drepper <drepper@redhat.com>
6235
1d53508d
UD
6236 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6237 Add ax to clobber list.
6238 (lll_mutex_cond_lock): Likewise.
6239 (lll_mutex_unlock): Likewise.
6240 (lll_lock): Likewise.
6241 (lll_unlock): Likewise.
6242
f23b30e2
UD
6243 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6244 * tst-cancel18.c: New file.
6245 * tst-cancelx18.c: New file.
6246
6247 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6248 and tcdrain.
6249
6250 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6251 * tst-cancel17.c: New file.
6252 * tst-cancelx17.c: New file.
6253
6254 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6255 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6256 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6257
047aec8f
UD
6258 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6259
bbde8527
UD
62602003-06-16 Jakub Jelinek <jakub@redhat.com>
6261
6262 * sysdeps/pthread/createthread.c (create_thread): Set
6263 header.multiple_threads unconditionally.
6264 * allocatestack.c (allocate_stack): Likewise.
6265 * descr.h (struct pthread): Add header.multiple_threads
6266 unconditionally.
6267 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6268 Define for librt. #error if neither libpthread, libc nor librt.
6269 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6270 Likewise.
6271 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6272 CDISABLE): Likewise.
6273 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6274 CDISABLE): Likewise.
6275 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6276 CDISABLE): Likewise.
6277 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6278 CDISABLE): Likewise. Access header.multiple_threads outside of
6279 libc and libpthread.
6280 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6281 Likewise.
6282 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6283 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6284
26676450
UD
62852003-06-17 Ulrich Drepper <drepper@redhat.com>
6286
6287 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6288 Also test early cancellation before the thread reaches the cancellation
6289 point.
6290
6291 * Makefile: Compile forward.c with exceptions.
6292
6293 * sysdeps/unix/sysv/linux/sleep.c: New file.
6294
301a6724
UD
62952003-06-16 Ulrich Drepper <drepper@redhat.com>
6296
0e0deb03
UD
6297 * Makefile: Add CFLAGS definition to compile function wrappers
6298 duplicated from libc with exceptions.
6299 * tst-cancel4.c: Also check cancellation handlers.
6300
301a6724
UD
6301 * Makefile: Add rules to build and run tst-cancel16 and
6302 tst-cancelx16. Add missing CFLAGS definitions.
6303 * tst-cancel16.c: New file.
6304 * tst-cancelx16.c: New file.
6305
7a114794
UD
63062003-06-15 Ulrich Drepper <drepper@redhat.com>
6307
452aea84
UD
6308 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6309 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6310 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6311 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6312
7a114794
UD
6313 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6314 (LIBC_CANCEL_RESET): Likewise.
6315 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6316 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6317 librt-cancellation.
6318 (CFLAGS-libcrt-cancellation.c): Define.
6319 * sysdeps/pthread/librt-cancellation.c: New file.
6320 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6321 macros also when compiling librt.
6322 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6323 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6324 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6325 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6326 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6327 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6328 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6329
6330 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6331 compat_timer_create.
6332
8ba1d429
UD
63332003-06-14 Ulrich Drepper <drepper@redhat.com>
6334
cc8fb6f3
UD
6335 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6336
8ba1d429
UD
6337 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6338 __register_atfork.
6339 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6340 Add libc_hidden_def.
6341
d4f100e2
RM
63422003-06-13 Roland McGrath <roland@redhat.com>
6343
6344 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6345 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6346
dd9423a6
UD
63472003-06-11 Ulrich Drepper <drepper@redhat.com>
6348
6349 * allocatestack.c (queue_stack): Always inline.
6350 * ptreadhP.h (__do_cancel): Likewise.
6351
ed24330d
JJ
63522003-06-10 Jakub Jelinek <jakub@redhat.com>
6353
6354 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6355 a typo.
6356
06120d79
UD
63572003-06-10 Ulrich Drepper <drepper@redhat.com>
6358
6359 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6360 (__pthread_cond_signal): Remove incorrect second addition for
6361 cond_lock!=0.
6362
b1720346
UD
63632003-06-09 Ulrich Drepper <drepper@redhat.com>
6364
5b318f85
UD
6365 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6366 (__pthread_cond_signal): Use correct futex pointer in
6367 __lll_mutex_lock_wait call.
6368
b1720346
UD
6369 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6370 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6371
3e36c37d
UD
63722003-06-08 Ulrich Drepper <drepper@redhat.com>
6373
ecf7955d
UD
6374 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6375 cancelable.
ed24330d 6376 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6377 Likewise.
6378
3e36c37d
UD
6379 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6380 hand-written CFI generation code. Since ENTRY/END also initiated
6381 CFI frames this caused two CFI sets to be generated.
6382
7726edc2
UD
63832003-06-07 Ulrich Drepper <drepper@redhat.com>
6384
6385 * cleanup_routine.c: New file.
6386 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6387 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6388 cleanup handling.
6389 * Makefile (libpthread-routines): Add cleanup_routine.
6390 Add more CFLAGS variables to compile with exceptions. Add comments
6391 why which file needs unwind tables.
6392 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6393 tests.
6394 * tst-cancelx1.c: New file.
6395 * tst-cancelx2.c: New file.
6396 * tst-cancelx3.c: New file.
6397 * tst-cancelx4.c: New file.
6398 * tst-cancelx5.c: New file.
6399 * tst-cancelx6.c: New file.
6400 * tst-cancelx7.c: New file.
6401 * tst-cancelx8.c: New file.
6402 * tst-cancelx9.c: New file.
6403 * tst-cancelx10.c: New file.
6404 * tst-cancelx11.c: New file.
6405 * tst-cancelx12.c: New file.
6406 * tst-cancelx13.c: New file.
6407 * tst-cancelx14.c: New file.
6408 * tst-cancelx15.c: New file.
6409 * tst-cleanupx0.c: New file.
6410 * tst-cleanupx0.expect: New file.
6411 * tst-cleanupx1.c: New file.
6412 * tst-cleanupx2.c: New file.
6413 * tst-cleanupx3.c: New file.
6414
6415 * tst-cleanup0.c: Make standard compliant.
6416 * tst-cleanup1.c: Likewise.
6417
6418 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6419 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6420 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6421 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6422 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6423 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6424 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6425 CLEANUP_JMP_BUF.
6426 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6427 * tst-cancel12.c: New file.
6428 * tst-cancel13.c: New file.
6429 * tst-cancel14.c: New file.
6430 * tst-cancel15.c: New file.
6431 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6432 and tst-cancel15.
6433
6434 * tst-cancel1.c: Add some comments.
6435
6436 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6437 timeout correctly.
6438
7a8a8e21
UD
64392003-06-06 Ulrich Drepper <drepper@redhat.com>
6440
6441 * Makefile (CFLAGS-pthread_cancel.c): Define.
6442
4ad0bbf4
UD
64432003-06-05 Ulrich Drepper <drepper@redhat.com>
6444
6445 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6446 Change type of __writer element to int.
6447 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6448 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6449 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6450 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6451 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6452 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6453 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6454 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6455 Compare with TID to determine deadlocks.
6456 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6457 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6458 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6459 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6460 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6461 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6462 Likewise.
6463 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6464 Likewise.
6465 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6466 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6467 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6468 Likewise.
6469 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6470 Likewise.
6471 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6472 * Makefile (tests): Add tst-rwlock12.
6473 * tst-rwlock12.c: New file.
6474
332faa96
JJ
64752003-06-05 Jakub Jelinek <jakub@redhat.com>
6476
6477 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6478 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6479 Remove bogus hidden_proto.
6480 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6481 Likewise.
6482 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6483 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6484 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6485 ___lll_mutex_timedlock): Likewise.
6486
29d9e2fd
UD
64872003-06-04 Ulrich Drepper <drepper@redhat.com>
6488
6489 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6490 (__pthread_cond_signal): Add some code to eventually handle
6491 cond_lock!=0.
6492
6f1acb30
UD
64932003-06-01 Ulrich Drepper <drepper@redhat.com>
6494
6495 * Makefile (tests): Add tst-exec4.
6496 (tst-exec4-ARGS): Define.
6497 * tst-exec4.c: New file.
6498
49b65043
UD
64992003-05-31 Ulrich Drepper <drepper@redhat.com>
6500
31195be2
UD
6501 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6502 Also fail if tv_nsec < 0.
6503 (__lll_timedwait_tid): Likewise.
6504 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6505 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6506 Likewise.
6507 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6508 Likewise.
6509 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6510 Likewise.
6511 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6512 Likewise.
80b54217
UD
6513 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6514 Likewise.
6515 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6516 Likewise.
31195be2 6517
dcfc8224
UD
6518 * Makefile (tests): Add tst-sem8 and tst-sem9.
6519 * tst-sem8.c: New file.
6520 * tst-sem9.c: New file.
6521 * sem_open.c: Fix creation of in_use record if the file exists but
6522 no internal record.
6523
49b65043
UD
6524 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6525 definitions.
6526
6527 * sysdeps/pthread/timer_create.c (timer_create): In case
6528 evp==NULL, assign timer ID to sival_ptr.
6529
6530 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6531 struct pthread_unwind_buf *.
6532 (struct pthread): Likewise for cleanup_jmp_buf element.
6533
6534 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6535 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6536 * unwind.c (__pthread_unwind_next): Likewise.
6537
50794a45
UD
65382003-05-30 Ulrich Drepper <drepper@redhat.com>
6539
5d4f57bd
UD
6540 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6541 (lll_futex_timed_wait): Use int for futex value parameter.
6542 (lll_futex_wake): Likewise.
6543 (lll_futex_requeue): Likewise.
6544
6545 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6546 Replace one memory operation with one register operation.
6547
6548 * tst-join4.c (do_test): Fix error message.
6549
7ab7ea33
UD
6550 * tst-rwlock6.c (do_test): Use correct format specifier.
6551
6552 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6553 (__lll_mutex_lock_wait): Replace one memory operation with one
6554 register operation.
6555 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6556 (__lll_mutex_lock_wait): Likewise.
6557
50794a45
UD
6558 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6559 (__lll_mutex_cond_lock): Add one to value parameter of
6560 __lll_lock_wait to reflect reality in the futex syscall.
6561 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6562 (lll_mutex_cond_lock): Likewise.
6563
5a70784e
JJ
65642003-05-30 Jakub Jelinek <jakub@redhat.com>
6565
6566 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
6567 New function.
6568 (lll_mutex_cond_lock): Define.
6569
e7c5ac68
UD
65702003-05-29 Ulrich Drepper <drepper@redhat.com>
6571
586d1748
UD
6572 * Makefile (tests): Add tst-signal6.
6573 * tst-signal6.c: New file.
6574
b8ba4a27
UD
6575 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
6576 (__lll_mutex_unlock_force): New function
6577 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6578
65d46efe
UD
6579 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6580 (__lll_mutex_unlock_force): New function.
6581 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6582
6583 * tst-rwlock7.c (do_test): Use correct format specifier.
6584
e7c5ac68
UD
6585 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
6586 Find break parameter in correct asm argument.
6587
284bdc42
UD
65882003-05-27 Jakub Jelinek <jakub@redhat.com>
6589
6590 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
6591 Remove out4.
6592 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
6593 error occured.
6594 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6595 Add __mutex.
6596 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
6597 lll_futex_requeue, lll_mutex_unlock_force): Define.
6598
e7c5ac68
UD
65992003-05-30 Jakub Jelinek <jakub@redhat.com>
6600
6601 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6602 (pthread_cond_t): Add __mutex.
6603 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
6604 lll_futex_requeue, lll_mutex_unlock_force): Define.
6605
ea2630c6
UD
66062003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6607
6608 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
6609 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 6610 Add __mutex field.
ea2630c6
UD
6611 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
6612 Define.
6613 (lll_futex_wait, lll_futex_wake): Define.
6614 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
6615 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
6616 FUTEX_REQUEUE instead of FUTEX_WAIT.
6617 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
6618 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
6619 mutex which was used in condvar structure. Call
6620 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
6621 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
6622
6623 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
6624 include tcb-offsets.h. Read wakeup value in locked region.
6625 Use the value of gbr register as THREAD_ID.
6626 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6627 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
6628 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
6629
6630 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
6631 macros.
6632
5a77f150
UD
66332003-05-28 Ulrich Drepper <drepper@redhat.com>
6634
6635 * sysdeps/pthread/pthread_cond_broadcast.c
6636 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
6637
7661d9f7
UD
66382003-05-26 Ulrich Drepper <drepper@redhat.com>
6639
6640 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
6641 typo in register name.
6642 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
6643 correctly. Actually use requeue. Little optimization.
6644 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
6645 mutex address early. Handle cancellation state as 32-bit value.
6646 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6647 Remove unnecessary label.
6648
69431c9a
UD
66492003-05-25 Ulrich Drepper <drepper@redhat.com>
6650
6651 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
6652 instead of FUTEX_WAIT.
6653 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
6654 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6655 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6656 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
6657 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
6658 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
6659 used in condvar structure. Call __pthread_mutex_cond_lock instead
6660 of __pthread_mutex_lock_internal.
6661 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6662 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6663 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6664 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
6665 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6666 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6667 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
6668 Add pthread_mutex_cond_lock.
6669 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
6670 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
6671 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
6672 lll_mutex_cond_lock.
6673 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
6674 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 6675 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 6676 Add __mutex field.
248a3490 6677 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
6678 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6679
6680 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
6681 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6682
6683 * pthreadP.h: Declare __pthread_mutex_cond_lock.
6684 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
6685 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
6686 macro don't define aliases.
6687
6688 * cancellation.c: Remove __pthread_enable_asynccancel_2.
6689 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
6690 * sysdeps/pthread/pthread_cond_timedwait.c: Use
6691 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
6692 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6693 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6694 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6695 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6696 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6697
fddfebbd
UD
66982003-05-17 Ulrich Drepper <drepper@redhat.com>
6699
6700 * sem_open.c: Fix one endless loop. Implement correct semantics
6701 wrt opening the same semaphore more then once.
6702 * sem_close.c: Adjust for sem_open change.
6703 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
6704 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
6705 * Makefile (tests): Add tst-sem7.
6706 * tst-sem7.c: New file.
6707
1eefffb0
RM
67082003-05-16 Roland McGrath <roland@redhat.com>
6709
6710 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
6711 uninitialized variable braino.
6712
6e66dc78
UD
67132003-05-16 Ulrich Drepper <drepper@redhat.com>
6714
23ae6451
UD
6715 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
6716 test for syscall availability.
6717
6718 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
6719 __no_posix_timers to -1 if the syscalls don't exist.
6720
7ac5b8e2
UD
6721 * pthread_join.c (pthread_join): Set tid field of the joined
6722 thread to -1. This isn't necessary but helps to recognize some
6723 error conditions with almost no cost.
6724
6725 * allocatestack.c (FREE_P): Also negative values indicate an
6726 unused stack.
6727
6e66dc78
UD
6728 * unwind.c: Include <unistd.h>.
6729
855dba3c
UD
67302003-05-14 Ulrich Drepper <drepper@redhat.com>
6731
6732 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
6733
81f3ac4c
UD
67342003-05-14 Jakub Jelinek <jakub@redhat.com>
6735
6736 * Makefile (crti-objs, crtn-objs): New variables.
6737 (omit-deps, extra-objs): Add crtn.
6738 ($(objpfx)libpthread.so): Depend on both crti and crtn
6739 and links to them in multidir.
6740 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
6741
7158eae4
UD
67422003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
6743
6744 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6745 (lll_mutex_unlock): Use atomic_exchange_rel.
6746
edf205d5
UD
67472003-05-11 Ulrich Drepper <drepper@redhat.com>
6748
6749 * cond-perf.c (cons): Add missing locking around setting of alldone.
6750
a3f979a7
UD
67512003-05-10 Ulrich Drepper <drepper@redhat.com>
6752
6753 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
6754 related macros.
6755 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
6756
880867a4
UD
67572003-05-09 Ulrich Drepper <drepper@redhat.com>
6758
949ec764
UD
6759 * tst-sem6.c: New file.
6760 * Makefile (tests): Add tst-sem6.
6761
6762 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
6763 Use atomic_exchange_rel instead of atomic_exchange.
6764 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
6765 Likewise.
6766
6767 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
6768 code for lll_futex_wait and lll_futex_wake in static apps. Use
6769 vsyscall is possible.
6770
6771 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
6772 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
6773 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
6774 pthread_setaffinity_np.
6775 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
6776 and pthread_setaffinity_np.
6777 * Makefile (libpthread-routines): Add pthread_getaffinity and
6778 pthread_setaffinity.
6779
880867a4
UD
6780 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
6781 use it in case mmap to allocate the stack fails.
6782 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
6783 ARCH_MAP_FLAGS here.
6784 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
6785 ARCH_RETRY_MMAP.
6786
92d83c72
UD
67872003-05-08 Ulrich Drepper <drepper@redhat.com>
6788
6789 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
6790 handler implementation. It is now lockless in fork().
6791 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
6792 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
6793 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
6794 declare the __fork_*_lists.
6795 (struct fork_handler): Include pointers to all three functions.
6796 Add next, refcntr and need_signal elements.
6797 (__fork_handlers): New declaration.
6798 (__register_atfork_malloc): Remove declaration.
6799 (HAVE_register_atfork_malloc): Remove definition.
6800 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
6801 __pthread_child_handler variable.
6802 (__libc_pthread_init): Use __register_atfork instead of explicitly
6803 adding to the list.
6804 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
6805 and lll_futex_wake.
6806 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
6807
6808 * unwind.c (unwind_cleanup): Print error message and then abort. This
6809 function must never be reached.
6810
6811 * cond-perf.c: New file.
6812
be4d8038
UD
68132003-05-05 Ulrich Drepper <drepper@redhat.com>
6814
6815 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
6816
c6696b79
RM
68172003-05-04 Roland McGrath <roland@redhat.com>
6818
6819 * Makefile ($(objpfx)../libc.so): New target.
6820
7da168bf
UD
68212003-05-02 Ulrich Drepper <drepper@redhat.com>
6822
6823 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6824 (pthread_condattr_t): Size is only an int, don't use long for
6825 alignment.
6826 (pthread_mutexattr_t): Likewise.
7da168bf
UD
6827 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6828 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6829 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6830
9a7178d6
UD
68312003-05-01 Ulrich Drepper <drepper@redhat.com>
6832
6833 * sysdeps/i386/tls.h: Define THREAD_ID.
6834 * sysdeps/ia64/tls.h: Likewise.
6835 * sysdeps/powerpc/tls.h: Likewise.
6836 * sysdeps/s390/tls.h: Likewise.
6837 * sysdeps/sh/tls.h: Likewise.
6838 * sysdeps/x86_64/tls.h: Likewise.
6839 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
6840 record ownership.
6841 * pthread_mutex_timedlock.c: Likewise.
6842 * pthread_mutex_trylock.c: Likewise.
6843 * pthread_mutex_unlock.c: Likewise.
6844 * pthread_rwlock_trywrlock.c: Likewise.
6845 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
6846 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6847 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6848 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6849
6850 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
6851 flag.
6852
a234e27d
UD
68532003-04-29 Jakub Jelinek <jakub@redhat.com>
6854
6855 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
6856 (__SIZEOF_PTHREAD_COND_T): Define to 48.
6857 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
6858 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6859 Make __align long long instead of long.
6860 (pthread_rwlock_t): Formatting.
6861 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
6862 (pthread_rwlock_t): Formatting.
6863 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6864 (pthread_cond_t): Make __align long long instead of long.
6865 (pthread_rwlock_t): Move __flags field to the same position as in
6866 linuxthreads.
6867
f025c136
UD
68682003-04-30 Ulrich Drepper <drepper@redhat.com>
6869
6870 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
6871 * tst-rwlock7.c (do_test): Likewise.
6872
7531ab9e
RM
68732003-04-26 Roland McGrath <roland@redhat.com>
6874
6875 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
6876
299601a1
UD
68772003-04-22 Jakub Jelinek <jakub@redhat.com>
6878
299601a1
UD
6879 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
6880 sizeof (struct pthread).
6881 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 6882 1 struct pthread.
299601a1
UD
6883 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
6884 to 0.
6885 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
6886 struct pthread.
6887 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
6888 to 32-bit bytes.
6889 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
6890 tcbp.
6891 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
6892 unneccessarily.
6893 (NO_TLS_OFFSET): Define.
299601a1
UD
6894 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
6895 add TLS_TCB_SIZE unnecessarily.
299601a1 6896
950094f8
RM
68972003-04-22 Roland McGrath <roland@redhat.com>
6898
6899 * Makeconfig (shared-thread-library): Reverse link order to work
6900 around linker bug.
6901
dc2f6455
UD
69022003-04-22 Ulrich Drepper <drepper@redhat.com>
6903
6904 * semaphore.h: Fix typo in comment.
6905
e7608d77
UD
69062003-04-21 Ulrich Drepper <drepper@redhat.com>
6907
6a87ee19
UD
6908 * sysdeps/pthread/sigfillset.c: New file.
6909
e7608d77
UD
6910 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
6911 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
6912 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
6913 * sysdeps/pthread/sigaction.c: Likewise.
6914 * sysdeps/pthread/sigprocmask.c: New file.
6915 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
6916 __SIGRTMIN+1.
6917 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
6918 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
6919 in this case.
6920
0b3df49e
UD
69212003-04-19 Ulrich Drepper <drepper@redhat.com>
6922
58a7a325
UD
6923 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6924 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
6925
0b3df49e
UD
6926 * sysdeps/unix/sysv/linux/unregister-atfork.c
6927 (__unregister_atfork): Don't free memory not allocated dynamically.
6928
6929 * semaphore.h: Remove __THROW marker from cancellation points.
6930 * nptl/sysdeps/pthread/pthread.h: Likewise.
6931
7d74651e
UD
69322003-04-18 Ulrich Drepper <drepper@redhat.com>
6933
76a67697
UD
6934 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
6935 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
6936 __THROW.
6937
dd9d6538
JJ
69382003-04-16 Jakub Jelinek <jakub@redhat.com>
6939
6940 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
6941
4ab6f47c
RM
69422003-04-15 Roland McGrath <roland@redhat.com>
6943
6944 * forward.c (__pthread_unwind): Tweak to avoid warning.
6945
162434a6
UD
69462003-04-15 Ulrich Drepper <drepper@redhat.com>
6947
6948 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
6949
35909161
UD
69502003-04-14 Ulrich Drepper <drepper@redhat.com>
6951
18ddd3aa 6952 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
6953 overflow CFA advance instructions.
6954 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6955
18a8e730
UD
69562003-04-14 Jakub Jelinek <jakub@redhat.com>
6957
bd4f43b4
UD
6958 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
6959 * sysdeps/i386/pthread_spin_lock.c: Likewise.
6960 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
6961 defined.
6962
18a8e730
UD
6963 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
6964 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
6965 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
6966 DW_CFA_advance_loc for .Laddl-.Lsubl.
6967
08c765fa
UD
69682003-04-13 Ulrich Drepper <drepper@redhat.com>
6969
18a8e730
UD
6970 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
6971 position-independent unwind data for static libraries.
6972 Add missing unwind info. Add comments.
6973
ad2be852
UD
6974 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
6975 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6976 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
6977 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6978
177d1ad3
UD
69792003-04-12 Ulrich Drepper <drepper@redhat.com>
6980
08c765fa
UD
6981 * Makefile: Make sure all cancellation points are compiled with
6982 exception and asynchronous unwind tables.
6983
177d1ad3
UD
6984 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
6985 which mishandles loading of global object addresses in PIC.
6986 (THREAD_SETMEM_NC): Likewise.
6987
09d65ff3
UD
69882003-04-11 Ulrich Drepper <drepper@redhat.com>
6989
6990 * pthread.h: Define new data structure for cleanup buffer. Declare
6991 new cleanup handler interfaces.
6992 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
6993 (struct pthread): Add cleanup_jmp_buf pointer. Define
6994 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
6995 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
6996 it. Declare old cleanup handler installation functions.
6997 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
6998 handling.
6999 * cleanup_defer.c: Likewise.
7000 * cleanup_compat.c: New file. Old cleanup code.
7001 * cleanup_def_compat.c: New file. Old cleanup code.
7002 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7003 if own thread descriptor.
7004 * unwind.c: New file.
7005 * forward.c: Add __pthread_unwind.
7006 * init.c (pthread_functions): Add __pthread_unwind.
7007 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7008 Add ptr___pthread_unwind.
7009 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7010 and unwind function.
7011 * Makefile (libpthread-routines): Add cleanup_compat,
7012 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7013 table generation if necessary.
7014 * version.c: Record whether unwind support is compiled in.
7015 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7016 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7017 handler interfaces.
7018 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7019 complication to generate unwind information for syscall wrappers.
68107ec0 7020 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7021 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7022 __cleanup_fct_attribute.
7023
7024 * Makefile: Add rules to build and run tst-cleanup0.
7025 * tst-cleanup0.c: New file.
7026 * tst-cleanup0.expect: New file.
7027
7028 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7029 caller. Optimize to avoid often unecessary local variable.
7030
0dc44b51
RM
70312003-04-11 Roland McGrath <roland@redhat.com>
7032
7033 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7034 sets variable `multidir'; include that.
7035 (generated): Add it.
7036 ($(objpfx)$(multidir)/crti.o): New target.
7037 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7038
84a80719
UD
70392003-04-11 Ulrich Drepper <drepper@redhat.com>
7040
7041 * tst-attr2.c (do_test): Add cast to avoid warning.
7042 * tst-mutex4.c (do_test): Likewise.
7043
88ff4759
UD
70442003-04-10 Ulrich Drepper <drepper@redhat.com>
7045
7046 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7047 in child.
7048
b2041097
UD
70492003-04-09 Ulrich Drepper <drepper@redhat.com>
7050
7051 * Makefile (tests): Add tst-detach1.
7052 * tst-detach1.c: New file.
7053
f9657e88
UD
70542003-04-08 Ulrich Drepper <drepper@redhat.com>
7055
9afe4964
UD
7056 * sysdeps/pthread/pthread.h: Remove duplicate
7057 pthread_cleanup_{push,pop} definitions.
7058
f9657e88
UD
7059 * tst-barrier2.c: Eliminate warnings.
7060 * tst-cancel4.c: Likewise.
7061 * tst-cond4.c: Likewise.
7062 * tst-cond6.c: Likewise.
7063 * tst-detach1.c: Likewise.
7064 * tst-rwlock4.c: Likewise.
7065 * tst-rwlock6.c: Likewise.
7066 * tst-rwlock7.c: Likewise.
7067 * tst-sem3.c: Likewise.
7068 * tst-spin2.c: Likewise.
7069 * tst-umask1.c: Likewise.
7070
69b35e86
UD
70712003-04-07 Ulrich Drepper <drepper@redhat.com>
7072
7073 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7074
c70ad7d7
UD
70752003-04-06 Ulrich Drepper <drepper@redhat.com>
7076
7077 * descr.h (struct pthread): Move cancelhandling member to the front.
7078
54e0138f
UD
70792003-04-05 Ulrich Drepper <drepper@redhat.com>
7080
7081 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7082 malloc_parent, and malloc_child statically.
7083 (__register_atfork_malloc): New function.
7084 (free_mem): Don't free any of the malloc_* variables on the list.
7085 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7086 Define HAVE_register_atfork_malloc.
7087
b22d701b
UD
70882003-04-04 Ulrich Drepper <drepper@redhat.com>
7089
7090 * sysdeps/pthread/createthread.c (create_thread): Add some more
7091 comments explaining when to set multiple_threads and when not.
7092
7093 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7094 THREAD_ATOMIC_BIT_SET if not already defined.
7095 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7096 THREAD_ATOMIC_BIT_SET:
7097 * sysdeps/x86_64/tls.h: Likewise.
7098 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7099 THREAD_ATOMIC_CMPXCHG_VAL.
7100 (_pthread_cleanup_pop_restore): Likewise.
7101 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7102 (__pthread_enable_asynccancel_2): Likewise.
7103 (__pthread_disable_asynccancel): Likewise.
7104 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7105 (__libc_disable_asynccancel): Likewise.
7106 * init.c (sigcancel_handler): Likewise.
7107 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7108 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7109
86246935
UD
71102003-04-03 Ulrich Drepper <drepper@redhat.com>
7111
7112 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7113 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7114 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7115 * Makefile (tests): Add tst-cancel11.
7116 * tst-cancel11.c: New file.
7117
6b4686a5
UD
71182003-04-01 Ulrich Drepper <drepper@redhat.com>
7119
7120 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7121 round, not the first. Use specific_used flag instead of local
7122 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7123 (__free_tcb): Don't call deallocate_tsd here.
7124 (start_thread): Call deallocate_tsd here.
7125 * pthread_setspecific.c: Set specific_used flag really only when
7126 needed.
0d73a73b 7127 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7128 * tst-tsd3.c: New file.
0d73a73b 7129 * tst-tsd4.c: New file.
6b4686a5 7130
42b2395d
UD
71312003-03-31 Ulrich Drepper <drepper@redhat.com>
7132
211d90c5
UD
7133 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7134 Use atomic_exchange_and_add instead of __lll_add.
7135 (__lll_mutex_timedlock): Likewise.
7136 Patch by Ian Wienand.
7137
71382003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7139
7140 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7141 (SINGLE_THREAD_P): Fix typo.
7142 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7143
71442003-03-31 Ulrich Drepper <drepper@redhat.com>
7145
7146 * Makefile (tests): Add tst-align.
7147 * tst-align.c: New file.
7148 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7149
42b2395d
UD
7150 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7151 function correctly.
7152
211d90c5
UD
7153 * tst-tsd2.c: Add casts to avoid warnings.
7154
163b180f
UD
71552003-03-30 Ulrich Drepper <drepper@redhat.com>
7156
7157 * descr.h (struct pthread): Move most often used elements to the front.
7158
ea473bad
UD
71592003-03-29 Ulrich Drepper <drepper@redhat.com>
7160
7161 * Makefile (libpthread-routines): Add pthread_atfork.
7162 (libpthread-static-only-routines): Add pthread_atfork.
7163
dd731d53
UD
71642003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7165
7166 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7167 of TLS_DTV_AT_TP.
7168 (INSTALL_DTV): Add parens.
7169 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7170 Use passed descr instead of THREAD_SELF.
7171 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7172 (__lll_mutex_timedlock_wait): Correct expected value after
7173 spurious wakeup.
7174 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7175 Release lock before waking up the waiters.
7176 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7177 criteria. Reorderstruct passed to cleanup handler. Fix
7178 handling of cancellation and failung pthread_mutex_unlock call.
7179 Use __pthread_enable_asynccancel_2 instead of
7180 __pthread_enable_asynccancel.
7181 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7182 Return result of lock re-get if it fails.
7183 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7184 for __pthread_cleanup_push.
7185 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7186 completely broken rwlock implementation.
7187 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7188 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7189 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7190 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7191 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7192 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7193 versioned_symbol macro.
7194 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7195 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7196
c75d02f0
UD
71972003-03-27 Ulrich Drepper <drepper@redhat.com>
7198
5f5004df
UD
7199 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7200 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7201 and __helper_tid.
7202 (struct timer): Remove th and bar field.
7203 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7204 debugging code. Create only one helper thread.
7205 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7206 helper thread.
7207 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7208 Renamed. Define statically. Use thread info from siginfo.
7209 (__helper_once): New variable.
7210 (__helper_tid): New variable.
7211 (__reset_helper_control): New function.
7212 (__start_helper_thread): New function.
7213
18d009ca
UD
7214 * pthread_create.c (start_thread): Don't use setjmp inside
7215 __builtin_expect to work around gcc bug.
7216
c75d02f0
UD
7217 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7218 timer_delete syscall fails, but not with ENOSYS, set
7219 __no_posix_timers.
7220
7221 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7222 (timer_settime): Fix typo.
28cf3058
UD
7223 * sysdeps/unix/sysv/linux/timer_getoverr.c
7224 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7225
049ac259
JJ
72262003-03-27 Jakub Jelinek <jakub@redhat.com>
7227
7228 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7229 offset of cleanupbuf.__prev.
7230
f93d39dd
JJ
72312003-03-26 Jakub Jelinek <jakub@redhat.com>
7232
7233 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7234 of included file.
7235
f064e4c5
UD
72362003-03-26 Ulrich Drepper <drepper@redhat.com>
7237
7238 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7239 NULL provide default definition to syscall.
7240
83e886a3
RM
72412003-03-25 Roland McGrath <roland@redhat.com>
7242
7243 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7244 (timer_id2ptr): Fix typo.
7245
09402f5b
UD
72462003-03-25 Ulrich Drepper <drepper@redhat.com>
7247
7248 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7249 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7250 * sysdeps/ia64/pthreaddef.h: Likewise.
7251 * sysdeps/powerpc/pthreaddef.h: Likewise.
7252 * sysdeps/s390/pthreaddef.h: Likewise.
7253 * sysdeps/sh/pthreaddef.h: Likewise.
7254 * sysdeps/x86_64/pthreaddef.h: Likewise.
7255 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7256 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7257 being changed.
7258 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7259 SIGTIMER is not unblocked.
7260 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7261 RT signal taken.
7262 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7263 be send.
7264 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7265 pass pointer through as ID.
7266 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7267 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7268 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7269 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7270 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7271 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7272 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7273 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7274 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7275 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7276 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7277 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7278 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7279 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7280 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7281 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7282 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7283 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7284 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7285 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7286 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7287 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7288 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7289 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7290 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7291 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7292 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7293 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7294 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7295 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7296 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7297 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7298 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7299
7300 * pthreadP.h: Remove FRAME_LEFT definition.
7301 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7302 already left frame. Programs which have this problem are not POSIX
7303 compliant.
7304 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7305
5e826ab5
UD
73062003-03-24 Ulrich Drepper <drepper@redhat.com>
7307
7308 * sysdeps/pthread/tst-timer.c: Check return values of the
7309 functions we test.
7310
b910f788
RM
73112003-03-23 Roland McGrath <roland@redhat.com>
7312
3045a1fe
RM
7313 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7314 * tst-tls3mod.c: Likewise.
7315 * tst-tls1.c: Likewise.
7316 * tst-tls2.c: Likewise.
7317
85047fe3
RM
7318 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7319 undefined behavior.
7320
b910f788
RM
7321 * tst-join5.c (tf1, tf2): Add a cast.
7322
7323 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7324
7325 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7326 Don't test anything.
7327 * tst-cond4.c: Likewise.
7328 * tst-cond6.c: Likewise.
7329 * tst-flock2.c: Likewise.
7330 * tst-mutex4.c: Likewise.
7331 * tst-rwlock4.c: Likewise.
7332 * tst-signal1.c: Likewise.
7333 * tst-spin2.c: Likewise.
7334 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7335
7336 * tst-mutex4.c: Use test-skeleton.c.
7337 * tst-spin2.c: Likewise.
7338 * tst-sysconf.c: Likewise.
7339 * tst-barrier2.c: Likewise.
7340 * tst-cond4.c: Likewise.
7341 * tst-cond6.c: Likewise.
7342 * tst-rwlock4.c: Likewise.
7343 * tst-unload.c: Likewise.
7344 * tst-flock2.c (do_test): Use return instead of exit.
7345
4baa087a
RM
73462003-03-22 Jakub Jelinek <jakub@redhat.com>
7347
7348 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7349
5a3ab2fc
UD
73502003-03-21 Ulrich Drepper <drepper@redhat.com>
7351
9f07eae2
UD
7352 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7353 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7354 instead of __lll_compare_and_swap.
7355 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7356 Likewise.
7357 Removed definition if __lll_compare_and_swap.
7358
5a3ab2fc
UD
7359 * cancellation.c: Adjust for new form of compare&exchange macros.
7360 * cleanup_defer.c: Likewise.
7361 * init.c: Likewise.
7362 * libc-cancellation.c: Likewise.
7363 * old_pthread_cond_broadcast.c: Likewise.
7364 * old_pthread_cond_signal.c: Likewise.
7365 * old_pthread_cond_timedwait.c: Likewise.
7366 * old_pthread_cond_wait.c: Likewise.
7367 * pthread_cancel.c: Likewise.
7368 * pthread_create.c: Likewise.
7369 * pthread_detach.c: Likewise.
7370 * pthread_join.c: Likewise.
7371 * pthread_key_delete.c: Likewise.
7372 * pthread_setcancelstate.c: Likewise.
7373 * pthread_setcanceltype.c: Likewise.
7374 * pthread_timedjoin.c: Likewise.
7375 * pthread_tryjoin.c: Likewise.
7376 * sysdeps/pthread/createthread.c: Likewise.
7377
b1aea098
UD
73782003-03-20 Ulrich Drepper <drepper@redhat.com>
7379
7380 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7381 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7382 definitions. Replace uses with calls to atomic_* functions.
7383 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7384 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7385 __lll_test_and_set calls with atomic_exchange_and_add and
7386 atomic_exchange calls respectively.
7387 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7388 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7389 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7390 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7391 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7392 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7393 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7394
7395 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7396 returns the old value.
7397
100a7100
RM
73982003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7399
7400 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7401 int for variable OLDVAL and correct inline assembler contraint.
7402 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7403 type int for variable OLD.
7404
7405 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7406 only for s390-32.
7407 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7408 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7409 instead of multiple_threads field in the TCB.
7410
95767b36
UD
74112003-03-19 Ulrich Drepper <drepper@redhat.com>
7412
4009bf40
UD
7413 * sysdeps/i386/i686/bits/atomic.h: Removed.
7414 * sysdeps/i386/i586/bits/atomic.h: Removed.
7415 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7416 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7417 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7418 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7419 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7420 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7421 * atomic.h: Removed. Moved to glibc.
7422
560a784f
UD
7423 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7424 support for clock selection.
7425
95767b36
UD
7426 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7427 signalling waiters.
7428
043ad426
RM
74292003-03-18 Roland McGrath <roland@redhat.com>
7430
94659495
RM
7431 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7432 Add __lll_rel_instr first. Add memory clobber.
7433 (lll_mutex_unlock): Use __lll_test_and_set.
7434 From Paul Mackerras <paulus@samba.org>.
7435
7436 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7437 unconditionally.
7438 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7439 (SINGLE_THREAD_P): Add `header.' prefix.
7440 From Paul Mackerras <paulus@samba.org>.
7441
043ad426
RM
7442 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7443 pthread_timedjoin_np to ...
7444 (libpthread: GLIBC_2.3.3): ... here.
7445 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7446
7447 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7448 Avoid shadowing VAL variable.
7449
7450 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7451 New macro.
7452
86a9ee5e
UD
74532003-03-18 Ulrich Drepper <drepper@redhat.com>
7454
ac9e0aa1
UD
7455 * Makefile (tests): Add tst-cond11.
7456 * tst-cond11.c: New file.
7457
a14b373c
UD
7458 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7459 struct passed to cleanup handler to eliminate one more
7460 instruction.
7461 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7462
24a49f38
UD
7463 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7464 (pthrad_cond_t): Replace __unused field with __clock.
7465
7466 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7467 waken all waiters in cleanup handler.
7468 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7469 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7470
86a9ee5e
UD
7471 * pthread_condattr_getclock.c: New file.
7472 * pthread_condattr_setclock.c: New file.
7473 * sysdeps/pthread/pthread.h: Declare these new functions.
7474 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7475 * Makefile (libpthread-routines): Add the new functions.
7476 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7477 Renamed field to value. Document use of the bits.
7478 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7479 change.
7480 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7481 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7482 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7483 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7484 Add __clock field.
7485 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7486 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7487 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7488 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7489 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7490 Implement clock selection.
7491 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7492 * pthread-errnos.sym: Add ENOSYS.
7493 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7494 _POSIX_CLOCK_SELECTION.
7495 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7496
7497 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7498 invalid .size directive.
7499
98054a05
RM
75002003-03-17 Roland McGrath <roland@redhat.com>
7501
7502 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7503 Formatting tweaks.
7504
001bea71
UD
75052003-03-17 Ulrich Drepper <drepper@redhat.com>
7506
4773086e
UD
7507 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7508 Use __lll_add instead of spelling it out. Use protected symbol names.
7509 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7510 Use __lll_add.
7511 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7512 Renamed from lll_compare_and_swap. Use new name where necessary.
7513 (__lll_add): Defined.
7514 (__lll_dec_if_positive): Defined.
7515 (__lll_test_and_set): Defined.
7516 * sysdeps/ia64/pthread_spin_init.c: Removed.
7517 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7518 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7519 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7520 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7521 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7522 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7523 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7524 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7525 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7526 __sync_lock_release_si.
7527 Patch by Jakub Jelinek.
7528
7529 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7530 Fix timeout handling.
7531 (__lll_timedwait_tid): Likewise.
7532 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7533 Patch by Jakub Jelinek.
7534
7535 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7536
de4471dd
RM
75372003-03-17 Roland McGrath <roland@redhat.com>
7538
7539 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7540 * sysdeps/pthread/pthread_spin_init.c: New file.
7541 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7542 * sysdeps/powerpc/Makefile: New file.
7543 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7544 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7545 * sysdeps/powerpc/pthreaddef.h: New file.
7546 * sysdeps/powerpc/tcb-offsets.sym: New file.
7547 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7548 * sysdeps/powerpc/tls.h: New file.
7549 * sysdeps/powerpc/bits/atomic.h: New file.
7550 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7551 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7552 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7553
de4471dd
RM
7554 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7555 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7556 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7557 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7558 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7559 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7560 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7561 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7562 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7563 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7564 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7565 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
7566 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
7567 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
7568 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
7569
7570 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
7571 not gettimeofday.
7572 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
7573 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7574 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
7575 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
7576 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7577
5778033f
UD
75782003-03-17 Ulrich Drepper <drepper@redhat.com>
7579
7580 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
7581 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7582 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7583 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7584 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
7585
796038f8
RM
75862003-03-16 Roland McGrath <roland@redhat.com>
7587
7588 * tst-fork4.c: Include <string.h>.
7589 * tst-signal2.c: Likewise.
7590 * tst-mutex5.c (do_test): exit -> return.
7591 * tst-mutex2.c: Include <stdlib.h>.
7592
51d0678c
UD
75932003-03-16 Ulrich Drepper <drepper@redhat.com>
7594
5778033f
UD
7595 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7596 (__lll_mutex_timedlock_wait): Correct expected value after
7597 spurious wakeup. Otherwise we would never wait again.
7598
b6e2f87a
UD
7599 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
7600 zone versus inline asm stupidity. Use correct instructions.
7601
51d0678c
UD
7602 * tst-rwlock6.c: Add some more status output.
7603
8112cc70
RM
76042003-03-15 Roland McGrath <roland@redhat.com>
7605
7606 * sysdeps/pthread/configure.in: New file.
7607 * sysdeps/pthread/configure: New file (generated).
7608
49773c19
UD
76092003-03-15 Ulrich Drepper <drepper@redhat.com>
7610
7611 * allocatestack.c (allocate_stack): Store the exact stack size of
7612 user allocated stacks.
7613
eec0ca9f
JJ
76142003-03-15 Jakub Jelinek <jakub@redhat.com>
7615
7616 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
7617 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
7618 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7619 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
7620 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
7621 Use `header.' prefix.
7622 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7623
a87731e2
UD
76242003-03-15 Ulrich Drepper <drepper@redhat.com>
7625
7626 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
7627 __builtin_frame_address, use stack pointer.
7628
7629 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
7630 instead of __builtin_frame_pointer.
7631
e22a221d
UD
76322003-03-14 Ulrich Drepper <drepper@redhat.com>
7633
92ed3daf
UD
7634 * tst-basic1.c (do_test): Add cast to avoid warning.
7635 * tst-basic2.c (do_test): Likewise.
7636
9b89567d
UD
7637 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
7638 amount of stack correction.
7639
e22a221d
UD
7640 * tst-fork4.c: Use test-skeleton.c.
7641
2e49caba
RM
76422003-03-14 Roland McGrath <roland@redhat.com>
7643
7644 * init.c: Fix typo "#eli" for "#else".
7645
415ef7d8
RM
76462003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
7647
7648 * allocatestack.c (__stack_user): Use hidden_data_def.
7649 * pthread_create.c (__pthread_keys): Likewise.
7650
7651 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
7652
52287505
RM
76532003-03-14 Roland McGrath <roland@redhat.com>
7654
415ef7d8
RM
7655 * tst-fork4.c: New file.
7656 * Makefile (tests): Add it.
7657
52287505
RM
7658 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
7659 we always define the padding space.
7660 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
7661 stopped supporting its own extensions fully.
7662 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
7663 struct also called `header', so `header.multiple_threads' is the field
7664 name to use on all machines.
7665 * allocatestack.c (allocate_stack): Use `header.' prefix.
7666 * sysdeps/pthread/createthread.c (create_thread): Likewise.
7667 * pthread_create.c (__pthread_create_2_1): Likewise.
7668 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
7669 (THREAD_SELF): Likewise.
7670 * sysdeps/x86_64/tls.h: Likewise.
7671 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
7672 (SINGLE_THREAD_P): Likewise.
7673 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
7674 (SINGLE_THREAD_P): Likewise.
7675 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7676 (SINGLE_THREAD_P): Likewise.
7677
7678 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
7679 value directly.
7680
c44bf9aa
UD
76812003-03-14 Ulrich Drepper <drepper@redhat.com>
7682
e22a221d
UD
7683 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
7684 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
7685
0eb18281
UD
7686 * pthread_create.c (start_thread): setjmp is expected to return 0.
7687
c44bf9aa
UD
7688 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
7689 (THREAD_GETMEM_NC): Likewise.
7690
564cd8b6
UD
76912003-03-13 Ulrich Drepper <drepper@redhat.com>
7692
7693 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
7694 and the size of the stack which must be allocated is a multiple,
7695 allocate one more page.
7696 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
7697 MULTI_PAGE_ALIASING.
7698
6461e577
RM
76992003-03-13 Roland McGrath <roland@redhat.com>
7700
7701 * pthread_create.c (start_thread): Set EXITING_BIT after the
7702 event-reporting (and destructors), not before.
7703
b5ec5617
UD
77042003-03-13 Jakub Jelinek <jakub@redhat.com>
7705
6461e577
RM
7706 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
7707 lll_futex_wake): Declare register variables as long int instead of
7708 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
7709 Make syscall arguments clobbered by the syscall.
7710 (lll_futex_wait): Define using lll_futex_timed_wait.
7711
7712 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
7713 to void *.
7714
7715 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
7716 PPID if [! NDEBUG].
7717
7718 * allocatestack.c (nptl_ncreated): Only declare if
7719 COLORING_INCREMENT != 0.
7720
7721 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
7722 (__libc_enable_asynccancel_2): Remove prototype.
7723
b5ec5617
UD
7724 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
7725 ctid to match kernel.
7726
d0369fb8
UD
77272003-03-12 Ulrich Drepper <drepper@redhat.com>
7728
7588880f
UD
7729 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
7730 libc_multiple_threads.
7731 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
7732 __libc_multiple_threads to...
7733 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
7734
7735 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
7736 versioning.
7737 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7738 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7739
7740 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
7741 (__pthread_once_internal): Define.
7742
7743 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
7744 macros instead of .symver directly.
7745 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
7746 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
7747
d0369fb8
UD
7748 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
7749 * sysdeps/x86_64/tcb-offsets.sym: New file.
7750 * sysdeps/x86_64/Makefile: New file.
7751
7752 * sysdeps/i386/tcb-offsets.sym: Add SELF.
7753 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
7754 to access own pthread_t in TCB.
7755 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7756 Likewise.
7757 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7758 Likewise.
7759 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7760
0bb2ac85
RM
77612003-03-12 Roland McGrath <roland@redhat.com>
7762
7763 * pthread-errnos.sym: New file.
7764 * Makefile (gen-as-const-headers): New variable, list that file.
7765 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
7766 header <pthread-errnos.h> instead of defining errno values here.
7767 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
7768 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
7769 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
7770 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
7771 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
7772 Likewise.
7773 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
7774 Likewise.
7775 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
7776 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7777 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
7778 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
7779 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7780 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7781 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
7782 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
7783 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7784 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
7785 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
7786 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
7787 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
7788 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
7789 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7790 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7791 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7792 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7793 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7794 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
7795 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
7796 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
7797 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
7798 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
7799 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
7800 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
7801 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
7802
7803 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
7804 CLONE_CHILD_SETTID worked.
7805
35e148cb
UD
78062003-03-12 Ulrich Drepper <drepper@redhat.com>
7807
d0369fb8
UD
7808 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
7809 file.
7810 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
7811 file.
7812
7813 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7814 (pthread_cond_t): Add padding.
7815
da49194d
UD
7816 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
7817 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
7818 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
7819
35e148cb
UD
7820 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
7821 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
7822 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
7823 (__pthread_rwlock_timedrdlock): Likewise.
7824 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
7825 (__pthread_rwlock_wrlock): Likewise.
7826 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
7827 (__pthread_rwlock_rdlock): Likewise.
7828
7829 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
7830
7831 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
7832 result of lock re-get if it fails.
7833
3e976b96
UD
78342003-03-11 Ulrich Drepper <drepper@redhat.com>
7835
5a03acfe
UD
7836 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
7837 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7838 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
7839 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7840 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7841 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
7842 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
7843 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
7844 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7845 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
7846
7847 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
7848 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
7849
7850 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
7851 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
7852 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
7853 (create_thread): Likewise.
7854 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
7855 * init.c (__pthread_initialize_minimal_internal): Initialize
7856 __libc_multiple_threads_ptr if necessary.
7857 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
7858 __pthread_multiple_threads and __libc_multiple_threads_ptr.
7859 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
7860 __libc_multiple_threads.
7861 (__libc_pthread_init): Return pointer to __libc_pthread_init if
7862 necessary.
7863
7864 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
7865 (THREAD_SETMEM_NC): Likewise.
7866
7867 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
7868 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
7869 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
7870 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
7871
7872 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
7873 Eliminate one entire instruction.
7874
32a589b1
UD
7875 * cancellation.c (__pthread_enable_asynccancel_2): New function.
7876 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
7877 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7878 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
7879 instead of __pthread_enable_asynccancel.
7880 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7881 (__pthread_cond_wait): Likewise.
7882 * sysdeps/pthread/pthread_cond_timedwait.c
7883 (__pthread_cond_timedwait): Likewise.
7884 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
7885
3e976b96
UD
7886 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7887 (__condvar_cleanup): Wake up all waiters in case we got signaled
7888 after being woken up but before disabling asynchronous
7889 cancellation.
7890 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
7891 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
7892 (__condvar_cleanup): Likewise.
7893
7894 * init.c (__NR_set_tid_address): If already defined, don't redefine.
7895 Make it an error if architecture has no #if case. Add x86-64.
7896
7897 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
7898 pt-initfini.s generation.
7899
7900 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
7901 (TLS_INIT_TP): Fix typo.
7902
6c477888
UD
79032003-03-11 Jakub Jelinek <jakub@redhat.com>
7904
7905 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
7906 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
7907
7908 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
7909 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7910 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
7911 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
7912 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
7913 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7914 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
7915 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
7916
ea694823
UD
79172003-03-11 Ulrich Drepper <drepper@redhat.com>
7918
6c477888
UD
7919 * sysdeps/pthread/pthread_cond_timedwait.c
7920 (__pthread_cond_timedwait): Return the result of the final
7921 locking. If it succeeds, the regular function return value.
7922
7923 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
7924 Return result of the final locking.
7925 * version.c (__nptl_main): Work around problems with the strange
7926 INTERNAL_SYSCALL macro on ppc32.
7927 * init.c (__pthread_initialize_minimal_internal): Unblock
7928 SIGCANCEL in case the parent blocked it.
7929 Reported by Paul Mackerras <paulus@samba.org>.
7930
ea694823
UD
7931 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
7932 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
7933 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
7934
b33e6163
RM
79352003-03-11 Jakub Jelinek <jakub@redhat.com>
7936
7937 * sysdeps/pthread/pthread_cond_timedwait.c
7938 (__pthread_cond_timedwait): Unlock and fail if
7939 __pthread_mutex_unlock_internal failed.
7940
7941 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
7942 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
7943 Use ARCH_CLONE.
7944 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
7945 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
7946 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
7947 ALLOCATE_STACK): New macros.
7948 (TLS_TPADJ): New macro.
7949 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
7950 (allocate_stack): Handle TLS_DTV_AT_TP and
7951 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
7952 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
7953 Don't set PD->self.
7954 * init.c [__ia64__] (__NR_set_tid_address): Define.
7955
7956 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
7957 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
7958 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
7959 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
7960 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
7961 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
7962 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
7963 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
7964 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
7965 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
7966 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
7967 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
7968 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
7969 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
7970 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
7971 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
7972 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
7973 * sysdeps/ia64/bits/atomic.h: New file.
7974 * sysdeps/ia64/Makefile: New file.
7975 * sysdeps/ia64/pthread_spin_init.c: New file.
7976 * sysdeps/ia64/pthread_spin_lock.c: New file.
7977 * sysdeps/ia64/pthread_spin_trylock.c: New file.
7978 * sysdeps/ia64/pthread_spin_unlock.c: New file.
7979 * sysdeps/ia64/pthreaddef.h: New file.
7980 * sysdeps/ia64/tcb-offsets.sym: New file.
7981 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
7982 * sysdeps/ia64/tls.h: New file.
7983
7984 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
7985 to syscall instead of no arguments.
7986
2b30b2e5
UD
79872003-03-10 Ulrich Drepper <drepper@redhat.com>
7988
db5f2fc9
UD
7989 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
7990 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
7991 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
7992 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
7993
7994 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
7995 unused code.
7996
6a4263e3
UD
7997 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
7998
3de7c2a9
UD
7999 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8000 lowlevelbarrier.sym.
8001 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8002 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8003 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8004 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8005
2a544d82
UD
8006 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8007 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8008 (__lll_mutex_timedlock_wait): Likewise.
8009 (lll_mutex_lock): Adjust asm for that.
8010 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8011 (lll_lock): Adjust asm for operand order change.
8012 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8013 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8014
ec06436c
UD
8015 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8016 Reverse order of parameters.
8017 (__lll_timedwait_tid): Remove regparms attribute.
8018 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8019 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8020
3273832c
UD
8021 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8022 (__lll_timedwait_tid): Remove one unnecessary instruction.
8023
51f32ab8
UD
8024 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8025 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8026 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8027 lowlevelmutex.S.
8028
8029 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8030 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8031 for NOT_IN_libc.
8032 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8033 lowlevellock.S.
8034
fad48d9e
UD
8035 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8036 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8037 for libc.so.
8038 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8039 define LOCK here (if UP is not defined). The actual code is in
8040 lowlevelmutex.S.
8041
9356d063
UD
8042 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8043 LOCK is already defined. Don't define lll_unlock_wake_cb and
8044 __lll_timedwait_tid for libc.so.
8045 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8046 define LOCK here (if UP is not defined). The actual code is in
8047 lowlevellock.S.
8048
ebf0cbc5 8049 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8050 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8051 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8052 instead of lowlevelsem.h.
8053 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8054 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8055 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8056
c915e5ad
UD
8057 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8058 lowlevelrwlock.sym.
8059 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8060 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8061 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8062
4c3c2e8a
UD
8063 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8064 register loading.
8065 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8066 last changed. D'oh.
8067
2b30b2e5
UD
8068 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8069
8070 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8071 of __libc_locking_needed.
8072 (lll_trylock): Initialize %eax to zero.
8073
2b30b2e5
UD
8074 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8075 pthread_cond_t definition.
8076
e48f9638
RM
80772003-03-10 Roland McGrath <roland@redhat.com>
8078
8079 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8080 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8081 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8082 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8083 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8084
8085 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8086 Instead of setting PD->multiple_threads, set globals
8087 __pthread_multiple_threads and __libc_multiple_threads.
8088 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8089 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8090 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8091
8092 * descr.h (struct pthread): Conditionalize first member on
8093 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8094 containing an anonymous tcbhead_t. Move `list' member out.
8095 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8096 * allocatestack.c: Remove use of `header.data.' prefix.
8097 * pthread_create.c: Likewise.
8098 * init.c (__pthread_initialize_minimal_internal): Likewise.
8099 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8100 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8101 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8102 * sysdeps/x86_64/tls.h: Likewise.
8103 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8104 (SINGLE_THREAD_P): Likewise.
8105 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8106 (SINGLE_THREAD_P): Likewise.
8107 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8108 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8109
c37cae9e
UD
81102003-03-09 Ulrich Drepper <drepper@redhat.com>
8111
d38c777e
RM
8112 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8113
7b44a5e0 8114 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8115 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8116
c2e5e085
UD
8117 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8118 leftovers from the ia32 code.
8119
8120 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8121 memory load.
8122 (clear_once_control): Don't load %esi.
8123
8124 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8125 handling.
8126
8127 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8128
cd4b2a55
UD
8129 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8130 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8131
c37cae9e
UD
8132 * Makefile (tests): Add tst-cond10.
8133 * tst-cond10.c: New file.
8134
d130a341
UD
81352003-03-08 Ulrich Drepper <drepper@redhat.com>
8136
ccf1d573
UD
8137 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8138 * tst-signal3.c (do_test): Likewise.
8139 * tst-sem5.c (do_test): Likewise.
8140 * tst-kill6.c (do_test): Likewise.
8141 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8142
8143 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8144 of inc/dec.
8145 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8146 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8147 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8148 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8149 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8150 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8151 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8152 Likewise.
8153 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8154 Likewise.
8155 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8156 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8157 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8158 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8159 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8160 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8161 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8162 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8163
d130a341
UD
8164 * allocatestack.c (allocate_stack): If mprotect() fails free the
8165 TLS memory.
8166
bc6389ad
UD
81672003-03-07 Ulrich Drepper <drepper@redhat.com>
8168
41d4d223
UD
8169 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8170
8171 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8172 lll_wake_tid. This was used only to work around kernel limits in
8173 the early days.
8174 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8175 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8176 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8177 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8178
bc6389ad
UD
8179 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8180 (__pthread_initialize_minimal_internal): Change initialization of
8181 __static_tls_align_m1 appropriately.
8182 * pthreadP.h (__static_tls_align_m1): Renamed from
8183 __static_tls_align.
8184 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8185 instead of __static_tls_align-1.
8186
cc775edf
UD
81872003-03-04 Ulrich Drepper <drepper@redhat.com>
8188
0de28d5c 8189 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8190
518b5308
UD
8191 * pthread_create.c: Define __pthread_keys using nocommon
8192 attribute, not by placing it explicitly in bss.
8193 Remove DEFINE_DEALLOC definition. Not needed anymore.
8194
8195 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8196 Use it in mmap call to allocate stacks.
8197
8198 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8199
cc775edf
UD
8200 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8201 result of the thread function.
8202
4f6f0a8f
UD
82032003-03-03 Ulrich Drepper <drepper@redhat.com>
8204
f04a2721
UD
8205 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8206 version is just fine.
8207
4f6f0a8f
UD
8208 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8209 (__pthread_child_handler): Renamed from pthread_child_handler,
8210 exported, and marked hidden. Change all users.
8211 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8212 free __pthread_child_handler from child list.
8213
7ce5c164
UD
82142003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8215
8216 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8217
8218 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8219 Fix handling of cancellation and failing pthread_mutex_unlock call.
8220 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8221 (__pthread_cond_wait): Likewise.
8222
8223 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8224 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8225 lll_futex_timed_wait call.
8226 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8227 (pthread_rwlock_timedwrlock): Likewise.
8228
8229 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8230 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8231 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8232
8233 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8234 check of lll_futex_wake return value.
8235
ea6a015b
RM
82362003-03-03 Roland McGrath <roland@redhat.com>
8237
8238 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8239
8240 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8241 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8242 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8243
4adacf57
UD
82442003-03-02 Ulrich Drepper <drepper@redhat.com>
8245
1be3d664
UD
8246 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8247 error for CPU clocks.
8248
885bafa1
UD
8249 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8250 _POSIX_MONOTONIC_CLOCK.
8251 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8252
4adacf57
UD
8253 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8254 recent kernels.
8255
86bfff4d
UD
82562003-03-01 Ulrich Drepper <drepper@redhat.com>
8257
8258 * descr.h (struct pthread): Move cleanup field to the front.
8259
d1149385
RM
82602003-03-01 Roland McGrath <roland@redhat.com>
8261
8262 * sem_open.c (sem_open): Braino fix.
8263
bd8bb78b
UD
82642003-03-01 Ulrich Drepper <drepper@redhat.com>
8265
748bec08
UD
8266 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8267 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8268 __pthread_cleanup_pop functionality.
8269 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8270
bd8bb78b
UD
8271 * descr.h (struct pthread): Move tid field to the front now that
8272 it is often used.
8273
8274 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8275 (__lll_mutex_timedlock_wait): Remove.
8276 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8277 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8278 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8279 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8280 (lll_unlock_wake_cb): Don't save and restore %esi.
8281 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8282 %esi.
8283 (__lll_timedwait_tid): Add alignment.
8284 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8285 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8286 %esi.
8287 (__lll_timedwait_tid): Removed.
8288 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8289 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8290 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8291 (pthread_barrier_wait): Don't save, load, and restore %esi for
8292 last thread.
8293 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8294 (__pthread_cond_signal): Don't save, load, and restore %esi.
8295 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8296 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8297 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8298 Don't save, load, and restore %esi.
8299
d2637c70
UD
83002003-02-27 Ulrich Drepper <drepper@redhat.com>
8301
567fb22a
UD
8302 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8303 Release lock before waking up the waiters.
8304
427f5fa1
UD
8305 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8306
a2d83cfb
UD
8307 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8308 (reader_thread): Likewise.
8309
d2637c70
UD
8310 * sysdeps/pthread/pthread_rwlock_unlock.c
8311 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8312 to wake up readers if there are none.
8313
8314 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8315 Release internal lock before wake threads.
8316
b1531183
UD
83172003-02-26 Ulrich Drepper <drepper@redhat.com>
8318
dbf6131c
UD
8319 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8320 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8321 predefined.
8322 * tst-rwlock9.c: Likewise.
8323 * tst-rwlock10.c: New file.
8324 * tst-rwlock11.c: New file.
8325
695799fe
UD
8326 * Makefile (tests): Add tst-dlsym1.
8327 * tst-dlsym1.c: New file.
8328
b1531183
UD
8329 * init.c (__pthread_initialize_minimal_internal): Set
8330 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8331 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8332
3724f268
UD
83332003-02-24 Ulrich Drepper <drepper@redhat.com>
8334
3857ca78
UD
8335 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8336
80d80779
UD
8337 * tst-cond2.c: Fix sychronization with child.
8338
86371308
UD
8339 * tst-rwlock8.c (reader_thread): Remove unused variable.
8340
ffeb4481
UD
8341 * Makefile: Add rules to build and run tst-tls3.
8342 * tst-tls3.c: New file.
8343 * tst-tls3mod.c: New file.
8344
3724f268
UD
8345 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8346 * tst-rwlock8.c: New file.
8347 * tst-rwlock9.c: New file.
8348 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8349 complete broken rwlock implementation.
8350 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8351 Likewise.
8352 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8353 Likewise.
8354 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8355 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8356 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8357 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8358 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8359 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8360 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8361
8915cc40
RM
83622003-02-23 Roland McGrath <roland@redhat.com>
8363
8364 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8365
fd1a0d0c
UD
83662003-02-23 Ulrich Drepper <drepper@redhat.com>
8367
ecf28959
UD
8368 * Makefile (tests): Add tst-context1.
8369 * tst-context1.c: New file.
8370
5e47b76b
UD
8371 * Makefile (tests): Add tst-tls1 and tst-tls2.
8372 * tst-tls1.c: New file.
8373 * tst-tls2.c: New file.
8374
5a6bbb41
UD
8375 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8376 for failed cmpxchg.
8377
fd1a0d0c
UD
8378 * pthread_create.c (start_thread): Set EXITING_BIT early.
8379
8380 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8381 (THREAD_GETMEM_NC): Likewise.
8382
757f9fcb
UD
83832003-02-22 Ulrich Drepper <drepper@redhat.com>
8384
b1b8e747
UD
8385 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8386 off 3 more bytes by using offset-less instructions when possible.
8387
c780aa21 8388 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8389
8390 * eintr.c (eintr_source): Add unnecessary return but the compiler
8391 insists.
8392
8393 * tst-kill3.c: Include <unistd.h>.
8394
5148559c
RM
83952003-02-21 Roland McGrath <roland@redhat.com>
8396
8397 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8398
ab2d98e3
UD
83992003-02-21 Ulrich Drepper <drepper@redhat.com>
8400
71028edd
UD
8401 * Makefile (tests): Add tst-eintr1.
8402 (distribute): Add eintr.c.
8403 * tst-eintr1.c: New file.
8404 * eintr.c: New file.
8405
e814f748
UD
8406 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8407
8408 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8409 Disallow sending SIGCANCEL.
8410
ab2d98e3 8411 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8412 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8413 * tst-kill1.c: New file.
8414 * tst-kill2.c: New file.
8415 * tst-kill3.c: New file.
8416 * tst-kill5.c: New file.
9c03686d 8417 * tst-kill6.c: New file.
e814f748
UD
8418 * tst-basic7.c: Renamed to...
8419 * tst-kill4.c: ...this.
ab2d98e3 8420
59fed0e2
RM
84212003-02-21 Roland McGrath <roland@redhat.com>
8422
8423 * Makefile (install-lib-ldscripts): New variable.
8424
49dc759f
UD
84252003-02-21 Ulrich Drepper <drepper@redhat.com>
8426
8c2e9a29
UD
8427 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8428 * pthread_cancel.c: Use INVALID_TD_P.
8429 * pthread_detach.c: Likewise.
8430 * pthread_getschedparam.c: Likewise.
8431 * pthread_setschedparam.c: Likewise.
8432 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8433 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8434 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8435 * pthread_timedjoin.c: Likewise.
8436
8437 * tst-basic7.c: Include <signal.h>.
8438
49dc759f
UD
8439 * pthread_join.c (pthread_join): Limited checking for invalid
8440 descriptors.
8441 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8442
df5803bf
UD
84432003-02-20 Ulrich Drepper <drepper@redhat.com>
8444
c5acd3d7
UD
8445 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8446 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8447 * Makefile (tests): Add tst-key4.
8448 * tst-key4.c: New file.
8449
729924a0
UD
84502003-02-18 Ulrich Drepper <drepper@redhat.com>
8451
2f7dc594
UD
8452 * Makefile (tests): Add tst-basic7.
8453 * tst-basic7.c: New file.
8454
ba25bb0f
UD
8455 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8456 Add some more __builtin_expect.
8457
12fd3c5f 8458 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8459
5430d926
UD
84602003-02-17 Ulrich Drepper <drepper@redhat.com>
8461
b0db7fbe
UD
8462 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8463 _POSIX_THREAD_PRIORITY_SCHEDULING.
8464 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8465 _XOPEN_REALTIME_THREADS.
8466 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8467
8468 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8469 kernel returns EINVAL for PID <= 0, work around it.
8470
ecfda9bd
UD
8471 * Makefile (tests): Add tst-signal5.
8472 * tst-signal5.c: New file.
8473
7d78ab99
UD
8474 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8475 and LOGIN_NAME_MAX.
8476
371a2972
UD
8477 * tst-cancel1.c (tf): Block all signals.
8478
5430d926
UD
8479 * Makefile (tests): Add tst-basic6.
8480 * tst-basic6.c: New file.
8481
8482 * tst-basic1.c: Add test for process ID.
8483
8484 * Makefile (tests): Add tst-cancel10.
8485 * tst-cancel10.c: New file.
8486
8487 * Makefile (tests): Add tst-signal4.
8488 * tst-signal4.c: New file.
8489
8490 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8491 __sigismember instead of sigismember. Add __builtin_expect.
8492
1564916a
UD
84932003-02-16 Ulrich Drepper <drepper@redhat.com>
8494
179ff175
UD
8495 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8496 pthread_setcancelstate, and pthread_rwlock_setpshared.
8497
e4335f9a
UD
8498 * tst-cancel7.c (do_test): Make sure the pid file exists before
8499 canceling the thread.
8500
0a37669a
UD
8501 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8502 pthread_rwlock_timedrdlock tests.
8503 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8504 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8505 Check for invalid tv_nsec field.
8506 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8507 Likewise.
8508
8509 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8510 recursive mutex of overflow.
8511
8512 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8513
e4335f9a 8514 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8515 going into an endless loop.
8516 * Makefile (tests): Add tst-cancel9.
8517 * tst-cancel9.c: New file.
8518
8519 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8520
b270b548
UD
85212003-02-15 Ulrich Drepper <drepper@redhat.com>
8522
1c82b97f
UD
8523 * tst-mutex5.c (do_test): Add more timedlock tests.
8524
b2f05465 8525 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8526 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8527
e798b60f
UD
8528 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8529 use INLINE_SYSCALL. Error number is returned, not -1.
8530
90491dc4
UD
8531 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8532 and __deallocate_stack with internal_function.
8533 * pthread_create.c: Adjust definitions appropriately.
8534 * allocatestack.c: Likewise.
8535
8536 * pthread_join.c: Add one more __builtin_expect.
8537 * pthread_timedjoin.c: Likewise.
8538
8539 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8540 not data of sequence number does not match.
8541 Add one __builtin_expect.
8542
c6247c9d
UD
8543 * Makefile (tests): Add tst-clock1.
8544 * tst-clock1.c: New file.
8545
b270b548
UD
8546 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8547 negative arguments.
8548 * Makefile (tests): Add tst-basic5.
8549 * tst-basic5.c: New file.
8550
700bf7af
UD
85512003-02-14 Ulrich Drepper <drepper@redhat.com>
8552
757de559
UD
8553 * Makefile (tests): Add tst-basic4.
8554 * tst-basic4.c: New file.
8555
47202270
UD
8556 * pthreadP.h: Add declaraction for __nptl_nthreads.
8557 * pthread_create.c: Define __nptl_nthreads
8558 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8559 after thread is done. If then zero, call exit(0).
47202270
UD
8560 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8561 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8562 * init.c (pthread_functions): Initialize ptr_nthreads.
8563 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8564 (__reclaim_stacks): Decrement __nptl_nthreads.
8565 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
8566 Define.
8567 * Makefile (tests): Add tst-basic3.
8568 * tst-basic3.c: New file.
8569
e320ef46
UD
8570 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
8571 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
8572 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
8573 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
8574 if asynchronous canceling is enabled.
8575 * pthread_join.c (pthread_join): When recognizing circular joins,
8576 take into account the other thread might be already canceled.
8577 * Makefile (tests): Add tst-join5.
8578 * tst-join5.c: New file.
8579
700bf7af
UD
8580 * Makefile (tests): Add tst-join4.
8581 * tst-join4.c: New file.
8582
85832003-02-13 Ulrich Drepper <drepper@redhat.com>
8584
8585 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
8586
dac0f772
UD
85872003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
8588
8589 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
8590 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
8591 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
8592 warning.
8593 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
8594 to avoid warning.
8595 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
8596 error if lll_futex_wake failed.
8597
e8cda341
UD
85982003-02-13 Ulrich Drepper <drepper@redhat.com>
8599
a7720b5e
UD
8600 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
8601 handling of cancellation and failung pthread_mutex_unlock call.
8602 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8603 * Makefile (tests): Add tst-cond8 and tst-cond9.
8604 * tst-cond8.c: New file.
8605 * tst-cond9.c: New file.
8606
a1ea4c06
UD
8607 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
8608
8609 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
8610 non-standard initializers with __USE_GNU.
8611
e8cda341
UD
8612 * Makefile (tests): Add tst-cleanup3.
8613 * tst-cleanup3.c: New file.
8614
2067577c
UD
86152003-02-12 Ulrich Drepper <drepper@redhat.com>
8616
89e78a95
UD
8617 * Makefile (tests): Add tst-attr1 and tst-attr2.
8618 * tst-attr1.c: New file.
8619 * tst-attr2.c: New file.
8620
dfdd294a
UD
8621 * Makefile: Add rules to build and run tst-atfork2 test.
8622 * tst-atfork2.c: New file.
8623 * tst-atfork2mod.c: New file.
8624
8625 * sysdeps/unix/sysv/linux/unregister-atfork.c
8626 (__unregister_atfork): Free the memory allocated for the handlers
8627 after removing them from the lists.
8628
8629 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
8630 cleanup function.
8631
8632 * tst-atfork1.c (do_test): Wait for the child we forked.
8633 Report error in child.
8634
8635 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
8636
2067577c
UD
8637 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
8638
2a8a8a84
UD
86392003-02-10 Ulrich Drepper <drepper@redhat.com>
8640
d9dd121e
UD
8641 * Makefile (tests): Add tst-cancel8.
8642 * tst-cancel8.c: New file.
8643
2a8a8a84
UD
8644 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
8645 clearing of control variable.
defd1870 8646 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 8647 * tst-once3.c: New file.
defd1870 8648 * tst-once4.c: New file.
2a8a8a84 8649
a54e8d33
UD
86502003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
8651
8652 * sysdeps/sh/Makefile: New file.
8653 * sysdeps/sh/bits/atomic.h: New file.
8654 * sysdeps/sh/pthread_spin_init.c: New file.
8655 * sysdeps/sh/pthread_spin_lock.c: New file.
8656 * sysdeps/sh/pthread_spin_trylock.S: New file.
8657 * sysdeps/sh/pthread_spin_unlock.S: New file.
8658 * sysdeps/sh/pthreaddef.h: New file.
8659 * sysdeps/sh/tcb-offsets.sym: New file.
8660 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
8661 * sysdeps/sh/tls.h: New file.
8662 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
8663 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
8664 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
8665 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
8666 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
8667 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
8668 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
8669 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
8670 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
8671 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
8672 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
8673 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
8674 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
8675 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
8676 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
8677 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
8678 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
8679 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
8680 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
8681 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
8682 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
8683 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
8684 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
8685 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
8686 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
8687 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
8688 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
8689 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
8690 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
8691 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
8692
696e556e
UD
86932003-02-08 Ulrich Drepper <drepper@redhat.com>
8694
8695 * tst-cond2.c: Rearrange code to not rely on behavior undefined
8696 according to POSIX.
8697
8698 * tst-basic2.c (do_test): Lock mutex before creating the thread.
8699
fef710d6
UD
87002003-02-07 Ulrich Drepper <drepper@redhat.com>
8701
c6180643
UD
8702 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
8703 (TLS_GET_FS): New #define.
8704 (TLS_SET_FS): New #define.
8705 Correct value of __NR_set_thread_area.
8706
fef710d6
UD
8707 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
8708
11090a99
UD
87092003-02-06 Ulrich Drepper <drepper@redhat.com>
8710
65c68990
UD
8711 * Makefile (tests): Add tst-popen1.
8712 * tst-popen1.c: New file.
8713
11090a99
UD
8714 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
8715 but inactive generalization.
8716 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8717 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8718 Minor optimization, remove one instruction.
8719 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8720
a88c9263
UD
87212003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
8722
8723 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
8724
87252003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
8726
8727 * init.c (__NR_set_tid_address): Add #ifdef for s390.
8728 * sysdeps/pthread/pthread_barrier_wait.c: New file.
8729 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
8730 * sysdeps/pthread/pthread_cond_signal.c: New file.
8731 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
8732 * sysdeps/pthread/pthread_cond_wait.c: New file.
8733 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
8734 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
8735 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
8736 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
8737 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
8738 * sysdeps/s390/Makefile: New file.
8739 * sysdeps/s390/bits/atomic.h: New file.
8740 * sysdeps/s390/pthread_spin_init.c: New file.
8741 * sysdeps/s390/pthread_spin_lock.c: New file.
8742 * sysdeps/s390/pthread_spin_trylock.c: New file.
8743 * sysdeps/s390/pthread_spin_unlock.c: New file.
8744 * sysdeps/s390/pthreaddef.h: New file.
8745 * sysdeps/s390/tcb-offsets.sym: New file.
8746 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
8747 * sysdeps/s390/tls.h: New file.
8748 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
8749 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
8750 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
8751 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
8752 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
8753 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
8754 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
8755 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
8756 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
8757 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
8758 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
8759 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
8760 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
8761 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
8762 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
8763 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
8764 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
8765 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
8766 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
8767 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
8768 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
8769 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
8770 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
8771
6f1cff95
UD
87722003-02-04 Ulrich Drepper <drepper@redhat.com>
8773
ec609a8e
UD
8774 * atomic.h: Add a couple more default implementations.
8775 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
8776 __arch_compare_and_exchange_32_acq in return value definition. It
8777 always exists.
8778 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 8779 Add missing atomic_ prefixes.
e3ec8904 8780
6f1cff95
UD
8781 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
8782 thread library is available, use correct value to mark initialized
8783 once variable.
8784
4f088329
UD
87852003-02-03 Ulrich Drepper <drepper@redhat.com>
8786
6f1cff95
UD
8787 * allocatestack.c (allocate_stack): Use __getpagesize instead of
8788 __sysconf to determine pagesize.
8789
3e4fc359 8790 * pthread_create.c: Include <atomic.h>.
4f088329
UD
8791 * allocatestack.c (allocate_stack): Implement coloring of the
8792 allocated stack memory. Rename pagesize to pagesize_m1. It's the
8793 size minus one. Adjust users.
3e4fc359 8794 * sysdeps/i386/i686/Makefile: New file.
4f088329 8795
2f42e8be
UD
87962003-02-02 Ulrich Drepper <drepper@redhat.com>
8797
4301f7e2
UD
8798 * allocatestack.c: Improve comment throughout the file.
8799
2f42e8be 8800 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 8801 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
8802 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8803 (__lll_lock_wait): Likewise.
8804 (lll_unlock_wake_cb): Removed.
8805
4a7d6545
UD
88062003-01-31 Ulrich Drepper <drepper@redhat.com>
8807
8808 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
8809 _POSIX_THREAD_PRIORITY_SCHEDULING.
8810
886d5973
UD
88112003-01-30 Jakub Jelinek <jakub@redhat.com>
8812
8813 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8814 Fix return type of ptr___pthread_getspecific.
8815
e474ca78
UD
88162003-01-29 Ulrich Drepper <drepper@redhat.com>
8817
8818 * Makefile (tests): Add tst-umask1.
8819 (tst-umask1-ARGS): Define.
8820 * tst-umask1.c: New file.
8821
e6ebd2e4
UD
88222003-01-28 Ulrich Drepper <drepper@redhat.com>
8823
6cf26f41
UD
8824 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
8825 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
8826 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
8827 pthread_rwlock_unlock.
8828 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
8829 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
8830 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
8831 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
8832 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8833 New file.
8834 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
8835 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8836 New file.
8837 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
8838 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
8839 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
8840 New file.
8841 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
8842 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
8843 New file.
8844 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
8845 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
8846 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
8847 New file.
8848 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
8849 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
8850 New file.
8851 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
8852
1d087a7e
UD
8853 * Makefile (libpthread-routines): Remove lowlevelcond and
8854 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
8855 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
8856 and pthread_cond_broadcast.
4a99d160
UD
8857 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
8858 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
8859 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
8860 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
8861 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
8862 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
8863 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
8864 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
8865 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
8866 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
8867 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
8868 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
8869 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
8870 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
8871 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
8872 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
8873 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
8874 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
8875 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
8876 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
8877 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
8878 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
8879 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
8880 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
8881 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
8882 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
8883 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
8884 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
8885 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
8886 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
8887 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 8888
e6ebd2e4
UD
8889 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
8890 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
8891 of the code is moved to ...
8892 * sysdeps/pthread/createthread.c: ...here. New file.
8893
a15698cb
UD
88942003-01-27 Ulrich Drepper <drepper@redhat.com>
8895
0566b130
UD
8896 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
8897 (__new_sem_post): Clear %eax before returning.
8898 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
8899
e6fb8846
UD
8900 * Makefile (tests): Add tst-cleanup2.
8901 * tst-cleanup2.c: New file.
8902
a15698cb
UD
8903 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
8904 Interpret first parameter correctly.
8905
8824b0a1
UD
89062003-01-17 Ulrich Drepper <drepper@redhat.com>
8907
8908 * Makefile (headers): Add bits/semaphore.h.
8909
850dcfca
UD
89102003-01-16 Jakub Jelinek <jakub@redhat.com>
8911
8912 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
8913 if not SHARED.
8914
574b892e
UD
89152003-01-14 Ulrich Drepper <drepper@redhat.com>
8916
a8d87c92
UD
8917 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
8918 must be used and mapping failed.
8919 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
8920
574b892e
UD
8921 * Makefile (CFLAGS-pthread_self.os): Define this, not
8922 CFLAGS-pthread_self.c.
8923
fb48047a
UD
89242003-01-13 Ulrich Drepper <drepper@redhat.com>
8925
47805511
UD
8926 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
8927 lll_unlock_wake_cb.
8928
fb48047a
UD
8929 * Makefile (libpthread-routines): Add version. Add rules to build
8930 version.os and banner.h.
8931 * version.c: New file.
8932
115bb61d
UD
89332003-01-13 Jakub Jelinek <jakub@redhat.com>
8934
8935 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
8936 the alias unconditional.
8937 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
8938
89392003-01-13 Ulrich Drepper <drepper@redhat.com>
8940
8941 * Makefile (CFLAGS-pthread_self.c): New definition.
8942
6aca81bb
UD
89432003-01-06 Jakub Jelinek <jakub@redhat.com>
8944
8945 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
8946 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
8947 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
8948 * init.c (__pthread_initialize_minimal_internal): Likewise.
8949
e9c7764e
UD
89502003-01-07 Jakub Jelinek <jakub@redhat.com>
8951
b5facfda
UD
8952 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
8953
e9c7764e
UD
8954 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
8955 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
8956 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
8957 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
8958 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
8959 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
8960
bef1e42f
UD
89612003-01-06 Jakub Jelinek <jakub@redhat.com>
8962
8963 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
8964 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
8965 * tst-cancel-wrappers.sh: Remove all exceptions.
8966
bbd17455
UD
89672003-01-05 Ulrich Drepper <drepper@redhat.com>
8968
a73ab6df
UD
8969 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
8970 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
8971
bbd17455
UD
8972 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
8973 Use __libc_pthread_functions array if SHARED.
8974
8975 * pthreadP.h: Move pthread_cond_2_0_t definition to...
8976 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
8977
8978 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
8979 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
8980 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
8981 __libc_ptf_call instead of __libc_maybe_call.
8982 (PTF): New #define.
8983 (__libc_cleanup_region_start): Wrap function name with PTF call.
8984 (__libc_cleanup_region_end): Likewise.
8985 (__libc_cleanup_end): Likewise.
8986
8987 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
8988 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
8989 * pthread_key_create.c: Add __pthread_key_create_internal alias.
8990 * pthreadP.h: Add prototypes.
8991
8992 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
8993 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
8994 __pthread_rwlock_unlock aliases.
8995 * pthreadP.h: Add prototypes for new aliases.
8996
8997 * pthreadP.h (struct pthead_functions): Moved to...
8998 * sysdeps/pthread/pthread-functions.h: ...here. New file.
8999 * init.c (pthread_functions): Add initializers for new elements.
9000
9001 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9002 __pthread_cleanup_pop_restore aliases.
9003 * pthreadP.h: Add prototypes.
9004
9005 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9006 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9007 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9008 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9009 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9010 * pthreadP.h: Adjust prototypes and callers.
9011
d27a78be
UD
90122003-01-04 Ulrich Drepper <drepper@redhat.com>
9013
b74121ae
UD
9014 * Makefile (tests): Add tst-cancel7.
9015 (tst-cancel7-ARGS): New variable.
bbd17455 9016 * tst-cancel7.c: New file.
b74121ae 9017
29bc410c
UD
9018 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9019 around gcc defficiencies.
9020 * old_pthread_cond_signal.c: Likewise.
9021 * old_pthread_cond_timedwait.c: Likewise.
9022 * old_pthread_cond_wait.c: Likewise.
9023
d27a78be
UD
9024 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9025
733f25e6
UD
90262003-01-03 Ulrich Drepper <drepper@redhat.com>
9027
7edb2ae3
UD
9028 * Makefile (tests): Add tst-cond7.
9029 * tst-cond7.c: New file.
9030
b1151300
UD
9031 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9032 (condvar_cleanup): Get condvar address from the right place.
9033
733f25e6
UD
9034 * atomic.h: Correct definitions of atomic_full_barrier,
9035 atomic_read_barrier, atomic_write_barrier.
9036
9037 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9038 race-free.
9039 * old_pthread_cond_signal.c: Likewise.
9040 * old_pthread_cond_timedwait.c: Likewise.
9041 * old_pthread_cond_wait.c: Likewise.
9042
686b7223
UD
90432003-01-03 Jakub Jelinek <jakub@redhat.com>
9044
9045 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9046
0e07706e
UD
90472003-01-03 Ulrich Drepper <drepper@redhat.com>
9048
997256dd
UD
9049 * pthreadP.h (pthread_cond_2_0_t): New type.
9050 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9051 Use new type for the 2.0 condvar function prototypes.
9052 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9053 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9054 parameter.
9055 * old_pthread_cond_destroy.c: Likewise.
9056 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9057 * old_pthread_cond_signal.c: Likewise.
9058 * old_pthread_cond_timedwait.c: Likewise.
9059 * old_pthread_cond_wait.c: Likewise.
9060
842d2817
UD
9061 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9062 (__pthread_cond_wait): Don't save cancellation mode and seq value
9063 in same location.
9064
0e07706e
UD
9065 * herrno.c (__h_errno_location): Don't define as weak.
9066
bf293afe
UD
90672003-01-02 Jakub Jelinek <jakub@redhat.com>
9068
9069 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9070 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9071 and pthread_cond_wait.
9072 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9073 Renamed to...
9074 (__pthread_cond_broadcast_2_0): ... this.
9075 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9076 Renamed to...
9077 (__pthread_cond_destroy_2_0): ... this.
9078 * old_pthread_cond_init.c (__old_pthread_cond_init):
9079 Renamed to...
9080 (__pthread_cond_init_2_0): ... this.
9081 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9082 Renamed to...
9083 (__pthread_cond_signal_2_0): ... this.
9084 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9085 Renamed to...
9086 (__pthread_cond_wait_2_0): ... this.
9087 * pthread_cond_destroy.c: Include shlib-compat.h.
9088 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9089 * pthread_cond_init.c: Include shlib-compat.h.
9090 (pthread_cond_init): Change strong_alias into versioned_symbol.
9091 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9092 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9093 fields.
9094 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9095 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9096 __pthread_cond_wait_2_0): New prototypes.
9097 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9098 __old_pthread_cond_init, __old_pthread_cond_signal,
9099 __old_pthread_cond_wait): Removed.
9100 * init.c: Include shlib-compat.h.
9101 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9102 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9103 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9104 ptr___pthread_cond_*_2_0 fields.
9105 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9106 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9107
9108 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9109 LIBC_SIGACTION was not yet defined.
9110 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9111 [!defined LIBC_SIGACTION] (__sigaction): New function and
9112 libc_hidden_weak.
9113 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9114 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9115
91162003-01-02 Jakub Jelinek <jakub@redhat.com>
9117
9118 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9119
05df18c3
UD
91202003-01-02 Ulrich Drepper <drepper@redhat.com>
9121
9122 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9123 New, larger type definition.
9124 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9125 implementation.
9126 * Versions [libpthread]: Add definitions for new pthread_cond_*
9127 interfaces for version GLIBC_2.3.2.
9128 * pthread_cond_init.c: Update initialization for new type definition.
9129 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9130 pthread_cond_timedwait, pthread_cond_signal, and
9131 pthread_cond_broadcast. Add old_pthread_cond_init,
9132 old_pthread_cond_destroy, old_pthread_cond_wait,
9133 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9134 old_pthread_cond_broadcast.
9135 * old_pthread_cond_broadcast.c: New file.
9136 * old_pthread_cond_destroy.c: New file.
9137 * old_pthread_cond_init.c: New file.
9138 * old_pthread_cond_signal.c: New file.
9139 * old_pthread_cond_timedwait.c: New file.
9140 * old_pthread_cond_wait.c: New file.
9141 * pthreadP.h: Add prototypes for the compatibility interfaces.
9142
9143 * pthread_cond_destroy.c: Don't include <errno.h>.
9144
fd8979e4
UD
91452003-01-01 Ulrich Drepper <drepper@redhat.com>
9146
9147 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9148 unnecessary zero offset when addressing MUTEX.
9149
6d6ee629
UD
91502002-12-31 Ulrich Drepper <drepper@redhat.com>
9151
9152 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9153 __register_atfork.
9154 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9155 for __register_atfork.
9156
a4baf360
UD
91572002-12-31 Jakub Jelinek <jakub@redhat.com>
9158
9159 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9160 instead of ASSEMBLER test macro.
9161
9162 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9163 __libc_current_sigrtmax): Add libc_hidden_def.
9164
9165 * sysdeps/pthread/list.h: Remove assert.h include.
9166
e9395a94
UD
91672002-12-31 Ulrich Drepper <drepper@redhat.com>
9168
9169 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9170 __pthread_initialize_minimal_internal not
9171 __pthread_initialize_minimal.
9172
89d6e444
UD
91732002-12-30 Ulrich Drepper <drepper@redhat.com>
9174
416d2de6
UD
9175 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9176 __pthread_initialize_minimal as hidden.
9177
89d6e444
UD
9178 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9179 constructor.
9180
91812002-12-31 Jakub Jelinek <jakub@redhat.com>
9182
9183 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9184 $(common-objpfx)format.lds, include that into the output script.
9185 Fix comment.
9186 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9187
8cac677c
UD
91882002-12-28 Andreas Jaeger <aj@suse.de>
9189
9190 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9191 nsec resolution changes.
9192 (xstat64_conv): Likewise.
9193 (xstat32_conv): Likewise.
9194 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9195 struct kernel_stat.
9196 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9197 structs stat and stat64.
9198 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9199 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9200
49e9f864
UD
92012002-12-30 Jakub Jelinek <jakub@redhat.com>
9202
9203 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9204 argument.
9205 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9206 (pthread_exit): Use strong_alias to avoid warnings.
9207 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9208 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9209 ptr___pthread_attr_init_2_*.
9210 * init.c (pthread_functions): Adjust.
9211
bab09b26
UD
92122002-12-29 Ulrich Drepper <drepper@redhat.com>
9213
598d7a42
UD
9214 * forward.c: Make all functions available by default again. It
9215 caused too much trouble.
9216
bab09b26
UD
9217 * pt-siglongjmp.c: Removed.
9218
3b7ed871
UD
92192002-12-28 Jakub Jelinek <jakub@redhat.com>
9220
9221 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9222 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9223 * sysdeps/i386/Makefile: New file.
9224 * sysdeps/i386/tcb-offsets.sym: New file.
9225 * sysdeps/pthread/tcb-offsets.h: New file.
9226 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9227 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9228
9229 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9230 __register_atfork...
9231 (GLIBC_2.3.2): ...here.
9232
92332002-12-28 Ulrich Drepper <drepper@redhat.com>
9234
9235 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9236 pthread_attr_setstackaddr with __attribute_deprecated__.
9237
270d9d47
UD
92382002-12-27 Jakub Jelinek <jakub@redhat.com>
9239
9240 * pt-system.c (system): Remove cancellation handling.
9241 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9242 cancellation routines.
9243
131fd126
UD
92442002-12-28 Ulrich Drepper <drepper@redhat.com>
9245
afb2e954
UD
9246 * descr.h: Include <dl-sysdep.h>.
9247 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9248 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9249 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9250 (SYSINFO_OFFSEET): Likewise.
9251
92522002-12-27 Jakub Jelinek <jakub@redhat.com>
9253
9254 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9255 Define.
9256 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9257 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9258 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9259 (USE_DL_SYSINFO): Undef.
9260
92612002-12-22 Jakub Jelinek <jakub@redhat.com>
9262
9263 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9264 $(common-objpfx)libc.so.
9265 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9266 it is bigger than pipe buffer size even on arches with bigger
9267 page size.
9268 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9269
a218c9cf
UD
92702002-12-25 Ulrich Drepper <drepper@redhat.com>
9271
9272 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9273 correct errno access for case that USE___THREAD is not defined.
9274
015a2dc9
UD
92752002-12-24 Ulrich Drepper <drepper@redhat.com>
9276
9277 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9278 Patch by Marijn Ros <marijn@mad.scientist.com>.
9279
5220f9ac
RM
92802002-12-22 Roland McGrath <roland@redhat.com>
9281
9282 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9283
1561bf63
UD
92842002-12-20 Ulrich Drepper <drepper@redhat.com>
9285
9286 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9287
3325198e
UD
92882002-12-19 Ulrich Drepper <drepper@redhat.com>
9289
057c823f
UD
9290 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9291 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9292 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9293
097eca29
UD
9294 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9295 of int $0x80.
9296 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9297 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9298 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9299 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9300 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9301 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9302 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9303 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9304
9305 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9306 sysenter.
9307 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9308
9309 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9310
5f5843e3
UD
9311 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9312 in new TCB.
9313 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9314 that sysinfo is properly initialized.
9315 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9316 to 1 only for ld.so.
9317
3325198e
UD
9318 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9319 RTLD_CORRECT_DYNAMIC_WEAK.
9320
74e8f2dc
UD
93212002-12-19 Jakub Jelinek <jakub@redhat.com>
9322
9323 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9324 Use return 0 as 6th argument to FORWARD4.
9325 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9326
df45b31e
UD
93272002-12-18 Ulrich Drepper <drepper@redhat.com>
9328
9329 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9330 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9331 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9332 (INIT_SYSINFO): New #define.
9333 (TLS_TP_INIT): Use INIT_SYSINFO.
9334 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9335 At test to make sure SYSINFO_OFFSET value is correct.
9336 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9337
3d539579
UD
93382002-12-18 Jakub Jelinek <jakub@redhat.com>
9339
9340 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9341 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9342 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9343 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9344 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9345 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9346 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9347
d7913e0e
UD
93482002-12-18 Ulrich Drepper <drepper@redhat.com>
9349
f051627f
UD
9350 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9351 macro instead of using int $0x80 directly.
9352
d7913e0e
UD
9353 * sysdeps/pthread/bits/stdio-lock.h: New file.
9354 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9355 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9356 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9357 * Makefile (routines): Add libc-lowlevelmutex.
9358
9359 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9360 __i686.get_pc_thunk.dx.
9361
f077a4a9
UD
93622002-12-17 Jakub Jelinek <jakub@redhat.com>
9363
9364 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9365 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9366 ($(objpfx)tst-cancel-wrappers.out): New rule.
9367 * tst-cancel-wrappers.sh: New test.
9368 * tst-locale1.c: Include signal.h.
9369 (uselocale): Test static linking of __libc_current_sigrt*.
9370
93712002-12-17 Ulrich Drepper <drepper@redhat.com>
9372
9373 * Makefile (tests): Add tst-cancel6.
9374 * tst-cancel6.c: New file
9375
bd499a3b
UD
93762002-12-17 Jakub Jelinek <jakub@redhat.com>
9377
9378 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9379 Define meaningfully for assembler as well.
9380 * pthreadP.h (struct pthread_functions): Remove
9381 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9382 and ptr_pthread_attr_init_2_1 fields.
9383 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9384 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9385 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9386 (FORWARD3): Define using FORWARD4.
9387 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9388 versions.
9389 * pt-system.c: Remove duplicate stdlib.h include.
9390
0a1063f4
UD
93912002-12-16 Ulrich Drepper <drepper@redhat.com>
9392
87d60668
UD
9393 * sem_init.c: Define sem_init@GLIBC_2.0.
9394 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9395 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9396
0a1063f4
UD
9397 * flockfile.c: Moved to...
9398 * sysdeps/pthread/flockfile.c: ...here. New file.
9399 * funlockfile.c: Moved to...
9400 * sysdeps/pthread/funlockfile.c: ...here. New file.
9401 * ftrylockfile.c: Moved to...
9402 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9403
9634cf9d
UD
94042002-12-16 Jakub Jelinek <jakub@redhat.com>
9405
9406 * libc-cancellation.c: Guard both function with
9407 #if !defined NOT_IN_libc.
9408 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9409 automatically provided pthread wrappers.
9410 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9411 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9412 nor in libpthread.
9413 * pt-open.c: Removed.
9414 * pt-fcntl.c: Removed.
9415 * pt-fsync.c: Removed.
9416 * pt-lseek.c: Removed.
9417 * pt-msgrcv.c: Removed.
9418 * pt-msgsnd.c: Removed.
9419 * pt-msync.c: Removed.
9420 * pt-nanosleep.c: Removed.
9421 * pt-open64.c: Removed.
9422 * pt-pause.c: Removed.
9423 * pt-pread.c: Removed.
9424 * pt-pread64.c: Removed.
9425 * pt-pwrite.c: Removed.
9426 * pt-pwrite64.c: Removed.
9427 * pt-read.c: Removed.
9428 * pt-recv.c: Removed.
9429 * pt-recvfrom.c: Removed.
9430 * pt-recvmsg.c: Removed.
9431 * pt-send.c: Removed.
9432 * pt-sendto.c: Removed.
9433 * pt-sigtimedwait.c: Removed.
9434 * pt-sigwait.c: Removed.
9435 * pt-wait.c: Removed.
9436 * pt-waitpid.c: Removed.
9437 * pt-write.c: Removed.
9438 * pt-accept.c: Removed.
9439 * pt-close.c: Removed.
9440 * pt-connect.c: Removed.
9441 * pt-lseek64.c: Removed.
9442 * pt-sendmsg.c: Removed.
9443 * pt-tcdrain.c: Removed.
9444
6ee8d334
UD
94452002-12-15 Ulrich Drepper <drepper@redhat.com>
9446
81fa9371
UD
9447 * init.c (__pthread_initialize_minimal_internal): Renamed from
9448 __pthread_initialize_minimal. Make old name an alias. This
9449 converts a normal relocation into a relative relocation.
9450
f3015aa5
UD
9451 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9452
4cbc1950
UD
9453 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9454 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9455 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9456 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9457 pt-sigwaitinfo, pt-waitid, and pt-writev.
9458 * pt-creat.c: Removed.
9459 * pt-poll.c: Removed.
9460 * pt-pselect.c: Removed.
9461 * pt-readv.c: Removed.
9462 * pt-select.c: Removed.
9463 * pt-sigpause.c: Removed.
9464 * pt-sigsuspend.c: Removed.
9465 * pt-sigwaitinfo.c: Removed.
9466 * pt-waitid.c: Removed.
9467 * pt-writev.c: Removed.
9468
8454830b
UD
9469 * init.c (pthread_functions): New variable.
9470 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9471 (or NULL) to __libc_pthread_init.
9472 * forward.c: Rewrite to use __libc:pthread_functions array to get
9473 function addresses.
9474 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9475 prototype.
9476 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9477 Take new parameter. Copy content of variable pointed to by it
9478 to __libc_pthread_init.
9479
9480 * pthreadP.h (struct pthread_functions): New type.
9481 (__libc_pthread_init): Declare.
9482
9483 * pthread_attr_destroy.c: Add namespace protected alias.
9484 * pthread_attr_getdetachstate.c: Likewise.
9485 * pthread_attr_getinheritsched.c: Likewise.
9486 * pthread_attr_getschedparam.c: Likewise.
9487 * pthread_attr_getschedpolicy.c: Likewise.
9488 * pthread_attr_getscope.c: Likewise.
9489 * pthread_attr_setdetachstate.c: Likewise.
9490 * pthread_attr_setinheritsched.c: Likewise.
9491 * pthread_attr_setschedparam.c: Likewise.
9492 * pthread_attr_setschedpolicy.c: Likewise.
9493 * pthread_attr_setscope.c: Likewise.
9494 * pthread_cond_broadcast.c: Likewise.
9495 * pthread_cond_destroy.c: Likewise.
9496 * pthread_cond_init.c: Likewise.
9497 * pthread_cond_signal.c: Likewise.
9498 * pthread_cond_wait.c: Likewise.
9499 * pthread_condattr_destroy.c: Likewise.
9500 * pthread_condattr_init.c: Likewise.
9501 * pthread_equal.c: Likewise.
9502 * pthread_exit.c: Likewise.
9503 * pthread_getschedparam.c: Likewise.
9504 * pthread_self.c: Likewise.
9505 * pthread_setcancelstate.c: Likewise.
9506 * pthread_setschedparam.c: Likewise.
9507 * pthread_mutex_destroy.c: Likewise.
9508 * pthread_mutex_init.c: Likewise.
9509 * pthreadP.h: Add prototypes for the aliases.
9510
0d5f4929
UD
9511 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9512 multiple_threads member in correct TCB to 1.
9513
6ee8d334
UD
9514 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9515 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9516 member of thread decriptor, otherwise return unconditionally 1.
9517
2fb6444d
UD
95182002-12-14 Ulrich Drepper <drepper@redhat.com>
9519
9520 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9521 regular Linux version. Remove file.
9522 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9523 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9524 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9525 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9526 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9527 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9528 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9529 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9530 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9531 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9532 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9533 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9534 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9535 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9536 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9537 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9538 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9539 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9540 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9541 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9542 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9543 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9544 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9545 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9546 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9547 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9548 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9549 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9550 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9551 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9552
86b2dc40
UD
95532002-12-14 Jakub Jelinek <jakub@redhat.com>
9554
9555 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9556 * sysdeps/unix/sysv/linux/open.c: Removed.
9557 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9558 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9559 * sysdeps/unix/sysv/linux/msync.c: Removed.
9560 * sysdeps/unix/sysv/linux/read.c: Removed.
9561 * sysdeps/unix/sysv/linux/close.c: Removed.
9562 * sysdeps/unix/sysv/linux/creat.c: Removed.
9563 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9564 * sysdeps/unix/sysv/linux/pause.c: Removed.
9565 * sysdeps/unix/sysv/linux/select.c: Removed.
9566 * sysdeps/unix/sysv/linux/write.c: Removed.
9567
9d263d72
UD
95682002-12-14 Ulrich Drepper <drepper@redhat.com>
9569
9570 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
9571 element in TCB to see whether locking is needed.
9572
9573 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
9574 MULTIPLE_THREADS_OFFSET value is correct.
9575
9576 * sysdeps/unix/sysv/linux/close.c: New file.
9577 * sysdeps/unix/sysv/linux/connect.S: New file.
9578 * sysdeps/unix/sysv/linux/creat.c: New file.
9579 * sysdeps/unix/sysv/linux/fsync.c: New file.
9580 * sysdeps/unix/sysv/linux/llseek.c: New file.
9581 * sysdeps/unix/sysv/linux/lseek.c: New file.
9582 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
9583 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
9584 * sysdeps/unix/sysv/linux/msync.c: New file.
9585 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
9586 * sysdeps/unix/sysv/linux/open.c: New file.
9587 * sysdeps/unix/sysv/linux/open64.c: New file.
9588 * sysdeps/unix/sysv/linux/pause.c: New file.
9589 * sysdeps/unix/sysv/linux/poll.c: New file.
9590 * sysdeps/unix/sysv/linux/pread.c: New file.
9591 * sysdeps/unix/sysv/linux/pread64.c: New file.
9592 * sysdeps/unix/sysv/linux/pselect.c: New file.
9593 * sysdeps/unix/sysv/linux/pwrite.c: New file.
9594 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
9595 * sysdeps/unix/sysv/linux/readv.c: New file.
9596 * sysdeps/unix/sysv/linux/recv.S: New file.
9597 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
9598 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
9599 * sysdeps/unix/sysv/linux/select.c: New file.
9600 * sysdeps/unix/sysv/linux/send.S: New file.
9601 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
9602 * sysdeps/unix/sysv/linux/sendto.S: New file.
9603 * sysdeps/unix/sysv/linux/sigpause.c: New file.
9604 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
9605 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9606 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9607 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9608 * sysdeps/unix/sysv/linux/system.c: New file.
9609 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
9610 * sysdeps/unix/sysv/linux/wait.c: New file.
9611 * sysdeps/unix/sysv/linux/waitid.c: New file.
9612 * sysdeps/unix/sysv/linux/waitpid.c: New file.
9613 * sysdeps/unix/sysv/linux/writev.c: New file.
9614 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
9615
9616 * pt-readv.c: Fix comment.
9617
96182002-12-14 Jakub Jelinek <jakub@redhat.com>
9619
9620 * tst-cleanup1.c: Include stdlib.h.
9621
9622 * tst-cancel5.c: New test.
9623 * Makefile (tests): Add tst-cancel5.
9624 (tst-cancel5): Link against libc.so libpthread.so in that order.
9625
9ae0909b
UD
96262002-12-13 Ulrich Drepper <drepper@redhat.com>
9627
b7bdd9c4
UD
9628 * forward.c (test_loaded): Prevent recursive calls.
9629
9ae0909b
UD
9630 * Makefile (routines): Add libc-cancellation.
9631 * libc-cancellation.c: New file.
9632 * descr.h (struct pthread): Add multiple_threads field.
9633 * allocatestack.c (allocate_stack): Initialize multiple_header field of
9634 new thread descriptor to 1.
9635 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
9636 Initialize multiple_thread field after successful thread creation.
9637 * cancellation.c (__do_cancel): Move to pthreadP.h.
9638 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
9639 (__pthread_disable_asynccancel): Add internal_function attribute.
9640 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
9641 * pthread_setcancelstate.c: Likewise.
9642 * pthread_setcanceltype.c: Likewise.
9643 * pthread_exit.c: Likewise.
9644 * pthreadP.h (CANCELLATION_P): Likewise.
9645 (__do_cancel): Define as static inline.
9646 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
9647 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
9648 declarations.
9649 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
9650 fields. Define MULTIPLE_THREADS_OFFSET.
9651 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
9652 declaration.
9653 * sysdeps/unix/sysv/linux/accept.S: New file.
9654 * sysdeps/unix/sysv/linux/read.c: New file.
9655 * sysdeps/unix/sysv/linux/write.c: New file.
9656 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
9657 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
9658 initialization of __libc_locking_needed.
9659 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
9660 __libc_locking_needed, use multiple_threads field in TCB.
9661 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9662
22f20674
UD
96632002-12-12 Ulrich Drepper <drepper@redhat.com>
9664
2ad2e1e7
UD
9665 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
9666 version.
9667 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
9668
22f20674
UD
9669 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
9670 access to __libc_locking_needed for PIC.
9671
aa80bf86
UD
96722002-12-12 Jakub Jelinek <jakub@redhat.com>
9673
9674 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
9675 declare for libc.so.
9676 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
9677 expression.
9678 (__libc_lock_lock): Put into statement expression.
9679 (__libc_lock_unlock): Remove trailing semicolon.
9680 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
9681
24021373
RM
96822002-12-12 Roland McGrath <roland@redhat.com>
9683
9684 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
9685 "m" constraint to refer to __libc_locking_needed. Declare it here.
9686
14e7aece
UD
96872002-12-12 Ulrich Drepper <drepper@redhat.com>
9688
9689 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
9690 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
9691 Initialize __libc_locking_needed.
9692 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
9693 instead of __register_pthread_fork_handler.
9694 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
9695 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
9696 fork-gen with libc_pthread_init.
9697 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
9698 of __register_pthread_fork_handler.
9699 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
9700 of __register_pthread_fork_handler.
9701 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
9702 __libc_locking_needed to determine whether lock prefix can be avoided.
9703 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9704
85631c8e
UD
97052002-12-11 Ulrich Drepper <drepper@redhat.com>
9706
da63009e
UD
9707 * Makefile (tests): Add tst-cleanup1.
9708 * tst-cleanup1.c: New file.
9709 * cancellation.c (__cleanup_thread): Removed.
9710 (__do_cancel): Remove call to __cleanup_thread.
9711 * pthreadP.h: Remove __cleanup_thread prorotype.
9712
000160a2
UD
9713 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9714 Remember function and argument even if cancellation handler
9715 function is not available.
9716 (__libc_cleanup_region_end): Execute registered function directly if
9717 pthread functions are not available.
9718 (__libc_cleanup_end): Likewise.
9719
85631c8e
UD
9720 * init.c (__pthread_initialize_minimal): Fix initialization in
9721 static lib by preventing gcc from being too clever.
9722
dce8f2b6
UD
97232002-12-10 Ulrich Drepper <drepper@redhat.com>
9724
34a075be
UD
9725 * init.c (__pthread_initialize_minimal): Remove unneccesary
9726 sigaddset call.
9727
dce8f2b6
UD
9728 * Makefile (tests): We can run tst-locale2 now.
9729
e5e45b53
UD
97302002-12-09 Ulrich Drepper <drepper@redhat.com>
9731
9732 * Versions: Remove duplicated sigwait entry.
9733
bdb04f92
UD
97342002-12-08 Ulrich Drepper <drepper@redhat.com>
9735
1e506629
UD
9736 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
9737 inside libpthread.
9738
a3957dd5
UD
9739 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
9740
bdb04f92
UD
9741 * pthreadP.h: Declare __pthread_enable_asynccancel and
9742 __pthread_disable_asynccancel.
9743 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
9744 (CANCEL_RESET): Use __pthread_disable_asynccancel.
9745 * cancellation.c (__pthread_enable_asynccancel): New function.
9746 (__pthread_disable_asynccancel): New function.
9747 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
9748 * pt-close.c: Likewise.
9749 * pt-connect.c: Likewise.
9750 * pt-creat.c: Likewise.
9751 * pt-fcntl.c: Likewise.
9752 * pt-fsync.c: Likewise.
9753 * pt-lseek.c: Likewise.
9754 * pt-lseek64.c: Likewise.
9755 * pt-msgrcv.c: Likewise.
9756 * pt-msgsnd.c: Likewise.
9757 * pt-msync.c: Likewise.
9758 * pt-nanosleep.c: Likewise.
9759 * pt-open.c: Likewise.
9760 * pt-open64.c: Likewise.
9761 * pt-pause.c: Likewise.
9762 * pt-poll.c: Likewise.
9763 * pt-pread.c: Likewise.
9764 * pt-pread64.c: Likewise.
9765 * pt-pselect.c: Likewise.
9766 * pt-pwrite.c: Likewise.
9767 * pt-pwrite64.c: Likewise.
9768 * pt-read.c: Likewise.
9769 * pt-readv.c: Likewise.
9770 * pt-recv.c: Likewise.
9771 * pt-recvfrom.c: Likewise.
9772 * pt-recvmsg.c: Likewise.
9773 * pt-select.c: Likewise.
9774 * pt-send.c: Likewise.
9775 * pt-sendmsg.c: Likewise.
9776 * pt-sendto.c: Likewise.
9777 * pt-sigpause.c: Likewise.
9778 * pt-sigsuspend.c: Likewise.
9779 * pt-sigtimedwait.c: Likewise.
9780 * pt-sigwait.c: Likewise.
9781 * pt-sigwaitinfo.c: Likewise.
9782 * pt-system.c: Likewise.
9783 * pt-tcdrain.c: Likewise.
9784 * pt-wait.c: Likewise.
9785 * pt-waitid.c: Likewise.
9786 * pt-waitpid.c: Likewise.
9787 * pt-write.c: Likewise.
9788 * pt-writev.c: Likewise.
a3957dd5
UD
9789 * pthread_join.c: Likewise.
9790 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
9791
9792 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
9793 (__xpg_sigpause): New function.
9794 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
9795
6ccb3834
UD
97962002-12-07 Ulrich Drepper <drepper@redhat.com>
9797
09efc3ba
UD
9798 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
9799
9800 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
9801 _GI_pthread_cleanup_pop to pthreadP.h.
9802
9803 * ftrylockfile.c: Use _IO_lock_trylock instead of
9804 pthread_mutex_trylock.
9805
9806 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
9807 (CANCEL_RESET): Likewise.
9808 (__pthread_setcanceltype_): Declare.
9809 (__pthread_mutex_lock_internal): Declare.
9810 (__pthread_mutex_unlock_internal): Declare.
9811 (__pthread_once_internal): Declare.
9812 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
9813 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
9814
9815 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
9816 and pthread_mutex_unlock.
9817 * pthread_cond_wait.c: Likewise.
9818 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
9819 * pthread_mutex_unlock.c: Likewise.
9820
9821 * pthread_setcanceltype.c: Add additional alias
9822 __pthread_setcanceltype.
9823
9824 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
9825 * sem_open.c (sem_open): Likewise.
9826 Use __libc_open, __libc_write, and __libc_close instead of
9827 open, write, and close respectively.
9828
9829 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
9830 Rewrite as statement expression since it must return a value.
9831
9832 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
9833 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
9834 __pthread_kill.
9835
9836 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
9837 alias __pthread_once_internal.
9838
6ccb3834
UD
9839 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
9840
d3c9f895
UD
98412002-12-06 Ulrich Drepper <drepper@redhat.com>
9842
4614167a
UD
9843 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
9844 * tst-stdio1.c: New file.
9845 * tst-stdio2.c: New file.
9846
a4548cea
UD
9847 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
9848
d3c9f895
UD
9849 * Makefile (tests): Comment out tst-locale2 for now.
9850 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
9851
9852 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
9853 -D_IO_MTSAFE_IO.
9854 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
9855 Use _IO_lock_init instead of explicit assignment.
9856
9857 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
9858 Define __libc_lock_* and __libc_lock_recursive macros with
9859 lowlevellock macros, not pthread mutexes.
9860
9861 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
9862 of pthread_mutex_lock.
9863 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
9864 instead of pthread_mutex_unlock.
9865
fde89ad0
RM
98662002-12-06 Roland McGrath <roland@redhat.com>
9867
9868 * allocatestack.c (__stack_user): Use uninitialized defn.
9869 * init.c (__pthread_initialize_minimal): Initialize it here.
9870
11767d47
RM
98712002-12-05 Roland McGrath <roland@redhat.com>
9872
fde89ad0
RM
9873 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
9874 string.
9875 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
9876
11767d47
RM
9877 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
9878 missing & here too.
9879
440d8bc2
UD
98802002-12-05 Ulrich Drepper <drepper@redhat.com>
9881
9882 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
9883 lowlevellock.
9884 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
9885 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
9886 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
9887 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
9888 for __libc_lock_* macros.
9889 * Makefile (routines): Add libc-lowlevellock.
9890
98912002-10-09 Roland McGrath <roland@redhat.com>
9892
9893 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
9894 Under [__PIC__], call the function via the pointer fetched for
9895 comparison rather than a call by name that uses the PLT.
9896 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
9897 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
9898 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
9899 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
9900 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
9901
d5ed0118
RM
99022002-12-04 Roland McGrath <roland@redhat.com>
9903
9904 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
9905
9906 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
9907 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
9908
9909 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
9910
eaa4099f
UD
99112002-12-04 Ulrich Drepper <drepper@redhat.com>
9912
9913 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
9914 a completely opaque, non-integer type.
9915 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9916
33b5d0cc
UD
99172002-12-05 Jakub Jelinek <jakub@redhat.com>
9918
9919 * sysdeps/i386/tls.h: Include stdlib.h.
9920 * sysdeps/x86_64/tls.h: Likewise.
9921
7a5cdb30
UD
99222002-12-04 Ulrich Drepper <drepper@redhat.com>
9923
c4a6d859
UD
9924 * Makefile (tests): Add tst-locale2.
9925 (tests-static): Likewise.
9926 * tst-locale2.c: New file.
9927
7a5cdb30
UD
9928 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
9929 volatile and add memory clobbers to lock operations.
9930
d82d5d12
UD
99312002-12-03 Ulrich Drepper <drepper@redhat.com>
9932
69cae3cf
UD
9933 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
9934 * sysdeps/i386/i486/bits/atomic.h: New file.
9935 * sysdeps/i386/i586/bits/atomic.h: New file.
9936 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
9937 include i486 version.
9938 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
9939 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 9940 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 9941
e4044c01
UD
9942 * allocatestack.c (get_cached_stack): Don't crash if we first
9943 found a stack with a larger size then needed.
9944 Reported by Hui Huang <hui.huang@sun.com>.
9945
d82d5d12
UD
9946 * Makefile (tests): Add tst-sysconf.
9947 * tst-sysconf.c: New file.
9948
9949 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
9950 PTHREAD_THREADS_MAX.
9951
fa9a4ff0
RM
99522002-12-02 Roland McGrath <roland@redhat.com>
9953
9954 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
9955 Declare using hidden_proto instead of attribute_hidden, so there are
9956 non-.hidden static symbols for gdb to find.
9957 (__pthread_keys): Likewise.
9958 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
9959 * allocatestack.c (__stack_user): Likewise.
9960 * pthread_create.c (__pthread_keys): Likewise.
9961 (__nptl_threads_events, __nptl_last_event): Make these static instead
9962 of hidden.
9963 * pthread_key_create.c (__pthread_pthread_keys_max,
9964 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
9965
91949a33
UD
99662002-12-02 Ulrich Drepper <drepper@redhat.com>
9967
c22b52fa
UD
9968 * Makefile (tests): Add tst-locale1. If buid-static is yes link
9969 statically.
9970 * tst-locale1.c: New file.
9971
beb6aa41
UD
9972 * pthread_cond_timedwait.c: Include <stdlib.h>.
9973
91949a33
UD
9974 * Makefile (tests): Add tst-fork2 and tst-fork3.
9975 * tst-fork2.c: New file.
9976 * tst-fork3.c: New file.
9977
654dff90
UD
99782002-11-28 Ulrich Drepper <drepper@redhat.com>
9979
cb0e76b4
UD
9980 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
9981
9982 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
9983 require it to 200112L.
9984
9985 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
9986 instruction only if HAVE_CMOV is defined.
9987 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
9988
975aa229
UD
9989 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
9990
654dff90
UD
9991 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
9992
9993 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
9994
9995 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
9996
a3931336
UD
99972002-11-27 Ulrich Drepper <drepper@redhat.com>
9998
c10c099c
UD
9999 * sysdeps/x86_64/bits/atomic.h: New file.
10000
10001 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10002 16-bit operations.
10003
dca99d27
UD
10004 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10005 possible since gettid cannot fail.
10006
f78deea6
UD
10007 * sysdeps/x86_64/pthreaddef.h: New file.
10008
10009 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10010
10011 * sysdeps/x86_64/pthread_spin_init.c: New file.
10012 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10013 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10014 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10015
10016 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10017 Add missing lock prefix. Minute optimization.
10018
10019 * tst-spin2.c (main): Also check successful trylock call.
10020
10021 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10022 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10023
10024 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10025 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10026
10027 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10028 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10029 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10030
10031 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10032 value in case of an error.
10033
a3931336
UD
10034 * sysdeps/x86_64/tls.h: New file.
10035
76a50749
UD
100362002-11-26 Ulrich Drepper <drepper@redhat.com>
10037
117c452c
UD
10038 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10039 takes the array member name and the index as parameters.
10040 (THREAD_SETMEM_NC): Likewise.
10041 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10042 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10043 interfaces.
10044
10045 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10046 to decide which code to use.
10047 (THREAD_SETMEM_NC): Likewise.
10048
76a50749
UD
10049 * allocatestack.c (queue_stack): Don't remove stack from list here.
10050 Do it in the caller. Correct condition to prematurely terminate
10051 loop to free stacks.
10052 (__deallocate_stack): Remove stack from list here.
10053
100542002-11-26 Ulrich Drepper <drepper@redhat.com>
10055
10056 * Makefile (tests): Add tst-stack1.
10057 * tst-stack1.c: New file.
10058
10059 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10060 provided stack.
10061
10062 * pthread_attr_getstack.c: Return bottom of the thread area.
10063
100642002-11-25 Ulrich Drepper <drepper@redhat.com>
10065
10066 * Makefile (libpthread-routines): Add pt-allocrtsig and
10067 pthread_kill_other_threads.
10068 * pt-allocrtsig.c: New file.
10069 * pthread_kill_other_threads.c: New file.
10070 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10071 all three functions.
10072 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10073 allocrtsig.
10074 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10075 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10076 and __libc_allocate_rtsig_private.
10077 * Versions (libpthread): Export pthread_kill_other_threads_np,
10078 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10079
100802002-11-24 Ulrich Drepper <drepper@redhat.com>
10081
10082 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10083 the end of the stack. Adjust computations.
10084 When mprotect call fails dequeue stack and free it.
10085 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10086 attribute.
10087 * pthread_getattr_np.c: Likewise.
10088
10089 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10090 surprises.
10091
100922002-11-23 Ulrich Drepper <drepper@redhat.com>
10093
10094 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10095 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10096
100972002-11-22 Ulrich Drepper <drepper@redhat.com>
10098
10099 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10100 * pthread_setspecific.c: Likewise.
10101
101022002-11-21 Ulrich Drepper <drepper@redhat.com>
10103
10104 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10105 definitions. Get them from the official place.
10106 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10107
10108 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10109 Use new CLONE_ flags in clone() calls.
10110
10111 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10112 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10113
10114 * Versions: Add pthread_* functions for libc.
10115 * forward.c: New file.
10116
10117 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10118 errno-loc.
10119 * herrno.c: New file.
10120 * res.c: New file.
10121
10122 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10123 sem_trywait, and sem_timedwait. Add herrno and res.
10124 * sem_init.c: Don't initialize lock and waiters members.
10125 * sem_open.c: Likewise.
10126 * sem_post.c: Removed.
10127 * sem_wait.c: Removed.
10128 * sem_trywait.c: Removed.
10129 * sem_timedwait.c: Removed.
10130 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10131 Includes full implementations of sem_post, sem_wait, sem_trywait,
10132 and sem_timedwait.
10133 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10134 for new implementation.
10135 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10136 and waiters fields.
10137
10138 * tst-sem3.c: Improve error message.
10139 * tst-signal3.c: Likewise.
10140
10141 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10142 to tell the kernel about the termination futex and to initialize tid
10143 member. Don't initialize main_thread.
10144 * descr.h (struct pthread): Remove main_thread member.
10145 * cancelllation.c (__do_cancel): Remove code handling main thread.
10146 The main thread is not special anymore.
10147
10148 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10149 size of the stacks to stack_cache_actsize.
10150
10151 * pt-readv.c: Add missing "defined".
10152 * pt-sigwait.c: Likewise.
10153 * pt-writev.c: Likewise.
10154
101552002-11-09 Ulrich Drepper <drepper@redhat.com>
10156
10157 * Versions: Export __connect from libpthread.
10158 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10159
10160 * Makefile (libpthread-routines): Add pt-raise.
10161 * sysdeps/unix/sysv/linux/raise.c: New file.
10162 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10163 * sysdeps/generic/pt-raise.c: New file.
10164
10165 * pthread_cond_init.c: Initialize all data elements of the condvar
10166 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10167
10168 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10169 * pthread_create.c: Likewise.
10170
10171 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10172 * tst-key1.c: New file.
10173 * tst-key2.c: New file.
10174 * tst-key3.c: New file.
10175
10176 * Versions: Export pthread_detach for version GLIBC_2.0.
10177 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10178
101792002-11-08 Ulrich Drepper <drepper@redhat.com>
10180
10181 * pthread_key_create.c: Terminate search after an unused key was found.
10182 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10183
10184 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10185 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10186
101872002-10-10 Ulrich Drepper <drepper@redhat.com>
10188
10189 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10190 dynamic lookup for errno in PIC.
10191
10192 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10193 release the stack lock as soon as possible.
10194 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10195 the static TLS block.
10196 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10197
10198 * cancellation.c: Renamed from cancelation.c.
10199 * Makefile: Adjust accordingly.
10200 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10201 * cleanup_defer.c: Use CANCELLATION_P.
10202 * pthread_testcancel.c: Likewise.
10203 * descr.h: Fix spelling in comments.
10204 * init.c: Likewise.
10205 * pthread_getattr_np.c: Likewise.
10206 * pthread_getschedparam.c: Likewise.
10207 * pthread_setschedparam.c: Likewise.
10208 * Versions: Likewise.
10209
10210 * pt-pselect.c: New file.
10211 * Makefile (libpthread-routines): Add pt-pselect.
10212 * Versions: Add pselect.
10213
10214 * tst-cancel4.c: New file.
10215 * Makefile (tests): Add tst-cancel4.
10216
102172002-10-09 Ulrich Drepper <drepper@redhat.com>
10218
10219 * pthread_mutex_lock.c: Always record lock ownership.
10220 * pthread_mutex_timedlock.c: Likewise.
10221 * pthread_mutex_trylock.c: Likewise.
10222
10223 * pt-readv.c: New file.
10224 * pt-writev.c: New file.
10225 * pt-creat.c: New file.
10226 * pt-msgrcv.c: New file.
10227 * pt-msgsnd.c: New file.
10228 * pt-poll.c: New file.
10229 * pt-select.c: New file.
10230 * pt-sigpause.c: New file.
10231 * pt-sigsuspend.c: New file.
10232 * pt-sigwait.c: New file.
10233 * pt-sigwaitinfo.c: New file.
10234 * pt-waitid.c: New file.
10235 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10236 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10237 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10238 * Versions: Add all the new functions.
10239
10240 * tst-exit1.c: New file.
10241 * Makefile (tests): Add tst-exit1.
10242
10243 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10244
102452002-10-08 Ulrich Drepper <drepper@redhat.com>
10246
10247 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10248
10249 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10250 call. pthread_join is an official cancellation point.
10251 * pthread_timedjoin.c: Likewise.
10252
10253 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10254 and the condvar's mutex are retrieved.
10255 * pthread_cond_timedwait.c: Likewise.
10256 Reported by dice@saros.East.Sun.COM.
10257
102582002-10-07 Ulrich Drepper <drepper@redhat.com>
10259
10260 * pthreadP.h: Cut out all type definitions and move them...
10261 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10262 * pthreadP.h: Include <internaltypes.h>.
10263
10264 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10265 performance tweaks.
10266
10267 * sem_trywait.c: Shuffle #includes around to get right order.
10268 * sem_timedwait.c: Likewise.
10269 * sem_post.c: Likewise.
10270 * sem_wait.c: Likewise.
10271
10272 * nptl 0.3 released.
10273
10274 * Makefile (tests): Add tst-signal3.
10275 * tst-signal3.c: New file.
10276
102772002-10-05 Ulrich Drepper <drepper@redhat.com>
10278
10279 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10280 the asms modify the sem object.
10281 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10282
10283 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10284 the actual members.
10285 * pthreadP.h (struct sem): New type. Actual semaphore type.
10286 * semaphoreP.h: Include pthreadP.h.
10287 * sem_getvalue.c: Adjust to sem_t change.
10288 * sem_init.c: Likewise.
10289 * sem_open.c: Likewise.
10290 * sem_post.c: Likewise.
10291 * sem_timedwait.c: Likewise.
10292 * sem_trywait.c: Likewise.
10293 * sem_wait.c: Likewise.
10294
102952002-10-04 Ulrich Drepper <drepper@redhat.com>
10296
10297 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10298 * tst-basic2.c: New file.
10299 * tst-exec1.c: New file.
10300 * tst-exec2.c: New file.
10301 * tst-exec3.c: New file.
10302
10303 * tst-fork1.c: Remove extra */.
10304
10305 * nptl 0.2 released. The API for IA-32 is complete.