]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* init.c (__pthread_initialize_minimal_internal): Cheat a bit by
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
19834b42
UD
12009-01-03 Ulrich Drepper <drepper@redhat.com>
2
3 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
4 only passing five parameters to FUTEX_WAIT_BITSET call.
5
6 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_READTIME
8 instead of computing relative timeout.
9
7dd650d7
UD
102009-01-02 Ulrich Drepper <drepper@redhat.com>
11
cbd8aeb8
UD
12 * init.c (__pthread_initialize_minimal_internal): Check for
13 FUTEX_CLOCK_REALTIME flag.
14 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
15 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_READTIME instead of computing
16 relative timeout.
17
7dd650d7
UD
18 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
19 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
20 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
21 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
22 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
23 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
24
217d45cd
UD
252008-12-09 Ulrich Drepper <drepper@redhat.com>
26
27 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
28 loop body instead of ; to avoid gcc warnings.
29 (pthread_cleanup_pop_restore_np): Likewise.
30 Patch by Caolán McNamara <caolanm@redhat.com>.
31
6de79a49
UD
322008-12-09 Jakub Jelinek <jakub@redhat.com>
33
34 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
35 fast path here, for robust/PI/PP mutexes call
36 __pthread_mutex_lock_full. Don't use switch, instead use a series
37 of ifs according to their probability.
38 (__pthread_mutex_lock_full): New function.
39 * pthread_mutex_unlock.c: Include assert.h.
40 (__pthread_mutex_unlock_usercnt): Handle only the
41 fast path here, for robust/PI/PP mutexes call
42 __pthread_mutex_unlock_full. Don't use switch, instead use a series
43 of ifs according to their probability.
44 (__pthread_mutex_unlock_full): New function.
45 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
46 (__pthread_mutex_lock_full): Define.
47
71bb2639
UD
482008-12-08 Ulrich Drepper <drepper@redhat.com>
49
50 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
51 implementation. Add necessary padding and.
52 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
53 words.
54
247626f3
UD
552008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
56
57 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
58 and FUTEX_WAKE_BITSET.
59
da5ac135
UD
602008-12-02 Ulrich Drepper <drepper@redhat.com>
61
62 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
63 and FUTEX_WAKE_BITSET.
64 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
65 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
66 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
67 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
68
c0439b95
RM
692008-11-25 Roland McGrath <roland@redhat.com>
70
71 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
72 Subdirectories moved to ports repository as
73 sysdeps/.../nptl subdirectories.
74
0e54a725
UD
752008-11-12 Jakub Jelinek <jakub@redhat.com>
76
77 [BZ #7008]
78 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
79 of old value.
80 * pthread_cond_init.c (__pthread_cond_init): Fix
81 cond->__data.__nwaiters initialization.
82 * Makefile (tests): Add tst-cond23.
83 * tst-cond23.c: New test.
84
4b23f9bd
JJ
852008-11-07 Jakub Jelinek <jakub@redhat.com>
86
87 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
88 arguments.
89 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
90 arguments.
91
efac1fce
UD
922008-11-01 Ulrich Drepper <drepper@redhat.com>
93
94 [BZ #6955]
95 * pthread_mutex_lock.c: Add support for private PI mutexes.
96 * pthread_mutex_timedlock.c: Likewise.
97 * pthread_mutex_trylock.c: Likewise.
98 * pthread_mutex_unlock.c: Likewise.
99 Patch mostly by Ben Jackson <ben@ben.com>.
100
bf837fa3
UD
1012008-10-31 Ulrich Drepper <drepper@redhat.com>
102
103 [BZ #6843]
104 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
105 Increase stack size for helper thread.
106
208bc836
UD
1072008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
108
109 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
110 assembly with a clobber list for access registers a0 and a1.
111
17f8b4a9
UD
1122008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
113
114 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
115 to force runp->refcntr to be read from memory.
116
2458c748
AJ
1172008-09-08 Richard Guenther <rguenther@suse.de>
118
119 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
120 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
121 lll_timedlock, lll_robust_timedlock, lll_unlock,
122 lll_robust_unlock): Promote private to int.
123
965805e8
UD
1242008-08-15 Ulrich Drepper <drepper@redhat.com>
125
126 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
127 ARCH_RETRY_MMAP definitions.
128 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
129 Define MAP_STACK when not defined.
130 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
131 handling of ARCH_RETRY_MMAP.
132
bd7f4857
UD
1332008-07-30 Ulrich Drepper <drepper@redhat.com>
134
135 * tst-align2.c (f): Print message that f is reached.
136
619cc2f6
UD
1372008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
138
139 [BZ #6740]
140 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
141 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
142
8ccf22f9
UD
1432008-07-25 Ulrich Drepper <drepper@redhat.com>
144
145 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
146 SOCK_CLOEXEC if possible.
147
1482008-05-29 Ulrich Drepper <drepper@redhat.com>
149
150 * Makefile (tests): Add tst-rwlock2a.
151 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
152 * tst-rwlock2a.c: New file.
153
5a337776
UD
1542008-06-12 Ulrich Drepper <drepper@redhat.com>
155
156 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
157
e4d6e7f5
UD
1582008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
159
160 * sysdeps/pthread/pthread.h: Fix typo in comment.
161
d6296e88
UD
1622008-05-28 Ulrich Drepper <drepper@redhat.com>
163
164 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
165 of CPU set to the kernel.
166
62605cbf
UD
1672008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
168
169 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
170 cfi directives.
171 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
172 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
173 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
174 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
175 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
176 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
177
1782008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
179
180 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
181 cfi directives.
182 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
183 Likewise.
184 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
185 Likewise.
186 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
187 Likewise.
188
4b2c85c0
UD
1892008-05-26 Ulrich Drepper <drepper@redhat.com>
190
191 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
192
b72f5692 1932008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
194
195 David S. Miller <davem@davemloft.net>
3b15b590 196
b72f5692 197 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 198
cdffaaa6
UD
1992008-05-10 Ulrich Drepper <drepper@redhat.com>
200
201 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
202 __pshared correctly.
203 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
204 Likewise.
205 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
206 Likewise.
207 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
208 Likewise.
209 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
210 Likewise.
211 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
212
2313c48f
JJ
2132008-04-14 David S. Miller <davem@davemloft.net>
214
215 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
216 (__old_sem_wait): Fix argument to lll_futex_wait().
217
2f611ada
UD
2182007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
219
220 * pthread_create.c: Require pthread_mutex_trylock and
221 pthread_key_delete for libgcc.
222
d24be489
JJ
2232008-04-08 Jakub Jelinek <jakub@redhat.com>
224
225 [BZ #6020]
226 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
227 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
228 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
229
f96853be
UD
2302008-03-27 Ulrich Drepper <drepper@redhat.com>
231
8ccf22f9 232 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
233 <linux/limits.h> has defined it.
234 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
235 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
236 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
237 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
238
354b7527
JJ
2392008-03-18 Jakub Jelinek <jakub@redhat.com>
240
241 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
242 of ASSEMBLER.
243 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
244 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
245
702ae329
UD
2462008-03-14 Ulrich Drepper <drepper@redhat.com>
247
248 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
249 HAVE_DL_DISCOVER_OSVERSION.
250 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
251 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
252
443db178
UD
2532008-03-07 Ulrich Drepper <drepper@redhat.com>
254
255 [BZ #5778]
256 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
257 _POSIX_CHOWN_RESTRICTED value to zero.
258
67fbfa5c
RM
2592008-01-31 Roland McGrath <roland@redhat.com>
260
261 * Makefile (omit-deps): Variable removed.
262
dd3113da
UD
2632008-01-30 Ulrich Drepper <drepper@redhat.com>
264
265 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
266 unnecessary addr32 prefix.
267
16cd816f
RM
2682008-01-29 Roland McGrath <roland@redhat.com>
269
270 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
271
b4b166af
UD
2722008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
273
274 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
275
2762008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
277
278 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
279 a scratch register.
280 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
281 (__lll_lock_wait_private): Fix typo.
282 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
283 (pthread_barrier_wait): Likewise. Adjust XADD use.
284 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
285 Adjust XADD use.
286 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
287 (pthread_rwlock_timedrdlock): Return correct return value.
288 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 289 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 290
eaf95a26
UD
2912008-01-15 Ulrich Drepper <drepper@redhat.com>
292
293 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
294 thread returns the program exits with an error code.
295
ab355d9a
UD
2962008-01-10 Ulrich Drepper <drepper@redhat.com>
297
298 * pthread-errnos.sym: Add EOVERFLOW.
299 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
300 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
301 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
302 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
303
b8cca206
UD
3042007-12-14 Ulrich Drepper <drepper@redhat.com>
305
306 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
307 parameter. Passed it as permission to mmap.
308 * allocatestack.c (allocate_stack): Pass prot as second parameter
309 to ARCH_RETRY_MMAP.
310
189dce4f
UD
3112007-12-12 Ulrich Drepper <drepper@redhat.com>
312
3eb0e1c6
UD
313 * tst-basic7.c: Allocate memory for the stack.
314
189dce4f
UD
315 [BZ #5465]
316 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
317 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 318 Patch by Michal Januszewski.
189dce4f 319
26e21e75
UD
3202007-12-07 Ulrich Drepper <drepper@redhat.com>
321
322 [BZ #5455]
323 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
324 Allow label before pthread_cleanup_pop.
325 (pthread_cleanup_pop_restore_np): Likewise.
326
191ec77f
UD
3272007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
328
329 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
330 Store 2 before returning ETIMEDOUT.
331
c012be6f
UD
3322007-11-23 Ulrich Drepper <drepper@redhat.com>
333
334 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
335 Store 2 before returning ETIMEDOUT.
336 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
337 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
338 (__lll_lock_wait_private): Optimize.
339 (__lll_lock_wait): Likewise.
340
77f1e09a
UD
3412007-11-20 Jakub Jelinek <jakub@redhat.com>
342
343 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
344 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
345 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
346
0f7e0ee5
UD
3472007-11-08 Ulrich Drepper <drepper@redhat.com>
348
cbed6a60
UD
349 [BZ #5240]
350 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
351 If we time out, try one last time to lock the futex to avoid
352 losing a wakeup signal.
353 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
354 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
355
0f7e0ee5
UD
356 [BZ #5245]
357 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
358 if necessary.
359
f6ed654c
UD
3602007-11-07 Ulrich Drepper <drepper@redhat.com>
361
362 [BZ #5245]
363 * allocatestack.c (allocate_stack): Change ENOMEM error in case
364 mmap failed to EAGAIN.
365 * Makefile (tests): Add tst-basic7.
366 * tst-basic7.c: New file.
367
b92e3780
UD
3682007-11-05 Ulrich Drepper <drepper@redhat.com>
369
370 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
371 Use __linkin_atfork.
372
94a749f6
UD
3732007-11-03 Mike Frysinger <vapier@gentoo.org>
374
375 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
376 missing line continuations.
377 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
378 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
379
f160a450
UD
3802007-10-28 Ulrich Drepper <drepper@redhat.com>
381
382 [BZ #5220]
383 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
384 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
385 (struct timer): Add next element.
386 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
387 enqueue timer structure into __active_timer_sigev_thread list.
388 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
389 remove timer struct from __active_timer_sigev_thread.
390 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
391 Before using timer structure make sure it is still on the
392 __active_timer_sigev_thread list. Keep lock until done.
393 Define __active_timer_sigev_thread and
394 __active_timer_sigev_thread_lock.
395
94833f11
UD
3962007-10-27 Ulrich Drepper <drepper@redhat.com>
397
398 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
399 Redefine thread_atfork for use of ATFORK_MEM.
400 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
401 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
402 function.
403 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
404 Use atomic operation when removing first element of list.
405
96c06e08
JJ
4062007-10-17 Jakub Jelinek <jakub@redhat.com>
407
408 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
409 routine instead of an alias to __new_sem_post.
410
e807818b
JJ
4112007-10-15 Jakub Jelinek <jakub@redhat.com>
412
413 * init.c (__pthread_initialize_minimal): Initialize word to appease
414 valgrind.
415
59d430c6
UD
4162007-10-10 Jakub Jelinek <jakub@redhat.com>
417
418 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
419 libc.so just clear NAME.
420 (__libc_rwlock_fini): Nop inside of libc.so.
421 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
422 all zeros.
423
221d9d8e
UD
4242007-09-02 Ulrich Drepper <drepper@redhat.com>
425
426 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
427 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
428 unlocking failed.
429 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
430
2a01ce56
UD
4312007-08-21 Ulrich Drepper <drepper@redhat.com>
432
433 [BZ #4938]
434 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
435 reclaimed stack if necessary.
436 * Makefile (tests): Add tst-tsd6.
437 * tst-tsd6.c: New file.
438
c273641b
JJ
4392007-08-21 Jakub Jelinek <jakub@redhat.com>
440
441 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
442 Add private argument.
443
fb84593c
UD
4442007-08-20 Ulrich Drepper <drepper@redhat.com>
445
446 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
447 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
448
3e8d1eab
JJ
4492007-08-16 Jakub Jelinek <jakub@redhat.com>
450
451 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
452 (__lll_robust_timedlock): Pass private as last argument to
453 __lll_robust_timedlock_wait.
454 (__lll_unlock): Fix a pasto.
455
e4720b0e
JJ
4562007-08-15 Jakub Jelinek <jakub@redhat.com>
457
458 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
459 sparc_old_sem): New structs.
460 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
461 (__sem_wait_cleanup): New function.
462 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
463 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
464 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
465 lll_futex_wait.
466 (__old_sem_wait): New function.
467 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
468 nptl/sysdeps/unix/sysv/linux/sparc version.
469 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
470 Likewise.
471 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
472 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
473 (__new_sem_trywait): Use sparc_old_sem structure.
474 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
475 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
476 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
477 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
478 lll_futex_timed_wait.
479 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
480 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
481 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
482 lll_futex_wake.
483 (__old_sem_post): New function.
484 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
485 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
486 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
487 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
488 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
489 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
490
d13f4a43
UD
4912007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
492
493 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
494 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
495 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
496 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
497 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
498 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
499 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
500 Use FUTEX_WAKE_OP.
501 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
502 kernel-features.h and tcb-offsets.h.
503 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
504 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
505 process private.
506 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
507 tcb-offsets.h.
508 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
509 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
510 process private.
511 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
512 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
513 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
514 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
515 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
516 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
517 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
518
702a9414
JJ
5192007-08-14 Jakub Jelinek <jakub@redhat.com>
520
467d1345
JJ
521 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
522 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
523 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
524 lll_futex_timed_wait.
525
702a9414
JJ
526 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
527 __lll_robust_unlock): Rewrite as macros instead of inline functions.
528 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
529 __lll_robust_unlock, __lll_wait_tid): Likewise.
530
22502ea2
UD
5312007-08-13 Jakub Jelinek <jakub@redhat.com>
532
533 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
534 Fix a pasto.
535 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
536 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
537 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
538 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
539 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
540 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
541 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
542 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
543 kernel-features.h.
544 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
545 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
546 process private. Switch DW_CFA_advance_loc1 and some
547 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
548 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
549 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
550 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
551 process private. Switch DW_CFA_advance_loc{1,2} and some
552 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
553 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
554 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
555 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
556 Likewise.
557 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
558 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
559 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
560 Likewise.
561 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
562 (__pthread_cond_broadcast): Compare %r8 instead of
563 dep_mutex-cond_*(%rdi) with $-1.
564 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
565 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
566 of oring.
567
4baf59ad
UD
5682007-08-13 Ulrich Drepper <drepper@redhat.com>
569
570 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
571
9c6f6953
UD
5722007-08-13 Jakub Jelinek <jakub@redhat.com>
573
574 * allocatestack.c: Include kernel-features.h.
575 * pthread_create.c: Likewise.
576 * pthread_mutex_init.c: Likewise.
577 * init.c: Likewise.
578 * pthread_cond_timedwait.c: Likewise.
579 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
580 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
581 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
582 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
583 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
584 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
585 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
586 Likewise.
587 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
588 Likewise.
589 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
590 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
591 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
592 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
593
974a1f0f
UD
5942007-08-12 Jakub Jelinek <jakub@redhat.com>
595
596 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
597 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
598 byte elements. One of them is the new __shared element.
599 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
600 adjust names of other padding elements.
601 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
602 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
603 byte elements. One of them is the new __shared element.
604 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
605 adjust names of other padding elements.
606 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
607 Renamed __pad1 element to __shared, adjust names of other padding
608 elements.
609 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
610 (pthread_rwlock_t): Likewise.
611 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
612 typo.
613
6142007-08-09 Anton Blanchard <anton@samba.org>
615
616 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
617
f47e2626
UD
6182007-08-12 Ulrich Drepper <drepper@redhat.com>
619
620 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
621 <kernel-features.h>.
622 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
623
5bd8a249
UD
6242007-08-11 Ulrich Drepper <drepper@redhat.com>
625
626 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
627 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
628 dealing with robust mutexes.
629 * pthread_mutex_timedlock.c: Likewise.
630 * pthread_mutex_trylock.c: Likewise.
631 * pthread_mutex_unlock.c: Likewise.
632 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
633
6342007-08-06 Jakub Jelinek <jakub@redhat.com>
635
636 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
637 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
638 (PTHREAD_MUTEX_PSHARED): Define.
639 * pthread_mutex_init.c (__pthread_mutex_init): Set
640 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
641 mutexes.
642 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
643 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
644 as second argument to lll_lock.
645 (LLL_MUTEX_TRYLOCK): Take mutex as argument
646 instead of its __data.__lock field.
647 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
648 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
649 to lll_robust_lock.
650 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
651 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
652 instead of mutex->__data.__kind directly, pass
653 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
654 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
655 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
656 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
657 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
658 to lll_timedlock, lll_robust_timedlock, lll_unlock and
659 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
660 of mutex->__data.__kind directly.
661 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
662 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
663 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
664 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
665 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
666 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
667 and lll_futex_wake.
668 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
669 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
670 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
671 directly.
672 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
673 Take mutex as argument instead of its __data.__lock field, pass
674 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
675 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
676 __data.__lock field.
677 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
678 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
679 to lll_robust_cond_lock.
680 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
681 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
682 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
683 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
684 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
685 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
686 lll_futex_wait.
687 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
688 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
689 lll_futex_wake.
690 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
691 pshared variable, pass it to lll_lock, lll_unlock,
692 lll_futex_timedwait and lll_futex_wake.
693 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
694 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
695 and lll_futex_wake.
696 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
697 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
698 macro.
699 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
700 lll_futex_wake_unlock): Likewise.
701 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
702 Likewise.
703 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
704 lll_futex_wake_unlock): Likewise.
705 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
706 Likewise.
707 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
708 lll_futex_wake_unlock): Likewise.
709 (lll_futex_wake): Fix a typo.
710 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
711 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
712 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
713 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
714 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
715 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
716 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
717 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
718 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
719 (__pthread_cond_timedwait): Likewise.
720 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
721 (__condvar_cleanup, __pthread_cond_wait): Likewise.
722
0470fa46
JJ
7232007-08-05 Jakub Jelinek <jakub@redhat.com>
724
725 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
726 Don't use CGOTSETUP and CGOTRESTORE macros.
727 (CGOTSETUP, CGOTRESTORE): Remove.
728 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
729 @local symbol.
730
64f6281c
UD
7312007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
732
733 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
734 definitions for private futexes.
735 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
736 kernel-features.h and lowlevellock.h. Use private futexes if
737 they are available.
738 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
739 (__lll_mutex_lock_wait): Rename to
740 (__lll_lock_wait): ... this. Don't compile in for libc.so.
741 (__lll_mutex_timedlock_wait): Rename to ...
742 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
743 Don't compile in for libc.so.
744 (__lll_mutex_unlock_wake): Rename to ...
745 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
746 (__lll_timedwait_tid): Use __NR_gettimeofday.
747 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
748 the header from assembler. Renamed all lll_mutex_* resp.
749 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
750 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
751 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
752 Define.
753 (__lll_lock_wait_private): Add prototype.
754 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
755 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
756 __lll_unlock_wake): Likewise.
757 (lll_lock): Add private argument. Call __lll_lock_wait_private
758 if private is constant LLL_PRIVATE.
759 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
760 lll_timedlock, lll_robust_timedlock): Add private argument.
761 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
762 if private is constant LLL_PRIVATE.
763 (lll_robust_unlock, lll_robust_dead): Add private argument.
764 (lll_lock_t): Remove.
765 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
766 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
767 lll_cond_wake, lll_cond_broadcast): Remove.
768 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
769 kernel-features.h and lowlevellock.h.
770 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
771 (LOAD_FUTEX_WAIT): Define.
772 (__lll_robust_mutex_lock_wait): Rename to ...
773 (__lll_robust_lock_wait): ... this. Add private argument.
774 Use LOAD_FUTEX_WAIT macro.
775 (__lll_robust_mutex_timedlock_wait): Rename to ...
776 (__lll_robust_timedlock_wait): ... this. Add private argument.
777 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
778 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
779 lowlevellock.h.
780 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
781 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
782 __lll_mutex_{lock,unlock}_*.
783 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
784 lowlevellock.h and pthread-errnos.h.
785 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
786 FUTEX_CMP_REQUEUE, EINVAL): Remove.
787 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
788 __lll_mutex_{lock,unlock}_*.
789 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
790 lowlevellock.h and pthread-errnos.h.
791 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
792 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
793 __lll_mutex_{lock,unlock}_*.
794 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
795 lowlevellock.h.
796 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
797 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
798 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
799 (__condvar_tw_cleanup): Likewise.
800 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
801 lowlevellock.h.
802 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
803 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
804 __lll_mutex_{lock,unlock}_*.
805 ( __condvar_w_cleanup): Likewise.
806 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
807 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
808 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
809 lowlevellock.h.
810 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
811 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
812 __lll_mutex_{lock,unlock}_*.
813 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
814 lowlevellock.h.
815 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
816 FUTEX_PRIVATE_FLAG): Remove.
817 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
818 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
819 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
820 lowlevellock.h.
821 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
822 FUTEX_PRIVATE_FLAG): Remove.
823 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
824 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
825 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
826 lowlevellock.h.
827 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
828 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
829 __lll_mutex_{lock,unlock}_*.
830 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
831 lowlevellock.h.
832 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
833 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
834 __lll_mutex_{lock,unlock}_*.
835 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
836 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
837 (__new_sem_post): Use standard initial exec code sequences.
838 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
839 lowlevellock.h.
840 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
841 FUTEX_PRIVATE_FLAG): Remove.
842 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
843 exec code sequences.
844 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
845 (__new_sem_trywait): Use standard initial exec code sequences.
846 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
847 (__new_sem_wait): Use standard initial exec code sequences.
848
e51deae7
UD
8492007-07-31 Anton Blanchard <anton@samba.org>
850
851 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
852 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
853 atomic_full_barrier.
854
8552007-07-31 Jakub Jelinek <jakub@redhat.com>
856
857 * allocatestack.c (stack_cache_lock): Change type to int.
858 (get_cached_stack, allocate_stack, __deallocate_stack,
859 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
860 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
861 as second argument to lll_lock and lll_unlock macros on
862 stack_cache_lock.
863 * pthread_create.c (__find_in_stack_list): Likewise.
864 (start_thread): Similarly with pd->lock. Use lll_robust_dead
865 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
866 as second argument.
867 * descr.h (struct pthread): Change lock and setxid_futex field
868 type to int.
869 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
870 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
871 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
872 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
873 Likewise.
874 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
875 * pthread_cond_init.c (__pthread_cond_init): Likewise.
876 * pthreadP.h (__attr_list_lock): Change type to int.
877 * pthread_attr_init.c (__attr_list_lock): Likewise.
878 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
879 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
880 lll_{,un}lock.
881 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
882 also for lll_futex_{wake,wait}.
883 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
884 a pointer to const.
885 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
886 LLL_SHARED as second argument to lll_{,un}lock.
887 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
888 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
889 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
890 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
891 Likewise.
892 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
893 as second argument to lll_{,un}lock macros on pd->lock.
894 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
895 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
896 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
897 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
898 Likewise.
899 * sysdeps/pthread/createthread.c (do_clone, create_thread):
900 Likewise.
901 * pthread_once.c (once_lock): Change type to int.
902 (__pthread_once): Pass LLL_PRIVATE as second argument to
903 lll_{,un}lock macros on once_lock.
904 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
905 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
906 rwlock->__data.__shared as second argument to them and similarly
907 for lll_futex_w*.
908 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
909 Likewise.
910 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
911 Likewise.
912 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
913 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
914 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
915 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
916 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
917 to lll_{,un}lock macros on __sem_mappings_lock.
918 * sem_open.c (check_add_mapping): Likewise.
919 (__sem_mappings_lock): Change type to int.
920 * semaphoreP.h (__sem_mappings_lock): Likewise.
921 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
922 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
923 instead of lll_*mutex_*, pass LLL_SHARED as last
924 argument.
925 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
926 pass LLL_SHARED as last argument.
927 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
928 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
929 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
930 pass LLL_SHARED as last argument.
931 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
932 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
933 LLL_SHARED as last argument.
934 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
935 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
936 Similarly.
937 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
938 __libc_lock_lock_recursive, __libc_lock_unlock,
939 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
940 argument to lll_{,un}lock.
941 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
942 _IO_lock_unlock): Likewise.
943 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
944 compound literal.
945 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
946 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
947 __fork_lock.
948 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
949 free_mem): Likewise.
950 (__fork_lock): Change type to int.
951 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
952 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
953 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
954 lll_futex_wake.
955 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
956 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
957 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
958 New function.
959 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
960 pass it through to lll_futex_*wait, only compile in when
961 IS_IN_libpthread.
962 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
963 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
964 argument and pass it through to lll_futex_*wait.
965 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
966 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
967 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
968 inline functions to __lll_* resp. __lll_robust_*.
969 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
970 (lll_mutex_dead): Add private argument.
971 (__lll_lock_wait_private): New prototype.
972 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
973 __lll_robust_lock_timedwait): Add private argument to prototypes.
974 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
975 call __lll_lock_wait_private, otherwise pass private to
976 __lll_lock_wait.
977 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
978 __lll_robust_timedlock): Add private argument, pass it to
979 __lll_*wait functions.
980 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
981 call __lll_unlock_wake_private, otherwise pass private to
982 __lll_unlock_wake.
983 (__lll_robust_unlock): Add private argument, pass it to
984 __lll_robust_unlock_wake.
985 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
986 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
987 argument, pass it through to __lll_* inline function.
988 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
989 (lll_lock_t): Remove.
990 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
991 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
992 lll_cond_wake, lll_cond_broadcast): Remove.
993 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
994 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
995 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
996 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
997 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
998 the header from assembler. Renamed all lll_mutex_* resp.
999 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1000 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
1001 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
1002 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
1003 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
1004 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
1005 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
1006 Remove prototype.
1007 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
1008 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
1009 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
1010 (lll_trylock): Likewise, use __lll_trylock_asm, pass
1011 MULTIPLE_THREADS_OFFSET as another asm operand.
1012 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
1013 MULTIPLE_THREADS_OFFSET as last asm operand, call
1014 __lll_lock_wait_private if private is constant LLL_PRIVATE,
1015 otherwise pass private as another argument to __lll_lock_wait.
1016 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1017 lll_timedlock, lll_robust_timedlock): Add private argument, pass
1018 private as another argument to __lll_*lock_wait call.
1019 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
1020 MULTIPLE_THREADS_OFFSET as another asm operand, call
1021 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
1022 otherwise pass private as another argument to __lll_unlock_wake.
1023 (lll_robust_unlock): Add private argument, pass private as another
1024 argument to __lll_unlock_wake.
1025 (lll_robust_dead): Add private argument, use __lll_private_flag
1026 macro.
1027 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
1028 LLL_MUTEX_LOCK_INITIALIZER.
1029 (lll_lock_t): Remove.
1030 (LLL_LOCK_INITIALIZER_WAITERS): Define.
1031 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1032 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1033 lll_cond_wake, lll_cond_broadcast): Remove.
1034 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1035 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
1036 2007-05-2{3,9} changes.
1037 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
1038 kernel-features.h and lowlevellock.h.
1039 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1040 (LOAD_FUTEX_WAIT): Rewritten.
1041 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1042 define.
1043 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1044 (__lll_mutex_lock_wait): Rename to ...
1045 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
1046 %ecx, %ecx is now private argument. Don't compile in for libc.so.
1047 (__lll_mutex_timedlock_wait): Rename to ...
1048 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
1049 contains private argument. Don't compile in for libc.so.
1050 (__lll_mutex_unlock_wake): Rename to ...
1051 (__lll_unlock_wake): ... this. %ecx contains private argument.
1052 Don't compile in for libc.so.
1053 (__lll_timedwait_tid): Use __NR_gettimeofday.
1054 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
1055 kernel-features.h and lowlevellock.h.
1056 (LOAD_FUTEX_WAIT): Define.
1057 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1058 define.
1059 (__lll_robust_mutex_lock_wait): Rename to ...
1060 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
1061 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
1062 macro.
1063 (__lll_robust_mutex_timedlock_wait): Rename to ...
1064 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
1065 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
1066 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
1067 lowlevellock.h.
1068 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1069 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1070 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
1071 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
1072 to __lll_lock_wait in %edx.
1073 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1074 Include lowlevellock.h and pthread-errnos.h.
1075 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1076 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1077 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
1078 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1079 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1080 __lll_unlock_wake.
1081 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1082 Include lowlevellock.h and pthread-errnos.h.
1083 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1084 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1085 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
1086 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1087 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1088 __lll_unlock_wake.
1089 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1090 Include lowlevellock.h.
1091 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1092 Don't define.
1093 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
1094 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1095 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1096 __lll_unlock_wake. Use __NR_gettimeofday.
1097 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1098 Include lowlevellock.h.
1099 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1100 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
1101 to __lll_*, pass cond_lock address in %edx rather than %ecx to
1102 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
1103 and __lll_unlock_wake.
1104 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1105 Include lowlevellock.h.
1106 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1107 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
1108 MUTEX(%ebx) address in %edx rather than %ecx to
1109 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1110 and __lll_unlock_wake. Move return value from %ecx to %edx
1111 register.
1112 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1113 Include lowlevellock.h.
1114 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1115 Don't define.
1116 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1117 MUTEX(%ebp) address in %edx rather than %ecx to
1118 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1119 and __lll_unlock_wake. Move return value from %ecx to %edx
1120 register. Use __NR_gettimeofday.
1121 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1122 Include lowlevellock.h.
1123 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1124 Don't define.
1125 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1126 MUTEX(%ebp) address in %edx rather than %ecx to
1127 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1128 and __lll_unlock_wake. Move return value from %ecx to %edx
1129 register. Use __NR_gettimeofday.
1130 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1131 Include lowlevellock.h.
1132 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1133 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
1134 MUTEX(%edi) address in %edx rather than %ecx to
1135 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
1136 and __lll_unlock_wake.
1137 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1138 Include lowlevellock.h.
1139 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1140 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1141 MUTEX(%ebx) address in %edx rather than %ecx to
1142 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1143 and __lll_unlock_wake. Move return value from %ecx to %edx
1144 register.
1145 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
1146 lowlevellock.h.
1147 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1148 define.
1149 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
1150 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1151 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
1152 lowlevellock.h.
1153 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
1154 (sem_timedwait): Use __NR_gettimeofday.
1155 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
1156 lowlevellock.h.
1157 (LOCK): Don't define.
1158 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
1159 lowlevellock.h.
1160 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1161 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
1162 are waiters.
1163 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
1164 2007-05-2{3,9} changes.
1165 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
1166 kernel-features.h and lowlevellock.h.
1167 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1168 (LOAD_FUTEX_WAIT): Rewritten.
1169 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1170 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1171 (__lll_mutex_lock_wait): Rename to ...
1172 (__lll_lock_wait): ... this. %esi is now private argument.
1173 Don't compile in for libc.so.
1174 (__lll_mutex_timedlock_wait): Rename to ...
1175 (__lll_timedlock_wait): ... this. %esi contains private argument.
1176 Don't compile in for libc.so.
1177 (__lll_mutex_unlock_wake): Rename to ...
1178 (__lll_unlock_wake): ... this. %esi contains private argument.
1179 Don't compile in for libc.so.
1180 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
1181 kernel-features.h and lowlevellock.h.
1182 (LOAD_FUTEX_WAIT): Define.
1183 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1184 (__lll_robust_mutex_lock_wait): Rename to ...
1185 (__lll_robust_lock_wait): ... this. %esi argument contains private.
1186 Use LOAD_FUTEX_WAIT macro.
1187 (__lll_robust_mutex_timedlock_wait): Rename to ...
1188 (__lll_robust_timedlock_wait): ... this. %esi argument contains
1189 private, use LOAD_FUTEX_WAIT macro.
1190 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
1191 lowlevellock.h.
1192 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1193 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1194 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
1195 __lll_lock_wait and __lll_unlock_wake.
1196 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
1197 Include lowlevellock.h and pthread-errnos.h.
1198 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1199 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1200 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
1201 pass LLL_SHARED in %esi to both __lll_lock_wait and
1202 __lll_unlock_wake.
1203 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
1204 Include lowlevellock.h and pthread-errnos.h.
1205 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1206 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1207 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
1208 pass LLL_SHARED in %esi to both __lll_lock_wait and
1209 __lll_unlock_wake.
1210 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
1211 Include lowlevellock.h.
1212 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1213 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
1214 pass LLL_SHARED in %esi to both __lll_lock_wait and
1215 __lll_unlock_wake.
1216 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1217 Include lowlevellock.h.
1218 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1219 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
1220 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
1221 and __lll_unlock_wake.
1222 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1223 Include lowlevellock.h.
1224 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1225 Don't define.
1226 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
1227 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1228 and __lll_unlock_wake.
1229 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1230 Include lowlevellock.h.
1231 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1232 Don't define.
1233 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1234 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1235 and __lll_unlock_wake.
1236 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1237 Include lowlevellock.h.
1238 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1239 Don't define.
1240 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1241 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1242 and __lll_unlock_wake.
1243 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1244 Include lowlevellock.h.
1245 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1246 Don't define.
1247 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
1248 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1249 and __lll_unlock_wake.
1250 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1251 Include lowlevellock.h.
1252 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1253 Don't define.
1254 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1255 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
1256 and __lll_unlock_wake.
1257 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
1258 lowlevellock.h.
1259 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1260 define.
1261 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
1262 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1263 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
1264 lowlevellock.h.
1265 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1266 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
1267 lowlevellock.h.
1268 (LOCK): Don't define.
1269 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
1270 lowlevellock.h.
1271 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1272 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
1273 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
1274 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
1275 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
1276 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
1277 (__lll_lock_wait_private): New function.
1278 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
1279 it to lll_futex_*wait. Don't compile in for libc.so.
1280 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
1281 Remove.
1282 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
1283 (struct sparc_pthread_barrier): Remove.
1284 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
1285 struct sparc_pthread_barrier. Pass
1286 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
1287 and lll_futex_wait macros.
1288 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
1289 Remove.
1290 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1291 Include sparc pthread_barrier_wait.c instead of generic one.
1292
6f59d56e
UD
12932007-07-30 Jakub Jelinek <jakub@redhat.com>
1294
1475e201
UD
1295 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
1296
6f59d56e
UD
1297 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
1298 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
1299 %ecx.
1300 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
1301 (pthread_rwlock_timedwrlock): Likewise.
1302 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
1303 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
1304
558f0300
JJ
13052007-07-31 Jakub Jelinek <jakub@redhat.com>
1306
1307 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
1308
cedb4109
UD
13092007-07-26 Jakub Jelinek <jakub@redhat.com>
1310
1311 * tst-locale2.c (useless): Add return statement.
1312
085a4412
UD
13132007-07-24 Jakub Jelinek <jakub@redhat.com>
1314
1315 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
1316 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
1317 * pthread_create.c (start_thread): Likewise.
1318 * init.c (sighandler_setxid): Likewise.
1319 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1320 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1321 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1322 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1323 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1324 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1325 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1326 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1327 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1328 Likewise.
1329 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1330 Likewise.
1331 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1332 Likewise.
1333 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1334 __rtld_notify): Likewise.
1335 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1336 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1337 __pthread_once): Likewise.
1338 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1339 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1340 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1341 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1342 (lll_futex_wait): Add private argument, define as wrapper around
1343 lll_futex_timed_wait.
1344 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1345 use __lll_private_flag macro.
1346 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1347 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1348 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1349 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1350 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1351 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1352 (lll_futex_wait): Add private argument, define as wrapper around
1353 lll_futex_timed_wait.
1354 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1355 use __lll_private_flag macro.
1356 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1357 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1358 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1359 Define.
1360 (lll_futex_timed_wait, lll_futex_wake): Use it.
1361 (lll_private_futex_wait, lll_private_futex_timed_wait,
1362 lll_private_futex_wake): Removed.
1363 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1364 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1365 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1366 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1367 (lll_futex_wait): Add private argument, define as wrapper around
1368 lll_futex_timed_wait.
1369 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1370 use __lll_private_flag macro.
1371 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1372 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1373 to lll_futex_*.
1374 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1375 (lll_private_futex_wait, lll_private_futex_timed_wait,
1376 lll_private_futex_wake): Removed.
1377 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1378 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1379 (lll_private_futex_wait, lll_private_futex_timed_wait,
1380 lll_private_futex_wake): Removed.
1381 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1382 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1383 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1384 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1385 (lll_futex_wait): Add private argument, define as wrapper around
1386 lll_futex_timed_wait.
1387 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1388 use __lll_private_flag macro.
1389 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1390 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1391 to lll_futex_*.
1392 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1393 Define.
1394 (lll_futex_timed_wait, lll_futex_wake): Use it.
1395 (lll_private_futex_wait, lll_private_futex_timed_wait,
1396 lll_private_futex_wake): Removed.
1397
ef0af159
JJ
13982007-07-27 Jakub Jelinek <jakub@redhat.com>
1399
1400 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1401 of the structure for sparc32.
1402
14032007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1404
1405 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1406
eb4f5909
UD
14072007-07-23 Ulrich Drepper <drepper@redhat.com>
1408
1409 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1410 code used when private futexes are assumed.
1411 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1412 Likewise.
1413
b5f13526
UD
14142007-07-23 Jakub Jelinek <jakub@redhat.com>
1415
1416 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1417 (__lll_private_flag): Define.
1418 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1419 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1420 __lll_private_flag.
1421 (lll_private_futex_wait, lll_private_futex_timedwait,
1422 lll_private_futex_wake): Define as wrapper around non-_private
1423 macros.
1424 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1425 (__lll_private_flag): Define.
1426 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1427 (lll_private_futex_wait, lll_private_futex_timedwait,
1428 lll_private_futex_wake): Define as wrapper around non-_private
1429 macros.
1430
eb7721f2
UD
14312007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1432
1433 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1434 parameter to lll_futex_wait call.
1435 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1436
1437 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1438 Replace lll_futex_wait with lll_private_futex_wait.
1439 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1440 Add LLL_SHARED parameter to lll_futex_wake().
1441
1442 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1443 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1444 lll_private_futex_wake.
1445 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1446 bit from private parm before syscall.
1447 (lll_futex_timed_wait): Likewise.
1448 (lll_futex_wake): Likewise.
1449 (lll_futex_wake_unlock): Likewise.
1450 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1451 (lll_robust_mutex_unlock): Likewise.
1452 (lll_mutex_unlock_force): Likewise.
1453 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1454
defc45f2
UD
14552007-07-23 Ulrich Drepper <drepper@redhat.com>
1456
1457 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1458 compilation when unconditionally using private futexes.
1459 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1460 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1461 Likewise.
1462 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1463 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1464
087722b8
UD
14652007-07-17 Jakub Jelinek <jakub@redhat.com>
1466
1467 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1468 Define.
1469
765c6b0c
UD
14702007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1471
1472 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1473 kernel-features.h.
1474
7d9d8bd1
RM
14752007-05-16 Roland McGrath <roland@redhat.com>
1476
1477 * init.c (__nptl_initial_report_events): New variable.
1478 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1479 to that.
1480
a4915df2
UD
14812007-06-22 Jakub Jelinek <jakub@redhat.com>
1482
1483 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1484 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1485
e4eb675d
UD
14862007-06-19 Ulrich Drepper <drepper@redhat.com>
1487
1488 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1489 implementation.
1490
ae1ad3ae
UD
14912007-06-18 Ulrich Drepper <drepper@redhat.com>
1492
1493 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1494 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1495 * pthread_mutex_timedlock.c: Likewise.
1496 * pthread_mutex_trylock.c: Likewise.
1497 * pthread_mutex_unlock.c: Likewise.
1498
89074592
UD
14992007-06-17 Andreas Schwab <schwab@suse.de>
1500
1501 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1502 sections.
1503
d4201cc4
UD
15042007-06-17 Ulrich Drepper <drepper@redhat.com>
1505
1506 * allocatestack.c (allocate_stack): Make code compile if
1507 __ASSUME_PRIVATE_FUTEX is set.
1508
339dbf0e
UD
15092007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1510
1511 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1512 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1513 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1514 (__pthread_rwlock_wrlock): Likewise.
1515 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1516 (pthread_rwlock_timedrdlock): Likewise.
1517 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1518 (pthread_rwlock_timedwrlock): Likewise.
1519 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1520 (__pthread_rwlock_unlock): Likewise.
1521
15222007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1523
1524 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1525 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1526 Split __flags into __flags, __shared, __pad1 and __pad2.
1527 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1528 futexes if they are available.
1529 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1530 in libc-lowlevellock.S allow using private futexes.
1531 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1532 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1533 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1534 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1535 lll_private_futex_timed_wait and lll_private_futex_wake.
1536 (lll_robust_mutex_unlock): Fix typo.
1537 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1538 field in futex command setup.
1539 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1540 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1541 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1542 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1543 if they are available. Remove clear_once_control.
1544 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1545 futexes if they are available.
1546 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1547 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1548 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1549 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1550 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1551 Wake only when there are waiters.
1552 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1553 support. Indicate that there are waiters. Remove unnecessary
1554 extra cancellation test.
1555 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1556 left-over duplication of __sem_wait_cleanup.
1557
26f56c1c
UD
15582007-06-07 Ulrich Drepper <drepper@redhat.com>
1559
1560 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1561 parameter to lll_futex_wait, lll_futex_timed_wait, and
1562 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1563 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1564 lll_private_futex_wake.
1565 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1566 * allocatestack.c: Adjust use of lll_futex_* macros.
1567 * init.c: Likewise.
1568 * lowlevellock.h: Likewise.
1569 * pthread_barrier_wait.c: Likewise.
1570 * pthread_cond_broadcast.c: Likewise.
1571 * pthread_cond_destroy.c: Likewise.
1572 * pthread_cond_signal.c: Likewise.
1573 * pthread_cond_timedwait.c: Likewise.
1574 * pthread_cond_wait.c: Likewise.
1575 * pthread_create.c: Likewise.
1576 * pthread_mutex_lock.c: Likewise.
1577 * pthread_mutex_setprioceiling.c: Likewise.
1578 * pthread_mutex_timedlock.c: Likewise.
1579 * pthread_mutex_unlock.c: Likewise.
1580 * pthread_rwlock_timedrdlock.c: Likewise.
1581 * pthread_rwlock_timedwrlock.c: Likewise.
1582 * pthread_rwlock_unlock.c: Likewise.
1583 * sysdeps/alpha/tls.h: Likewise.
1584 * sysdeps/i386/tls.h: Likewise.
1585 * sysdeps/ia64/tls.h: Likewise.
1586 * sysdeps/powerpc/tls.h: Likewise.
1587 * sysdeps/pthread/aio_misc.h: Likewise.
1588 * sysdeps/pthread/gai_misc.h: Likewise.
1589 * sysdeps/s390/tls.h: Likewise.
1590 * sysdeps/sh/tls.h: Likewise.
1591 * sysdeps/sparc/tls.h: Likewise.
1592 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1593 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1594 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1595 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1596 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1597 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1598 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1599 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1600 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1601 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1602 Likewise.
1603 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1604 * sysdeps/x86_64/tls.h: Likewise.
1605
ee5d5755
UD
16062007-05-29 Ulrich Drepper <drepper@redhat.com>
1607
b03b0c29
UD
1608 * pthread_getattr_np.c: No need to install a cancellation handler,
1609 this is no cancellation point.
1610 * pthread_getschedparam.c: Likewise.
1611 * pthread_setschedparam.c: Likewise.
1612 * pthread_setschedprio.c: Likewise.
1613 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1614 lll_unlock_wake_cb.
1615 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1616 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1617 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1618 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1619 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1620 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1621 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1622 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1623 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1624 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1625 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1626 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1627
0154658d
UD
1628 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1629 whether there are more than one thread makes no sense here since
1630 we only call the slow path if the locks are taken.
1631 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1632
ee5d5755
UD
1633 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1634 COND_NWAITERS_SHIFT.
1635 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1636 COND_CLOCK_BITS.
1637 * pthread_cond_init.c: Likewise.
1638 * pthread_cond_timedwait.c: Likewise.
1639 * pthread_cond_wait.c: Likewise.
1640 * pthread_condattr_getclock.c: Likewise.
1641 * pthread_condattr_setclock.c: Likewise.
1642 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1643 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1644 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1645 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1646 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1647
991fa82b
UD
16482007-05-28 Jakub Jelinek <jakub@redhat.com>
1649
40f57573
UD
1650 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1651 unistd.h.
1652
991fa82b
UD
1653 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1654 insn suffix.
1655 (THREAD_GSCOPE_GET_FLAG): Remove.
1656 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1657 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1658 changes.
1659 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1660 (THREAD_GSCOPE_GET_FLAG): Remove.
1661 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1662 instead of THREAD_GSCOPE_GET_FLAG.
1663 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1664 it.
1665 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1666 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1667 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1668 THREAD_GSCOPE_WAIT): Define.
1669 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1670 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1671 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1672 THREAD_GSCOPE_WAIT): Define.
1673 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1674 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1675 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1676 THREAD_GSCOPE_WAIT): Define.
1677 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1678 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1679 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1680 THREAD_GSCOPE_WAIT): Define.
1681
16822007-05-24 Richard Henderson <rth@redhat.com>
1683
1684 * descr.h (struct pthread): Add header.gscope_flag.
1685 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1686 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1687 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1688 THREAD_GSCOPE_WAIT): Define.
1689
e59660bc
UD
16902007-05-27 Ulrich Drepper <drepper@redhat.com>
1691
1692 * init.c: Make it compile with older kernel headers.
1693
1694 * tst-initializers1.c: Show through exit code which test failed.
1695
1696 * pthread_rwlock_init.c: Also initialize __shared field.
1697 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1698 element in rwlock structure into four byte elements. One of them is
1699 the new __shared element.
1700 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1701 Likewise.
cd0dbd89 1702 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1703 __shared, adjust names of other padding elements.
1704 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1705 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1706 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1707 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1708 FUTEX_PRIVATE_FLAG.
1709 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1710 futex to use private operations if possible.
1711 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1712 Likewise.
1713 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1714 Likewise.
1715 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1716 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1717 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1718 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1719 Likewise.
1720 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1721 Likewise.
1722 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1723 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1724
d8ff3792
UD
17252007-05-26 Ulrich Drepper <drepper@redhat.com>
1726
546346b6
UD
1727 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1728 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1729 * pthread_rwlock_timedrdlock.c: Likewise.
1730 * pthread_rwlock_tryrdlock.c: Likewise.
1731
a2dd3360
UD
1732 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1733 optimization.
1734
6df7ffad
UD
1735 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1736 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1737 duplication of __sem_wait_cleanup.
1738
1739 * allocatestack.c: Revert last change.
1740 * init.c: Likewise.
1741 * sysdeps/i386/tls.h: Likewise.
1742 * sysdeps/x86_64/tls.h: Likewise.
1743 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1744 header structure.
1745 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1746
d8ff3792
UD
1747 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1748 Add private field.
1749 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1750 * pthread_barrier_init.c: Set private flag if pshared and private
1751 futexes are supported.
1752 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1753 private field in futex command setup.
1754 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1755
3d2dd6ca
UD
17562007-05-25 Ulrich Drepper <drepper@redhat.com>
1757
42e6c665
UD
1758 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1759 support.
1760 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1761 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1762 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1763 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1764 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1765
3d2dd6ca
UD
1766 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1767 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1768 fields in the structure.
1769 (__old_sem_init): New function.
1770 * sem_open.c: Initialize all fields of the structure.
1771 * sem_getvalue.c: Adjust for renamed element.
1772 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1773 (gen-as-const-headers): Add structsem.sym.
1774 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1775 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1776 struct new_sem. Add struct old_sem.
1777 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1778 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1779 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1780 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1781 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1782 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1783 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1784 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1785 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1786 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1787 * tst-sem10.c: New file.
1788 * tst-sem11.c: New file.
1789 * tst-sem12.c: New file.
1790 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1791 of struct sem.
1792
20a4d722
JJ
17932007-05-25 Ulrich Drepper <drepper@redhat.com>
1794 Jakub Jelinek <jakub@redhat.com>
1795
1796 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1797 Move __pthread_enable_asynccancel right before futex syscall.
1798 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1799 Likewise.
1800
18012007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1802
1803 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1804 THREAD_COPY_PRIVATE_FUTEX): Define.
1805 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1806 THREAD_COPY_PRIVATE_FUTEX): Define.
1807 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1808 * init.c (__pthread_initialize_minimal_internal): Use
1809 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1810
1811 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1812 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1813 THREAD_GSCOPE_FLAG_WAIT): Define.
1814 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1815 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1816 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1817 PTR_DEMANGLE.
1818 (THREAD_GSCOPE_GET_FLAG): Define.
1819 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1820 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1821 instead of ->header.gscope_flag directly.
1822
5a8075b1
UD
18232007-05-23 Ulrich Drepper <drepper@redhat.com>
1824
1825 * init.c (__pthread_initialize_minimal_internal): Check whether
1826 private futexes are available.
1827 * allocatestack.c (allocate_stack): Copy private_futex field from
1828 current thread into the new stack.
1829 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1830 futexes if they are available.
1831 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1832 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1833 in libc-lowlevellock.S allow using private futexes.
1834 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1835 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1836 FUTEX_PRIVATE_FLAG.
1837 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1838 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1839 if they are available.
1840 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1841 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1842 * sysdeps/i386/tcb-offsets.sym: Likewise.
1843 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1844 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1845
6d59823c
UD
18462007-05-21 Ulrich Drepper <drepper@redhat.com>
1847
1848 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1849 Remove ptr_wait_lookup_done again.
1850 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1851 (__pthread_initialize_minimal_internal): Initialize
1852 _dl_wait_lookup_done pointer in _rtld_global directly.
1853 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1854 Remove code to code _dl_wait_lookup_done.
1855 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1856 encrypted for now.
1857
2c9718f3
JJ
18582007-05-21 Jakub Jelinek <jakub@redhat.com>
1859
1860 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1861 pthread_mutex_init failed with ENOTSUP.
1862
df94b641
UD
18632007-05-19 Ulrich Drepper <drepper@redhat.com>
1864
1865 * allocatestack.c (__wait_lookup_done): New function.
1866 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1867 Add ptr_wait_lookup_done.
1868 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1869 * pthreadP.h: Declare __wait_lookup_done.
1870 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1871 Define macros to implement reference handling of global scope.
1872 * sysdeps/x86_64/tls.h: Likewise.
1873 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1874 Initialize GL(dl_wait_lookup_done).
1875
bec51a30
UD
18762007-05-17 Ulrich Drepper <drepper@redhat.com>
1877
113ad5fc
UD
1878 [BZ #4512]
1879 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1880 is detected.
1881 * pthread_mutex_timedlock.c: Likewise.
1882 * pthread_mutex_trylock.c: Likewise.
1883 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1884
1885 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1886 * tst-robust9.c: New file.
1887 * tst-robustpi9.c: New file.
1888
bec51a30
UD
1889 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1890 unnecessary extra cancellation test.
1891
83d87915
UD
18922007-05-14 Ulrich Drepper <drepper@redhat.com>
1893
83d87915
UD
1894 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
1895 extra cancellation test.
1896 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1897
3771196d
UD
18982007-05-10 Ulrich Drepper <drepper@redhat.com>
1899
341c566f
UD
1900 * descr.h (struct pthread): Rearrange members to fill hole in
1901 64-bit layout.
1902
3771196d
UD
1903 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1904 (__pthread_setaffinity_new): If syscall was successful and
1905 RESET_VGETCPU_CACHE is defined, use it before returning.
1906 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
1907
7d29b542
JJ
19082007-05-10 Jakub Jelinek <jakub@redhat.com>
1909
1910 [BZ #4455]
1911 * tst-align2.c: Include stackinfo.h.
1912 * tst-getpid1.c: Likewise.
1913
16105fe0
UD
19142007-05-02 Carlos O'Donell <carlos@systemhalted.org>
1915
29c113f0
UD
1916 [BZ #4455]
1917 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
1918 * tst-getpid1.c (do_test): Likewise.
1919
16105fe0
UD
1920 [BZ #4456]
1921 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
1922 (allocate_stack): Likewise.
1923
6780bc44
UD
19242007-05-07 Ulrich Drepper <drepper@redhat.com>
1925
1926 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1927 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
1928 (__lll_robust_timedlock_wait): Likewise.
1929 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
1930
aa75f64c
UD
19312007-05-06 Mike Frysinger <vapier@gentoo.org>
1932
15eca720 1933 [BZ #4465]
aa75f64c
UD
1934 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
1935 * tst-cancel4.c (tf_fdatasync): New test.
1936
f672076e
UD
19372007-04-27 Ulrich Drepper <drepper@redhat.com>
1938
1bb5f5a1
UD
1939 [BZ #4392]
1940 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
1941 check mutexes like normal mutexes.
1942
f672076e
UD
1943 [BZ #4306]
1944 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
1945 Initialize the whole sigevent structure to appease valgrind.
1946
bce20b9a
UD
19472007-04-25 Ulrich Drepper <drepper@redhat.com>
1948
1949 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
1950 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
1951
0c786eac
UD
19522007-04-06 Ulrich Drepper <drepper@redhat.com>
1953
1954 * tst-locale1.c: Avoid warnings.
1955 * tst-locale2.c: Likewise.
1956
e1f0c5bc
UD
19572007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
1958
1959 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1960 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
1961
965cba04
UD
19622007-03-16 Jakub Jelinek <jakub@redhat.com>
1963
1964 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
1965 __extern_always_inline where appropriate.
1966 * sysdeps/pthread/pthread.h: Likewise.
1967
a5ea509b
RH
19682007-03-13 Richard Henderson <rth@redhat.com>
1969
1970 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
1971 separate cfi regions for the two subsections.
1972
00a1430e
UD
19732007-02-25 Ulrich Drepper <drepper@redhat.com>
1974
1975 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
1976 new thread, don't just decrement it.
1977 Patch by Suzuki K P <suzuki@in.ibm.com>.
1978
63a2f305
UD
19792007-02-21 Ulrich Drepper <drepper@redhat.com>
1980
1981 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
1982 PTHFCT_CALL definition.
1983
2484468b
UD
19842007-02-18 Ulrich Drepper <drepper@redhat.com>
1985
1986 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
1987 available, don't use it.
1988
5ed61e0f
UD
19892007-02-09 Jakub Jelinek <jakub@redhat.com>
1990
1991 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1992 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
1993 call into the kernel to delay.
1994
10ccaa5c
UD
19952007-01-18 Ulrich Drepper <drepper@redhat.com>
1996
f8a17855
UD
1997 * tst-initializers1.c: We want to test the initializers as seen
1998 outside of libc, so undefined _LIBC.
1999
10ccaa5c
UD
2000 * pthread_join.c (cleanup): Avoid warning.
2001
ea1533e0
UD
20022007-01-17 Ulrich Drepper <drepper@redhat.com>
2003
1476bce6
UD
2004 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2005 (__lll_timedwait_tid): Add unwind info.
2006
ea1533e0
UD
2007 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
2008 function table, mangle the pointers.
2009 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
2010 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
2011 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
2012 demangle pointers before use.
2013 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
2014 demangle pointer.
2015 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
2016 * sysdeps/pthread/setxid.h: Likewise.
2017
8980796b
UD
20182007-01-12 Ulrich Drepper <drepper@redhat.com>
2019
2020 * tst-rwlock7.c: Show some more information in case of correct
2021 behavior.
2022
a1d87b5d
UD
20232007-01-11 Ulrich Drepper <drepper@redhat.com>
2024
2025 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2026 (lll_futex_timed_wait): Undo part of last change, don't negate
2027 return value.
2028
11bf311e 20292007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 2030
11bf311e
UD
2031 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
2032 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 2033
11bf311e 20342006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 2035
11bf311e 2036 * shlib-versions: Fix sparc64 linux target specification.
a744da90 2037
11bf311e 20382007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 2039
11bf311e
UD
2040 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2041 Adjust include path for pthread_barrier_wait.c move.
fc242bef 2042
11bf311e 20432006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 2044
11bf311e
UD
2045 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
2046 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 2047
11bf311e
UD
20482006-12-06 Jakub Jelinek <jakub@redhat.com>
2049
2050 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
2051 6 argument cancellable syscalls.
2052 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
2053 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
2054 6 argument cancellable syscalls.
2055 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 2056
66f17705
UD
20572006-12-09 Ulrich Drepper <drepper@redhat.com>
2058
2059 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
2060 (__rtld_mrlock_initialize): Add missing closing parenthesis.
2061
11bf311e
UD
20622006-10-30 Jakub Jelinek <jakub@redhat.com>
2063
2064 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
2065 __sync_lock_release instead of __sync_lock_release_si.
2066
536e40e2
UD
20672006-10-29 Jakub Jelinek <jakub@redhat.com>
2068
2069 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
2070 Define.
2071 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
2072 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
2073 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
2074 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
2075 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
2076 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2077 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
2078 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2079 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2080 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2081 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
2082
11bf311e
UD
20832006-10-27 Ulrich Drepper <drepper@redhat.com>
2084
2085 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
2086 * pthread_barrier_wait.c: ...here.
2087 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
2088 * pthread_cond_broadcast.c: ...here.
2089 * sysdeps/pthread/pthread_cond_signal.c: Move to...
2090 * pthread_cond_signal.c: ...here.
2091 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
2092 * pthread_cond_timedwait.c: ...here.
2093 * sysdeps/pthread/pthread_cond_wait.c: Move to...
2094 * pthread_cond_wait.c: ...here.
2095 * sysdeps/pthread/pthread_once.c: Move to...
2096 * pthread_once.c: ...here.
2097 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
2098 * pthread_rwlock_rdlock.c: ...here.
2099 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
2100 * pthread_rwlock_timedrdlock.c: ...here.
2101 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
2102 * pthread_rwlock_timedwrlock.c: ...here.
2103 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
2104 * pthread_rwlock_unlock.c: ...here.
2105 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
2106 * pthread_rwlock_wrlock.c: ...here.
2107 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
2108 * pthread_spin_destroy.c: ...here.
2109 * sysdeps/pthread/pthread_spin_init.c: Move to...
2110 * pthread_spin_init.c: ...here.
2111 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
2112 * pthread_spin_unlock.c: ...here.
2113 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
2114 * pthread_getcpuclockid.c: ...here.
2115
2116 * init.c: USE_TLS support is now always enabled.
2117 * tst-tls5.h: Likewise.
2118 * sysdeps/alpha/tls.h: Likewise.
2119 * sysdeps/i386/tls.h: Likewise.
2120 * sysdeps/ia64/tls.h: Likewise.
2121 * sysdeps/powerpc/tls.h: Likewise.
2122 * sysdeps/s390/tls.h: Likewise.
2123 * sysdeps/sh/tls.h: Likewise.
2124 * sysdeps/sparc/tls.h: Likewise.
2125 * sysdeps/x86_64/tls.h: Likewise.
2126
006a8f6f 21272006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
2128
2129 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2130 __rtld_mrlock_change): Update oldval if atomic compare and exchange
2131 failed.
2132
2133 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2134 Define to THREAD_SELF->header.multiple_threads.
2135 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
2136 Likewise.
2137 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
2138 Likewise.
2139 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
2140 (SINGLE_THREAD_P): Likewise.
2141 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2142 (SINGLE_THREAD_P): Likewise.
2143 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2144 (SINGLE_THREAD_P): Likewise.
2145 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2146 (SINGLE_THREAD_P): Likewise.
2147 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
2148 Likewise.
2149 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2150 (SINGLE_THREAD_P): Likewise.
2151 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2152 (SINGLE_THREAD_P): Likewise.
2153 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
2154 Likewise.
2155
11bf311e 21562006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 2157
11bf311e
UD
2158 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
2159 by default rather than 2_3_3.
32c075e1 2160
11bf311e 21612006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 2162
11bf311e
UD
2163 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2164 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
2165 atomic_* instead of catomic_* macros.
2166
21672006-10-12 Ulrich Drepper <drepper@redhat.com>
2168
2169 [BZ #3285]
2170 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
2171 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2172 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2173 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2174 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2175 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
2176 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2177 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2178 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2179 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
2180 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2181 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2182 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2183
21842006-10-11 Ulrich Drepper <drepper@redhat.com>
2185
2186 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
2187 cancelable syscalls with six parameters.
2188
2189 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
2190 operations instead of atomic_*.
32c075e1 2191
11bf311e 21922006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 2193
11bf311e 2194 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 2195
11bf311e 21962006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 2197
11bf311e
UD
2198 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
2199 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
2200 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
2201 New file.
2202 * pthread_attr_setstack.c: Allow overwriting the version number of the
2203 new symbol.
2204 * pthread_attr_setstacksize.c: Likewise.
2205 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
2206 it.
2207 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
2208 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 2209
457b559e
UD
22102006-09-24 Ulrich Drepper <drepper@redhat.com>
2211
2212 [BZ #3251]
2213 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
2214 Patch by Petr Baudis.
2215
0466106e
UD
22162006-09-18 Jakub Jelinek <jakub@redhat.com>
2217
2218 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
2219
2220 * tst-cancel2.c (tf): Loop as long as something was written.
2221
bd6d3b7d
UD
22222006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2223
2224 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
2225 mutexes wake all mutexes.
2226 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
2227 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2228 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2229
30aa5785
UD
22302006-09-12 Ulrich Drepper <drepper@redhat.com>
2231
2232 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
2233 to guarantee the thread is always canceled.
2234
2b6a801e
UD
22352006-09-08 Jakub Jelinek <jakub@redhat.com>
2236
2237 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
2238 Include stdlib.h.
2239 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
2240 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
2241 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2242 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2243 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 2244
346e6ad4
UD
22452006-09-08 Ulrich Drepper <drepper@redhat.com>
2246
2247 [BZ #3123]
2248 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
2249 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
2250 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2251 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2252 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
2253 * Makefile (tests): Add tst-cond22.
2254 * tst-cond22.c: New file.
2255
b051fc44
UD
22562006-09-05 Ulrich Drepper <drepper@redhat.com>
2257
2258 [BZ #3124]
2259 * descr.h (struct pthread): Add parent_cancelhandling.
2260 * sysdeps/pthread/createthread.c (create_thread): Pass parent
2261 cancelhandling value to child.
2262 * pthread_create.c (start_thread): If parent thread was canceled
2263 reset the SIGCANCEL mask.
2264 * Makefile (tests): Add tst-cancel25.
2265 * tst-cancel25.c: New file.
2266
d052233c
UD
22672006-09-05 Jakub Jelinek <jakub@redhat.com>
2268 Ulrich Drepper <drepper@redhat.com>
2269
2270 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
2271 counterp if it is already zero.
2272 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
2273
cd248c3f
UD
22742006-03-04 Jakub Jelinek <jakub@redhat.com>
2275 Roland McGrath <roland@redhat.com>
2276
2277 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2278 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2279 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
2280 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2281 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2282 lll_robust_mutex_timedlock, lll_mutex_unlock,
2283 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2284 Add _L_*_ symbols around the subsection.
2285 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
2286 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2287
22882006-03-03 Jakub Jelinek <jakub@redhat.com>
2289 Roland McGrath <roland@redhat.com>
2290
2291 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2292 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2293 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
2294 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2295 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2296 lll_robust_mutex_timedlock, lll_mutex_unlock,
2297 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2298 Add _L_*_ symbols around the subsection.
2299 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
2300 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2301
b80770b2
UD
23022006-08-31 Ulrich Drepper <drepper@redhat.com>
2303
2304 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
2305 change because it can disturb too much existing code. If real hard
2306 reader preference is needed we'll introduce another type.
2307 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2308 (pthread_rwlock_timedwrlock): Likewise.
2309 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2310 Likewise.
2311
bee2df0b
UD
23122006-08-30 Ulrich Drepper <drepper@redhat.com>
2313
2314 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
2315 reader preference.
2316 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2317 (pthread_rwlock_timedwrlock): Likewise.
2318 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2319 Likewise.
2320
d678ebc1
UD
23212006-08-25 Jakub Jelinek <jakub@redhat.com>
2322
2323 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
2324 Only define ifdef SHARED.
2325
ba408f84
UD
23262006-08-23 Ulrich Drepper <drepper@redhat.com>
2327
2328 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2329 (free_stacks): ...here.
2330 (__free_stack_cache): New function.
2331 * pthreadP.h: Declare __free_stack_cache.
2332 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2333 ptr_freeres.
2334 * init.c (pthread_functions): Initialize ptr_freeres.
2335 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2336 New freeres function.
2337
376e973a
UD
23382006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2339
2340 [BZ #3018]
2341 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2342
2b34af01
UD
23432006-08-20 Ulrich Drepper <drepper@redhat.com>
2344
2345 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2346 _XOPEN_REALTIME_THREADS.
2347
89c85f87
UD
23482006-08-15 Jakub Jelinek <jakub@redhat.com>
2349
2350 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2351 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2352 HAVE_CLOCK_GETTIME_VSYSCALL.
2353 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2354
f17efcb4
UD
23552006-08-14 Jakub Jelinek <jakub@redhat.com>
2356
2357 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2358 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2359 * descr.h (struct priority_protection_data): New type.
2360 (struct pthread): Add tpp field.
2361 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2362 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2363 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2364 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2365 TPP mutexes.
2366 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2367 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2368 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2369 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2370 * tpp.c: New file.
2371 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2372 boosted by TPP.
2373 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2374 * pthread_mutexattr_getprioceiling.c
2375 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2376 in the SCHED_FIFO priority range.
2377 * pthread_mutexattr_setprioceiling.c
2378 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2379 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2380 if mutex is not TPP. Ceiling is now in __data.__lock.
2381 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2382 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2383 is now in __data.__lock. Add locking.
2384 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2385 * Makefile (libpthread-routines): Add tpp.
2386 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2387 * tst-tpp.h: New file.
2388 * tst-mutexpp1.c: New file.
2389 * tst-mutexpp6.c: New file.
2390 * tst-mutexpp10.c: New file.
2391 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2392 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2393
22bb134c
UD
23942006-08-12 Ulrich Drepper <drepper@redhat.com>
2395
2396 [BZ #2843]
2397 * pthread_join.c (pthread_join): Account for self being canceled
2398 when checking for deadlocks.
2399 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2400 (tf1): Don't print anything after pthread_join returns, this would be
2401 another cancellation point.
2402 (tf2): Likewise.
2403 * tst-join6.c: New file.
2404 * Makefile (tests): Add tst-join6.
2405
f1762c0c
UD
24062006-08-03 Ulrich Drepper <drepper@redhat.com>
2407
9c06eb66
UD
2408 [BZ #2892]
2409 * pthread_setspecific.c (__pthread_setspecific): Check
2410 out-of-range index before checking for unused key.
2411
f1762c0c
UD
2412 * sysdeps/pthread/gai_misc.h: New file.
2413
7bb1b2c9
UD
24142006-08-01 Ulrich Drepper <drepper@redhat.com>
2415
2416 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2417 file. Don't use sysctl.
2418 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2419 overwrite the file if this is likely not true.
2420
b06e7e9a
UD
24212006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2422
2423 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2424 * Makefile (tests): Add tst-getpid3.
2425 * tst-getpid3.c: New file.
2426
b894c2ea
RM
24272006-07-30 Roland McGrath <roland@redhat.com>
2428
2429 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2430
2431 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2432 (pause_not_cancel): New macro.
2433 (nanosleep_not_cancel): New macro.
2434 (sigsuspend_not_cancel): New macro.
2435 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2436 nanosleep_not_cancel macro from <not-cancel.h>.
2437 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2438 macro from <not-cancel.h>.
2439
df47504c
UD
24402006-07-28 Ulrich Drepper <drepper@redhat.com>
2441 Jakub Jelinek <jakub@redhat.com>
2442
2443 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2444 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2445 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2446 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2447 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2448 * pthread_mutex_lock.c: Likewise.
2449 * pthread_mutex_timedlock.c: Likewise.
2450 * pthread_mutex_trylock.c: Likewise.
2451 * pthread_mutex_unlock.c: Likewise.
2452 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2453 all mutexes.
2454 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2455 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2456 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2457 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2458 pthread-pi-defines.sym.
2459 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2460 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2461 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2462 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2463 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2464 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2465 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2466 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2467 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2468 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2469 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2470 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2471 * tst-mutex2.c: Likewise.
2472 * tst-mutex3.c: Likewise.
2473 * tst-mutex4.c: Likewise.
2474 * tst-mutex5.c: Likewise.
2475 * tst-mutex6.c: Likewise.
2476 * tst-mutex7.c: Likewise.
2477 * tst-mutex7a.c: Likewise.
2478 * tst-mutex8.c: Likewise.
2479 * tst-mutex9.c: Likewise.
2480 * tst-robust1.c: Likewise.
2481 * tst-robust7.c: Likewise.
2482 * tst-robust8.c: Likewise.
2483 * tst-mutexpi1.c: New file.
2484 * tst-mutexpi2.c: New file.
2485 * tst-mutexpi3.c: New file.
2486 * tst-mutexpi4.c: New file.
2487 * tst-mutexpi5.c: New file.
2488 * tst-mutexpi6.c: New file.
2489 * tst-mutexpi7.c: New file.
2490 * tst-mutexpi7a.c: New file.
2491 * tst-mutexpi8.c: New file.
2492 * tst-mutexpi9.c: New file.
2493 * tst-robust1.c: New file.
2494 * tst-robust2.c: New file.
2495 * tst-robust3.c: New file.
2496 * tst-robust4.c: New file.
2497 * tst-robust5.c: New file.
2498 * tst-robust6.c: New file.
2499 * tst-robust7.c: New file.
2500 * tst-robust8.c: New file.
2501 * Makefile (tests): Add the new tests.
2502
2503 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2504 * pthread_mutex_destroy.c: Remove unneeded label.
2505
f3be81a9
UD
25062006-07-01 Ulrich Drepper <drepper@redhat.com>
2507
2508 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2509 computations to compile time.
2510
c26ca5e1
UD
25112006-06-04 Ulrich Drepper <drepper@redhat.com>
2512
2513 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2514
6f8a7dff
UD
25152006-05-15 Ulrich Drepper <drepper@redhat.com>
2516
c26ca5e1 2517 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2518
3d237e42
UD
25192006-05-11 Ulrich Drepper <drepper@redhat.com>
2520
04974d63
UD
2521 * pthread_key_create.c (__pthread_key_create): Do away with
2522 __pthread_keys_lock.
2523
2524 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2525 (__kernel_cpumask_size): Mark as hidden.
2526 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2527
3d237e42
UD
2528 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2529 * semaphoreP.h (__sem_mappings_lock): Likewise.
2530
790fc6e4
UD
25312006-05-10 Ulrich Drepper <drepper@redhat.com>
2532
2533 * pthread_atfork.c: Mark __dso_handle as hidden.
2534
be434a72
UD
25352006-05-09 Ulrich Drepper <drepper@redhat.com>
2536
2537 [BZ #2644]
2538 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2539 the reload problem. Change the one path in pthread_cancel_init
2540 which causes the problem. Force gcc to reload. Simplify callers.
2541 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2542 (_Unwind_GetBSP): Undo last patch.
2543
3142b1ac
UD
25442006-05-07 Ulrich Drepper <drepper@redhat.com>
2545
bf3635d3
UD
2546 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2547 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2548
2549 [BZ #2644]
2550 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2551 pointers are reloaded after pthread_cancel_init calls.
2552
27488789
UD
25532006-05-01 Ulrich Drepper <drepper@redhat.com>
2554
2555 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2556 __always_inline.
2557
a6375d11
UD
25582006-04-27 Ulrich Drepper <drepper@redhat.com>
2559
2560 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2561 Allocate new object which is passed to timer_sigev_thread so that
2562 the timer can be deleted before the new thread is scheduled.
2563
16a1d952
RM
25642006-04-26 Roland McGrath <roland@redhat.com>
2565
2566 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2567
7960f2a7
UD
25682006-04-08 Ulrich Drepper <drepper@redhat.com>
2569
ab9a9ff8
UD
2570 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2571 suffix for conditional jumps.
2572 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2573 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2574 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2575 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2576 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2577 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2578
7960f2a7
UD
2579 * init.c (sigcancel_handler): Compare with correct PID even if the
2580 thread is in the middle of a fork call.
2581 (sighandler_setxid): Likewise.
2582 Reported by Suzuki K P <suzuki@in.ibm.com> .
2583
2035d91c
UD
25842006-04-07 Jakub Jelinek <jakub@redhat.com>
2585
2586 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2587
0292b0dd
UD
25882006-04-06 Ulrich Drepper <drepper@redhat.com>
2589
2590 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2591 fails [Coverity CID 105].
2592
6738b3c0
UD
25932006-04-05 Ulrich Drepper <drepper@redhat.com>
2594
2595 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2596
359157a5
RM
25972006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2598
2599 [BZ #2505]
2600 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2601 Define __lll_rel_instr using lwsync.
2602
cd277b2d
UD
26032006-03-27 Ulrich Drepper <drepper@redhat.com>
2604
2605 * allocatestack.c (allocate_stack): Always initialize robust_head.
2606 * descr.h: Define struct robust_list_head.
2607 (struct pthread): Use robust_list_head in robust mutex list definition.
2608 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2609 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2610 (__pthread_initialize_minimal_internal): Register robust_list with
2611 the kernel.
2612 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2613 Declare __set_robust_list_avail.
2614 * pthread_create.c (start_thread): Register robust_list of new thread.
2615 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2616 waiters.
2617 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2618 number of users, it's unreliable.
2619 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2620 set_robust_list syscall is available.
2621 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2622 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2623 Set robust_head.list_op_pending before trying to lock a robust mutex.
2624 * pthread_mutex_timedlock.c: Likewise.
2625 * pthread_mutex_trylock.c: Likewise.
2626 * pthread_mutex_unlock.c: Likewise for unlocking.
2627 * Makefile (tests): Add tst-robust8.
2628 * tst-robust8.c: New file.
2629
facac085
UD
26302006-03-08 Andreas Schwab <schwab@suse.de>
2631
2632 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2633 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2634
7ccbe1a1
RM
26352006-03-05 Roland McGrath <roland@redhat.com>
2636
2637 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2638 and $config_os doesn't match *linux*.
2639
043cee37
RM
26402006-03-05 David S. Miller <davem@sunset.davemloft.net>
2641
2642 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2643 Use __syscall_error.
2644 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2645 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2646 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2647 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2648 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2649 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2650
88bce79e
UD
26512006-03-02 Ulrich Drepper <drepper@redhat.com>
2652
2653 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2654
672ec465
UD
26552006-03-01 Ulrich Drepper <drepper@redhat.com>
2656
2657 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2658 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2659 mutex.
2660 (__lll_robust_timedlock_wait): Likewise.
2661 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2662 (__lll_robust_lock_wait): Likewise.
2663 (__lll_robust_timedlock_wait): Likewise.
2664 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2665 (__lll_robust_lock_wait): Likewise.
2666 (__lll_robust_timedlock_wait): Likewise.
2667
c4a4875d
RM
26682006-03-01 Jakub Jelinek <jakub@redhat.com>
2669
2670 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2671 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2672 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2673 lll_robust_mutex_unlock): Define.
2674 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2675
3192fd8e
RM
26762006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2677
2678 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2679 instead of <clone.S>.
2680
14d44b19
RM
26812006-02-27 Jakub Jelinek <jakub@redhat.com>
2682
2683 * Makefile (libpthread-routines): Add
2684 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2685 and pthread_mutex_[sg]etprioceiling.
2686 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2687 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2688 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2689 pthread_mutex_setprioceiling.
2690 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2691 PTHREAD_PRIO_PROTECT): New enum values.
2692 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2693 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2694 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2695 prototypes.
2696 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2697 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2698 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2699 Define.
2700 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2701 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2702 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2703 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2704 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2705 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2706 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2707 protocol mutexes.
2708 * pthread_mutex_getprioceiling.c: New file.
2709 * pthread_mutex_setprioceiling.c: New file.
2710 * pthread_mutexattr_getprioceiling.c: New file.
2711 * pthread_mutexattr_setprioceiling.c: New file.
2712 * pthread_mutexattr_getprotocol.c: New file.
2713 * pthread_mutexattr_setprotocol.c: New file.
2714
62f6b9b2
RM
27152006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2716
2717 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2718
e0a3ed4f
RM
27192006-02-27 Roland McGrath <roland@redhat.com>
2720
2721 * sysdeps/pthread/Subdirs: List nptl here too.
2722 * configure (libc_add_on_canonical): New variable.
2723
2724 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2725
2726 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2727 self to get main source tree's file.
2728 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2729 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2730 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2731 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2732 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2733 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2734 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2735 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2736 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2737 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2738 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2739 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2740 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2741
2742 * Makefile: Use $(sysdirs) in vpath directive.
2743
2744 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2745 (CPPFLAGS-timer_routines.c): Likewise.
2746
2747 * Makeconfig (includes): Variable removed.
2748
84cfa284
RM
27492006-02-26 Roland McGrath <roland@redhat.com>
2750
2751 * sysdeps/generic/pt-raise.c: Moved to ...
2752 * pt-raise.c: ... here.
2753 * sysdeps/generic/lowlevellock.h: Moved to ...
2754 * lowlevellock.h: ... here.
2755
c5132ca1
RM
27562006-02-23 Roland McGrath <roland@redhat.com>
2757
2758 * descr.h (struct pthread): Add final member `end_padding'.
2759 (PTHREAD_STRUCT_END_PADDING): Use it.
2760
27612006-02-20 Roland McGrath <roland@redhat.com>
2762
2763 * sysdeps/mips: Directory removed, saved in ports repository.
2764 * sysdeps/unix/sysv/linux/mips: Likewise.
2765
a93317a1
UD
27662006-02-18 Ulrich Drepper <drepper@redhat.com>
2767
2768 * tst-robust1.c: Add second mutex to check that the mutex list is
2769 handled correctly.
2770
f1740bc4
UD
27712006-02-17 Jakub Jelinek <jakub@redhat.com>
2772
2773 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2774 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2775 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2776 lll_robust_mutex_unlock): New macros.
2777 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2778 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2779 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2780 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2781 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2782
a7245bf5
UD
27832006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2784
2785 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2786 definitions.
2787 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2788
49bfc1fe
UD
27892006-02-17 Ulrich Drepper <drepper@redhat.com>
2790
2791 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2792 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2793 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2794 (lll_robust_mutex_unlock): Likewise.
2795
56e987ac
UD
27962006-02-13 Jakub Jelinek <jakub@redhat.com>
2797
2798 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2799 Set robust_list.__next rather than robust_list.
2800 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2801 (__pthread_list_t): New typedef.
2802 (pthread_mutex_t): Replace __next and __prev fields with __list.
2803 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2804 (__pthread_list_t): New typedef.
2805 (pthread_mutex_t): Replace __next and __prev fields with __list.
2806 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2807 (__pthread_list_t, __pthread_slist_t): New typedefs.
2808 (pthread_mutex_t): Replace __next and __prev fields with __list.
2809 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2810 (__pthread_list_t, __pthread_slist_t): New typedefs.
2811 (pthread_mutex_t): Replace __next and __prev fields with __list.
2812 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2813 (__pthread_list_t, __pthread_slist_t): New typedefs.
2814 (pthread_mutex_t): Replace __next and __prev fields with __list.
2815 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2816 (__pthread_slist_t): New typedef.
2817 (pthread_mutex_t): Replace __next field with __list.
2818
683040c3
UD
28192006-02-15 Ulrich Drepper <drepper@redhat.com>
2820
25bc77e6 2821 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2822 PTHREAD_MUTEX_OWNERDEAD.
2823 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2824 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2825 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2826 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2827 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2828 to PTHREAD_MUTEX_INCONSISTENT.
2829 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2830 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2831 * pthread_mutex_trylock.c: Likewise.
2832 * pthread_mutex_timedlock.c: Likewise.
2833 * pthread_mutex_unlock.c: Likewise.
2834 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2835 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2836 lowlevelrobustlock.sym.
2837 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2838 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2839 definitions.
2840 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2841 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2842 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2843 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2844 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2845
bbf209a4
UD
28462006-02-12 Ulrich Drepper <drepper@redhat.com>
2847
b007ce7c
UD
2848 * allocatestack.c (allocate_stack): Initialize robust_list.
2849 * init.c (__pthread_initialize_minimal_internal): Likewise.
2850 * descr.h (struct xid_command): Pretty printing.
2851 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2852 robust_list. Adjust macros.
2853 * pthread_create.c (start_thread): Adjust robust_list handling.
2854 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2855 but the owner for all robust mutex types.
2856 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2857 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2858 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2859 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2860
bbf209a4
UD
2861 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2862 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2863
b576fca1
UD
28642006-02-08 Jakub Jelinek <jakub@redhat.com>
2865
2866 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2867 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2868
a6df7387
UD
28692006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2870
2871 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2872 Return status.
2873 (lll_futex_timed_wait): Define.
2874
7c65e900
UD
28752006-01-19 Ulrich Drepper <drepper@redhat.com>
2876
2877 * tst-cancel4.c: Test ppoll.
2878
5f9f21e8
AJ
28792006-01-18 Andreas Jaeger <aj@suse.de>
2880
cf407dfb 2881 [BZ #2167]
5f9f21e8
AJ
2882 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2883 (pthread_mutex_t): Follow changes for other archs. Based on patch
2884 by Jim Gifford <patches@jg555.com>.
2885
251278c6
UD
28862006-01-13 Richard Henderson <rth@redhat.com>
2887
2888 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2889
de59a291
RM
28902006-01-10 Roland McGrath <roland@redhat.com>
2891
2892 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
2893 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2894 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2895 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2896 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2897 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2898 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2899 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2900 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 2901 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 2902
931786ee
RM
29032006-01-09 Roland McGrath <roland@redhat.com>
2904
5d42c8c3
RM
2905 * tst-initializers1-c89.c: New file.
2906 * tst-initializers1-c99.c: New file.
2907 * tst-initializers1-gnu89.c: New file.
2908 * tst-initializers1-gnu99.c: New file.
2909 * Makefile (tests): Add them.
2910 (CFLAGS-tst-initializers1-c89.c): New variable.
2911 (CFLAGS-tst-initializers1-c99.c): New variable.
2912 (CFLAGS-tst-initializers1-gnu89.c): New variable.
2913 (CFLAGS-tst-initializers1-gnu99.c): New variable.
2914
931786ee
RM
2915 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2916 Use __extension__ on anonymous union definition.
2917 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2918 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2919 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2920 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 2921 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 2922
8dd18431
RM
29232006-01-08 Jakub Jelinek <jakub@redhat.com>
2924
2925 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2926 Don't give the union a name because it changes the mangled name.
2927 Instead name the struct for __data.
2928 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
2929 Likewise.
2930 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
2931 Likewise.
2932
ae11e412
UD
29332006-01-09 Jakub Jelinek <jakub@redhat.com>
2934
2935 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
2936 stack bias to mc_ftp field.
2937
c6885aa1
UD
29382006-01-07 Ulrich Drepper <drepper@redhat.com>
2939
2940 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 2941 being too clever and reloading the futex value where it shouldn't.
c6885aa1 2942
ae4ad00a
UD
29432006-01-06 Ulrich Drepper <drepper@redhat.com>
2944
2945 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
2946 correct type.
2947
ced368f7
UD
29482006-01-06 Jakub Jelinek <jakub@redhat.com>
2949
2950 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
2951 Add cfi directives.
2952
d804f5df
UD
29532006-01-06 Ulrich Drepper <drepper@redhat.com>
2954
cbbbb188 2955 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
2956 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
2957 rename in tcbhead_t.
2958
d804f5df
UD
2959 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2960 Don't give the union a name because it changes the mangled name.
2961 Instead name the struct for __data.
2962 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2963 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2964 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2965 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2966 * pthread_create.c (start_thread): Adjust robust mutex free loop.
2967 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
2968
679d83ba
UD
29692006-01-05 Ulrich Drepper <drepper@redhat.com>
2970
2971 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2972 Return status.
2973 (lll_futex_timed_wait): Define.
2974 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2975 * sysdeps/pthread/aio_misc.h: New file.
2976
06dc5bf3
RM
29772006-01-03 Joseph S. Myers <joseph@codesourcery.com>
2978
2979 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
2980
9759bbf1
UD
29812006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
2982
2983 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2984 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
2985 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2986
db59b28b
UD
29872006-01-04 Ulrich Drepper <drepper@redhat.com>
2988
2989 * tst-cancel24.cc: Use C headers instead of C++ headers.
2990
b01fe5f7
UD
29912006-01-03 Jakub Jelinek <jakub@redhat.com>
2992
2993 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
2994 sparc-linux configured glibc.
2995 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
2996 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
2997 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
2998 atomic_compare_and_exchange_val_24_acq instead of
2999 atomic_compare_and_exchange_val_acq.
3000 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
3001 instead of atomic_exchange_rel.
3002 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
3003 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
3004 file.
3005 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
3006 file.
3007 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
3008 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
3009 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
3010 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
3011 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
3012 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3013 New file.
3014 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3015 New file.
3016 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
3017 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
3018 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
3019 file.
3020 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
3021 file.
3022 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
3023
35c2fd59
UD
30242006-01-03 Ulrich Drepper <drepper@redhat.com>
3025
3026 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
3027 mutex initializers.
3028
305bb37e
UD
30292006-01-02 Jakub Jelinek <jakub@redhat.com>
3030
3031 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
3032 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3033 THREAD_COPY_POINTER_GUARD): Define.
3034 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
3035 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
3036
cc792128
UD
30372006-01-01 Ulrich Drepper <drepper@redhat.com>
3038
3039 * version.c: Update copyright year.
3040
db0a00d3
UD
30412005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3042
3043 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
3044 .eh_frame section, use cfi_* directives.
3045 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
3046
b36205c4
UD
30472005-12-30 Ulrich Drepper <drepper@redhat.com>
3048
3049 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
3050 now.
3051
8b4f1598
UD
30522005-12-29 Ulrich Drepper <drepper@redhat.com>
3053
3054 * sysdeps/pthread/sigaction.c: Removed.
3055 * sigaction.c: New file.
3056 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
3057
fec5592d
UD
30582005-12-28 Ulrich Drepper <drepper@redhat.com>
3059
3060 * Makefile (tests): Add tst-signal7.
3061 * tst-signal7.c: New file.
3062
db169ed5
RM
30632005-12-27 Roland McGrath <roland@redhat.com>
3064
3065 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
3066 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
3067 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
3068 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3069 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3070 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3071 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3072 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3073 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3074 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3075 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3076
bfffffae
UD
30772005-12-27 Jakub Jelinek <jakub@redhat.com>
3078
3079 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
3080 and __prev field to pthread_mutex_t.
3081 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3082 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3083 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3084 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3085 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
3086 to pthread_mutex_t.
3087
1bcfb5a5
UD
30882005-12-26 Ulrich Drepper <drepper@redhat.com>
3089
3090 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
3091 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
3092 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
3093 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
3094 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
3095 and PTHREAD_MUTEXATTR_FLAG_BITS.
3096 * descr.h (struct pthread): Add robust_list field and define
3097 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
3098 * pthread_mutexattr_getrobust.c: New file.
3099 * pthread_mutexattr_setrobust.c: New file.
3100 * pthread_mutex_consistent.c: New file.
3101 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
3102 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3103 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
3104 Adjust pthread_mutex_t initializers.
3105 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
3106 field to pthread_mutex_t.
3107 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
3108 and __prev field to pthread_mutex_t.
3109 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
3110 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
3111 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
3112 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
3113 * pthread_mutexattr_gettype.c: Likewise.
3114 * pthread_mutexattr_setpshared.c: Likewise.
3115 * pthread_mutexattr_settype.c: Likewise.
3116 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
3117 Initialize mutex kind according to robust flag.
3118 * pthread_mutex_lock.c: Implement local robust mutex.
3119 * pthread_mutex_timedlock.c: Likewise.
3120 * pthread_mutex_trylock.c: Likewise.
3121 * pthread_mutex_unlock.c: Likewise.
3122 * pthread_create.c (start_thread): Mark robust mutexes which remained
3123 locked as dead.
3124 * tst-robust1.c: New file.
3125 * tst-robust2.c: New file.
3126 * tst-robust3.c: New file.
3127 * tst-robust4.c: New file.
3128 * tst-robust5.c: New file.
3129 * tst-robust6.c: New file.
3130 * tst-robust7.c: New file.
3131 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
3132 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3133 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
3134 tst-robust5, tst-robust6, and tst-robust7.
3135
3136 * tst-typesizes.c: New file.
3137 * Makefile (tests): Add tst-typesizes.
3138
3139 * tst-once3.c: More debug output.
3140
9333ed0d
UD
31412005-12-24 Ulrich Drepper <drepper@redhat.com>
3142
d4d138a4
UD
3143 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
3144 missing after last change.
3145
bfffffae 3146 * version.c: Update copyright year.
9333ed0d 3147
dcc73a8d
UD
31482005-12-23 Ulrich Drepper <drepper@redhat.com>
3149
3150 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
3151 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
3152 * pthread_mutex_trylock.c: Likewise.
3153 * pthread_mutex_timedlock.c: Likewise.
3154 * pthread_mutex_unlock.c: Likewise.
3155
879f3ca6
RM
31562005-12-22 Roland McGrath <roland@redhat.com>
3157
3158 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
3159 so that #include_next's search location is not reset to the -I..
3160 directory where <nptl/...> can be found.
3161
077a0da7
UD
31622005-12-22 Ulrich Drepper <drepper@redhat.com>
3163
3164 [BZ #1913]
3165 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3166 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
3167 * tst-cancel24.cc: New file.
3168 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 3169
8dea90aa
RM
31702005-12-21 Roland McGrath <roland@redhat.com>
3171
3172 * libc-cancellation.c: Use <> rather than "" #includes.
3173 * pt-cleanup.c: Likewise.
3174 * pthread_create.c: Likewise.
3175 * pthread_join.c: Likewise.
3176 * pthread_timedjoin.c: Likewise.
3177 * pthread_tryjoin.c: Likewise.
3178 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
3179 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3180 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3181 * unwind.c: Likewise.
3182
8da21f96
UD
31832005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3184
3185 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
3186 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
3187 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3188 THREAD_COPY_POINTER_GUARD): Define.
3189
00c2b3b9
UD
31902005-12-19 Jakub Jelinek <jakub@redhat.com>
3191
3192 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
3193 rather than one.
3194 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3195 THREAD_COPY_POINTER_GUARD): Define.
3196 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
3197 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
3198 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3199 THREAD_COPY_POINTER_GUARD): Define.
3200 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
3201 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
3202 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
3203 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
3204 Use PTR_DEMANGLE for B0 if defined.
3205
827b7087
UD
32062005-12-17 Ulrich Drepper <drepper@redhat.com>
3207
3208 * pthread_create.c (__pthread_create_2_1): Use
3209 THREAD_COPY_POINTER_GUARD if available.
3210 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
3211 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3212 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
3213 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
3214 * sysdeps/x86_64/tls.h: Likewise.
3215
2826ac7e
RM
32162005-12-15 Roland McGrath <roland@redhat.com>
3217
3218 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
3219
b6ab06ce
UD
32202005-12-13 Ulrich Drepper <drepper@redhat.com>
3221
3222 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
3223 sysdeps/generic.
3224 * errno-loc.c: New file.
3225
f0d1a3b5
RM
32262005-12-12 Roland McGrath <roland@redhat.com>
3227
3228 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
3229 adjustments before choosing stack size. Update minimum stack size
3230 calculation to match allocate_stack change.
3231
db13ddbc
UD
32322005-12-12 Ulrich Drepper <drepper@redhat.com>
3233
3234 * allocatestack.c (allocate_stack): Don't demand that there is an
3235 additional full page available on the stack beside guard, TLS, the
3236 minimum stack.
3237
088f460f
UD
32382005-11-24 Ulrich Drepper <drepper@redhat.com>
3239
3240 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3241 (__cleanup_fct_attribute): Use __regparm__ not regparm.
3242
3243 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
3244 compiling 32-bit code we must define __cleanup_fct_attribute.
3245
16feadf2
UD
3246005-11-24 Jakub Jelinek <jakub@redhat.com>
3247
3248 [BZ #1920]
3249 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
3250 __attribute__ instead of __attribute.
3251 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3252 (__cleanup_fct_attribute): Likewise.
3253
e6e493bb
UD
32542005-11-17 Jakub Jelinek <jakub@redhat.com>
3255
3256 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
3257 a write barrier before writing libgcc_s_getcfa.
3258
8e635611
UD
32592005-11-06 Ulrich Drepper <drepper@redhat.com>
3260
3261 * sysdeps/unix/sysv/linux/configure: Removed.
3262
ce33ee7c
UD
32632005-11-05 Ulrich Drepper <drepper@redhat.com>
3264
3265 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
3266 optional init_array/fini_array support.
3267
20d511e0
RM
32682005-10-24 Roland McGrath <roland@redhat.com>
3269
3270 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
3271 versioned_symbol use.
3272
fe60d146
RM
32732005-10-16 Roland McGrath <roland@redhat.com>
3274
3275 * init.c (__pthread_initialize_minimal_internal): Even when using a
3276 compile-time default stack size, apply the minimum that allocate_stack
3277 will require, and round up to page size.
3278
0faa1cf5
RM
32792005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
3280
3281 * Makefile ($(test-modules)): Remove static pattern rule.
3282
f9126cc2
UD
32832005-10-14 Jakub Jelinek <jakub@redhat.com>
3284 Ulrich Drepper <drepper@redhat.com>
3285
3286 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
3287 alignment in callback function.
3288 * Makefile: Add rules to build and run tst-align3.
3289 * tst-align3.c: New file.
3290
015a5d22
RM
32912005-10-03 Jakub Jelinek <jakub@redhat.com>
3292
3293 * allocatestack.c (setxid_signal_thread): Add
3294 INTERNAL_SYSCALL_DECL (err).
3295
b71ce910
UD
32962005-10-02 Jakub Jelinek <jakub@redhat.com>
3297
3298 * allocatestack.c (setxid_signal_thread): Need to use
3299 atomic_compare_and_exchange_bool_acq.
3300
dff9a7a1
UD
33012005-10-01 Ulrich Drepper <drepper@redhat.com>
3302 Jakub Jelinek <jakub@redhat.com>
3303
3304 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
3305 CANCEL_RESTMASK.
3306 (struct pthread): Move specific_used field to avoid padding.
3307 Add setxid_futex field.
3308 * init.c (sighandler_setxid): Reset setxid flag and release the
3309 setxid futex.
3310 * allocatestack.c (setxid_signal_thread): New function. Broken
3311 out of the bodies of the two loops in __nptl_setxid. For undetached
3312 threads check whether they are exiting and if yes, don't send a signal.
3313 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
3314 * pthread_create.c (start_thread): For undetached threads, check
3315 whether setxid bit is set. If yes, wait until signal has been
3316 processed.
3317
3318 * allocatestack.c (STACK_VARIABLES): Initialize them.
3319 * pthread_create.c (__pthread_create_2_1): Initialize pd.
3320
560b4709
UD
33212004-09-02 Jakub Jelinek <jakub@redhat.com>
3322
3323 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
3324 waiters, awake all waiters on the associated mutex.
3325
5eac4760
RM
33262005-09-22 Roland McGrath <roland@redhat.com>
3327
3328 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3329 ../sysdeps/x86_64/hp-timing.h).
3330
a3615024
UD
33312005-08-29 Jakub Jelinek <jakub@redhat.com>
3332
3333 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3334 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3335 (lll_futex_wake_unlock): Define.
3336 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3337 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3338 (lll_futex_wake_unlock): Define.
3339 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3340 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3341 (lll_futex_wake_unlock): Define.
3342 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3343 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3344 (lll_futex_wake_unlock): Define.
3345 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3346 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3347 (lll_futex_wake_unlock): Define.
3348 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3349 lll_futex_wake_unlock.
3350 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3351 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3352 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3353 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3354 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3355 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3356
bf017034
UD
33572005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3358
3359 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3360 Fix typo in register name.
3361
fd4af664
UD
33622005-08-23 Ulrich Drepper <drepper@redhat.com>
3363
8558d715
UD
3364 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3365 Use __sigfillset. Document that sigfillset does the right thing wrt
3366 to SIGSETXID.
fd4af664 3367
3fd1bc67
UD
33682005-07-11 Jakub Jelinek <jakub@redhat.com>
3369
44d75caf 3370 [BZ #1102]
3fd1bc67
UD
3371 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3372 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3373 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3374 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3375 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3376 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3377 in the structure.
3378 * Makefile (tests): Add tst-initializers1.
3379 (CFLAGS-tst-initializers1.c): Set.
3380 * tst-initializers1.c: New test.
3381
553185e2
UD
33822005-07-11 Jakub Jelinek <jakub@redhat.com>
3383
3384 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3385 Make sure __flags are located at offset 48 from the start of the
3386 structure.
3387
8df08cb2
RM
33882005-07-02 Roland McGrath <roland@redhat.com>
3389
3390 * Makeconfig: Comment fix.
3391
253eb3a0
UD
33922005-07-05 Jakub Jelinek <jakub@redhat.com>
3393
3394 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3395 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3396 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3397 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3398 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3399 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3400 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3401 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3402 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3403 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3404
bb6e8ca3
UD
34052005-06-25 Jakub Jelinek <jakub@redhat.com>
3406
3407 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3408 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3409 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3410 fields.
3411 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3412 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3413 field. Put in sysinfo field unconditionally.
3414 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3415 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3416 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3417 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3418 fields.
3419 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3420 * pthread_create.c (__pthread_create_2_1): Use
3421 THREAD_COPY_STACK_GUARD macro.
3422 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3423 tests.
3424 * tst-stackguard1.c: New file.
3425 * tst-stackguard1-static.c: New file.
3426
99c7f870
UD
34272005-06-14 Alan Modra <amodra@bigpond.net.au>
3428
3429 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3430 Invoke CGOTSETUP and CGOTRESTORE.
3431 (CGOTSETUP, CGOTRESTORE): Define.
3432
8074c5c5
RM
34332005-05-29 Richard Henderson <rth@redhat.com>
3434
3435 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3436 (tf_write, tf_writev): Use it.
3437 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3438 the system minimum.
3439
c179df4e
UD
34402005-05-23 Jakub Jelinek <jakub@redhat.com>
3441
3442 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3443 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3444 __librt_*_asynccancel@local.
3445
b0e196a4
UD
34462005-05-17 Alan Modra <amodra@bigpond.net.au>
3447
3448 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3449 all occurrences of JUMPTARGET. Instead append @local to labels.
3450
f7d78e18
UD
34512005-05-20 Jakub Jelinek <jakub@redhat.com>
3452
3453 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3454 size/alignment of struct pthread rather than tcbhead_t.
3455 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3456 Likewise.
3457 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3458 Likewise.
3459 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3460 Likewise.
3461
363dd976
UD
34622005-05-19 Richard Henderson <rth@redhat.com>
3463
3464 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3465 __sync_val_compare_and_swap, not explicit _si variant.
3466 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3467
1ad9da69
UD
34682005-05-03 Ulrich Drepper <drepper@redhat.com>
3469
3470 [BZ #915]
3471 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3472
5085cd1f
UD
34732005-05-03 Jakub Jelinek <jakub@redhat.com>
3474
3475 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3476 .eh_frame section, use cfi_* directives.
3477
ad529081
UD
34782005-04-27 Jakub Jelinek <jakub@redhat.com>
3479
3480 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3481 of "" includes.
3482
dea99685
UD
34832005-04-27 Ulrich Drepper <drepper@redhat.com>
3484
c06aad09 3485 [BZ #1075]
dea99685
UD
3486 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3487 aio_write blocks.
3488
84060bad
RM
34892005-04-27 Roland McGrath <roland@redhat.com>
3490
5e2d8ac8
RM
3491 * Makefile (tests): Remove tst-clock2.
3492
84060bad
RM
3493 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3494 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3495 translating to the kernel clockid_t for our own process/thread clock.
3496
3497 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3498
4a035b9d
RM
34992005-04-15 Jakub Jelinek <jakub@redhat.com>
3500
3501 * old_pthread_cond_init.c: Include <errno.h>.
3502 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3503 process shared or uses clock other than CLOCK_REALTIME.
3504 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3505
edac0e8f
UD
35062005-04-13 David S. Miller <davem@davemloft.net>
3507
3508 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3509 * sysdeps/sparc/sparc64/clone.S: New file.
3510
613d8d52
RM
35112005-04-05 Jakub Jelinek <jakub@redhat.com>
3512
44d75caf 3513 [BZ #1102]
613d8d52
RM
3514 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3515 __inline instead of inline.
3516 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3517
ee618985
UD
35182005-03-31 Jakub Jelinek <jakub@redhat.com>
3519
3520 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3521 functionally equivalent, but shorter instructions.
3522 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3523 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3524 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3525 Likewise.
3526 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3527 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3528 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3529 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3530 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3531 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3532 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3533 Likewise.
3534 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3535 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3536 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3537 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3538 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3539
f850220b
AJ
35402005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3541
3542 * sysdeps/mips/Makefile: New file.
3543 * sysdeps/mips/nptl-sysdep.S: New file.
3544 * sysdeps/mips/tcb-offsets.sym: New file.
3545 * sysdeps/mips/pthread_spin_lock.S: New file.
3546 * sysdeps/mips/pthread_spin_trylock.S: New file.
3547 * sysdeps/mips/pthreaddef.h: New file.
3548 * sysdeps/mips/tls.h: New file.
3549 * sysdeps/mips/jmpbuf-unwind.h: New file.
3550 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3551 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3552 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3553 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3554 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3555 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3556 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3557 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3558 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3559 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3560
1e6da2b0
UD
35612005-03-23 Ulrich Drepper <drepper@redhat.com>
3562
c06aad09 3563 [BZ #1112]
1e6da2b0
UD
3564 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3565 variable to scerr.
3566
5233d576
RM
35672005-03-10 Jakub Jelinek <jakub@redhat.com>
3568
3569 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3570
3053ff11
RM
35712005-02-25 Roland McGrath <roland@redhat.com>
3572
3573 * alloca_cutoff.c: Correct license text.
3574 * tst-unload.c: Likewise.
3575 * sysdeps/pthread/allocalim.h: Likewise.
3576 * sysdeps/pthread/pt-initfini.c: Likewise.
3577 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3578 * sysdeps/pthread/bits/sigthread.h: Likewise.
3579 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3580 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3581
9cfe5381
RM
35822005-02-16 Roland McGrath <roland@redhat.com>
3583
3584 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3585 Use unsigned int * for ptr_nthreads.
3586
7de00121
RM
35872005-02-14 Alan Modra <amodra@bigpond.net.au>
3588
20d511e0 3589 [BZ #721]
7de00121
RM
3590 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3591 gcc4.
3592
4bae262d
UD
35932005-02-07 Richard Henderson <rth@redhat.com>
3594
613d8d52 3595 [BZ #787]
4bae262d
UD
3596 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3597 argument.
3598
75df54b7
RM
35992004-11-03 Marcus Brinkmann <marcus@gnu.org>
3600
3601 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3602 order of arguments in invocation of atomic_add_zero.
3603
ea9c93cc
UD
36042005-01-26 Jakub Jelinek <jakub@redhat.com>
3605
9cfe5381 3606 [BZ #737]
ea9c93cc
UD
3607 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3608 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3609 at least gotntpoff relocation and addition.
3610 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3611 Likewise.
3612 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3613 Likewise.
3614 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3615 Likewise.
3616
9dcafc55
UD
36172005-01-06 Ulrich Drepper <drepper@redhat.com>
3618
3619 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3620 entry for static tls deallocation fix.
3621 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3622 also contains information whether the memory pointed to is static
3623 TLS or not.
3624 * sysdeps/i386/tls.h: Likewise.
3625 * sysdeps/ia64/tls.h: Likewise.
3626 * sysdeps/powerpc/tls.h: Likewise.
3627 * sysdeps/s390/tls.h: Likewise.
3628 * sysdeps/sh/tls.h: Likewise.
3629 * sysdeps/sparc/tls.h: Likewise.
3630 * sysdeps/x86_64/tls.h: Likewise.
3631
a71c152c
UD
36322004-12-27 Ulrich Drepper <drepper@redhat.com>
3633
3634 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3635
d143c49e
UD
36362004-12-21 Jakub Jelinek <jakub@redhat.com>
3637
3638 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3639 %esp.
3640 * Makefile (tests): Add tst-align2.
3641 * tst-align2.c: New test.
3642 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3643 -mpreferred-stack-boundary=4.
3644
50130ded
RM
36452004-12-18 Roland McGrath <roland@redhat.com>
3646
3647 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3648 New file removed withdrawn for the moment.
3649
cbc53df0
RH
36502004-12-17 Richard Henderson <rth@redhat.com>
3651
3652 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3653 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3654
fb9d5c73
UD
36552004-12-16 Ulrich Drepper <drepper@redhat.com>
3656
03332aa6
UD
3657 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3658 Increased PTHREAD_STACK_MIN.
3659
fb9d5c73
UD
3660 * tst-context1.c (stacks): Use bigger stack size.
3661
e853ea00
UD
36622004-12-16 Jakub Jelinek <jakub@redhat.com>
3663
3664 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3665 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3666
f23673fc
UD
36672004-12-15 Jakub Jelinek <jakub@redhat.com>
3668
3669 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3670 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3671 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3672
917fbe70
UD
36732004-12-15 Ulrich Drepper <drepper@redhat.com>
3674
3675 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3676
1f9d7c27
UD
36772004-12-14 Ulrich Drepper <drepper@redhat.com>
3678
3679 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3680 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3681
3682 * tst-getpid1.c: If child crashes, report this first. Print which
3683 signal.
3684
bf7c04cd
UD
36852004-12-09 Ulrich Drepper <drepper@redhat.com>
3686
3687 * init.c (__pthread_initialize_minimal_internal): Also unblock
3688 SIGSETXID.
3689
36902004-12-01 Jakub Jelinek <jakub@redhat.com>
3691
3692 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3693 _POSIX_THREAD_CPUTIME): Define to 0.
3694 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3695 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3696 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3697 __timer_signal_thread_tclk): Remove.
3698 (init_module): Remove their initialization.
3699 (thread_cleanup): Remove their cleanup assertions.
3700 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3701 __timer_signal_thread_tclk): Remove.
3702 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3703 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3704 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3705
484cc801
UD
37062004-12-07 Jakub Jelinek <jakub@redhat.com>
3707
3708 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3709 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3710
3711 * Makefile (tests): Add tst-getpid2.
3712 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3713 (do_test): Use it. Use __clone2 instead of clone on ia64.
3714 * tst-getpid2.c: New test.
3715
2da9a6a1
UD
37162004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3717
3718 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3719
1ff241b8
UD
37202004-12-04 Ulrich Drepper <drepper@redhat.com>
3721
3722 * Makefile (tests): Add tst-getpid1.
3723 * tst-getpid1.c: New file.
3724 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3725 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3726
3f488b9c
RM
37272004-12-02 Roland McGrath <roland@redhat.com>
3728
3729 * Makefile (libpthread-nonshared): Variable removed.
3730 ($(objpfx)libpthread_nonshared.a): Target removed.
3731 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3732 These are now handled by generic magic from
3733 libpthread-static-only-routines being set.
3734
597ce09c
UD
37352004-11-27 Ulrich Drepper <drepper@redhat.com>
3736
3737 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3738 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3739 _POSIX_THREAD_PRIO_PROTECT): Define.
3740 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3741 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3742 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3743
60e4523a
UD
37442004-11-26 Jakub Jelinek <jakub@redhat.com>
3745
3746 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3747 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3748 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3749 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
3750 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3751 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3752 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3753
f1f2cafc
UD
37542004-11-24 Ulrich Drepper <drepper@redhat.com>
3755
bca2d208
UD
3756 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3757
f1f2cafc
UD
3758 * Makefile (libpthread-routines): Add pthread_setschedprio.
3759 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3760 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3761 * pthread_setschedprio.c: New file.
3762
b639d0c9
UD
37632004-11-20 Jakub Jelinek <jakub@redhat.com>
3764
ef2bb413
UD
3765 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3766 * pthread_cancel.c (pthread_create): Likewise.
3767
b639d0c9
UD
3768 * Makefile (libpthread-routines): Add vars.
3769 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3770 * init.c (__default_stacksize, __is_smp): Remove.
3771 * vars.c: New file.
3772 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3773 and define a wrapper macro.
3774 (PTHREAD_STATIC_FN_REQUIRE): Define.
3775 * allocatestack.c (__find_thread_by_id): Undefine.
3776 * pthread_create (__pthread_keys): Remove.
3777 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3778 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3779 PTHREAD_STATIC_FN_REQUIRE.
3780
3defcff3
UD
37812004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3782
3783 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3784 parameter to REGISTER macro.
3785
ec188f92
RM
37862004-11-17 Roland McGrath <roland@redhat.com>
3787
3788 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3789 Make sure SIGCANCEL is blocked as well.
3790
ccd8de9a
UD
37912004-11-10 Jakub Jelinek <jakub@redhat.com>
3792
3793 * sysdeps/pthread/setxid.h: New file.
3794 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3795 (struct xid_command): Add forward decl.
3796 (struct pthread_functions): Change return type of __nptl_setxid hook
3797 to int.
3798 * pthreadP.h (__nptl_setxid): Change return type to int.
3799 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3800 calling thread, return its return value and set errno on failure.
3801 * descr.h (struct xid_command): Change id type to long array.
3802
3803 * Makefile: Add rules to build and test tst-setuid1 and
3804 tst-setuid1-static.
3805 * tst-setuid1.c: New test.
3806 * tst-setuid1-static.c: New test.
3807
ed2ced8a
UD
38082004-11-10 Jakub Jelinek <jakub@redhat.com>
3809
3810 * Makefile (tests): Add tst-exit3.
3811 * tst-exit3.c: New test.
3812
948603ee
UD
38132004-11-09 Ulrich Drepper <drepper@redhat.com>
3814
3815 * Makefile (tests): Add tst-exit2.
3816 * tst-exit2.c: New file.
3817
ba5ffd2a
RM
38182004-11-09 Roland McGrath <roland@redhat.com>
3819
3820 [BZ #530]
3821 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3822 here, before calling clone.
3823 * pthread_create.c (start_thread): Don't do it here.
3824
c4d7bd39
RM
38252004-11-02 Jakub Jelinek <jakub@redhat.com>
3826
3827 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3828
543fb0c8
UD
38292004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3830
3831 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3832 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3833 assembler warning.
3834
a1fbd858
UD
38352004-10-28 Jakub Jelinek <jakub@redhat.com>
3836
3837 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3838 if sched_priority is not between minprio and maxprio.
3839
c2a4357a
UD
38402004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3841
3842 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3843 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3844
3845 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3846 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3847
78d8d211
UD
38482004-10-24 Ulrich Drepper <drepper@redhat.com>
3849
3850 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3851 not-cancelable I/O functions.
3852
dd28590f
UD
38532004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3854
3855 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3856 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3857 make sure 2 is stored in the futex and we looked at the old value.
3858 Fix a few other problems to return the correct value.
3859
f8c97af7
RH
38602004-10-14 Richard Henderson <rth@redhat.com>
3861
3862 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3863 make gcc4 happy.
3864
3feb8efa
UD
38652004-10-06 Jakub Jelinek <jakub@redhat.com>
3866
3867 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3868 of pthread-functions.h and pthreaddef.h.
3869 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3870
3871 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3872 Change __data.__nwaiters from int to unsigned int.
3873
3874 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3875 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3876
3877 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3878 before return type.
3879
3880 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3881 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3882
67060ef5
UD
38832004-10-06 Ulrich Drepper <drepper@redhat.com>
3884
3885 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3886 test fails, remove message queue.
3887 (tf_msgsnd): Likewise.
3888
f38a3086
UD
38892004-10-05 Jakub Jelinek <jakub@redhat.com>
3890
3891 * tst-clock1.c: Change #ifdef to #if defined.
3892 * tst-clock2.c: Likewise.
3893 * tst-cond11.c: Likewise.
3894
2c03b6db
UD
3895 * sysdeps/pthread/timer_create.c (timer_create): Use
3896 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
3897 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
3898 THREAD_CPUTIME.
3899
6ab5f50d
UD
39002004-10-05 Jakub Jelinek <jakub@redhat.com>
3901
3902 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
3903 _POSIX_THREAD_CPUTIME): Define to 0.
3904
e4bb4853
UD
39052004-10-04 Ulrich Drepper <drepper@redhat.com>
3906
3907 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
3908 and _POSIX_THREAD_CPUTIME to zero.
3909 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3910 * tst-barrier2.c: Fix testing for POSIX feature.
3911 * tst-clock1.c: Likewise.
3912 * tst-clock2.c: Likewise.
3913 * tst-cond11.c: Likewise.
3914 * tst-cond4.c: Likewise.
3915 * tst-cond6.c: Likewise.
3916 * tst-flock2.c: Likewise.
3917 * tst-mutex4.c: Likewise.
3918 * tst-mutex9.c: Likewise.
3919 * tst-rwlock12.c: Likewise.
3920 * tst-rwlock4.c: Likewise.
3921 * tst-signal1.c: Likewise.
3922 * tst-spin2.c: Likewise.
3923 * sysdeps/pthread/posix-timer.h: Likewise.
3924 * sysdeps/pthread/timer_create.c: Likewise.
3925 * sysdeps/pthread/timer_routines.c: Likewise.
3926
c1b48791
UD
39272004-10-01 Ulrich Drepper <drepper@redhat.com>
3928
927f0673
UD
3929 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3930 (__lll_mutex_timedlock_wait): Address futex correctly.
3931
c1b48791 3932 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 3933 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
3934 make sure 2 is stored in the futex and we looked at the old value.
3935 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3936 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
3937 which might very well made the code not working at all before.
7b87aca6 3938 [BZ #417]
c1b48791 3939
e9f4e844
UD
39402004-09-28 Ulrich Drepper <drepper@redhat.com>
3941
4f21c95d
UD
3942 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
3943 allow SIGSETXID to be sent.
3944 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
3945 for SIGSETXID to be defined.
3946 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
3947 SIGSETXID cannot be blocked.
3948
e9f4e844
UD
3949 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3950 Add __extension__ to long long types.
3951 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3952 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3953 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3954 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3955 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
3956 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3957 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3958
5f66b766
UD
39592004-09-25 Ulrich Drepper <drepper@redhat.com>
3960
3961 * descr.h (struct pthread): Add stopped_start field.
3962 * sysdeps/pthread/createthread.c (create_thread): Set
3963 start_stopped flag in descriptor for new thread appropriately.
3964 * pthread_create.c (start_thread): Only take lock to be stopped on
3965 startup if stopped_start flag says so.
3966
362038b0
UD
39672004-09-24 Ulrich Drepper <drepper@redhat.com>
3968
3f80a99b
UD
3969 * pthread_create.c (__pthread_create_2_1): Remember whether thread
3970 is created detached and if yes, do not try to free the stack in case
3971 the thread creation failed.
3972 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
3973 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
3974 case there has been no error. [BZ #405]
3975
362038b0
UD
3976 * pthread_create.c (start_thread): Don't wait for scheduler data
3977 etc to be set at the beginning of the function. The cancellation
3978 infrastructure must have been set up. And enable async
3979 cancellation before potentially going to sleep. [BZ #401]
3980
65f0beb9
UD
39812004-09-20 Ulrich Drepper <drepper@redhat.com>
3982
3c12b91a 3983 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
3984 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
3985 for now.
3986 * Makefile: Don't build pthread_set*id code for now.
3987
2edb61e3
UD
39882004-09-19 Ulrich Drepper <drepper@redhat.com>
3989
3990 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
3991 internal use.
3992 * allocatestack.c (__nptl_setxid): New function.
3993 * descr.h (struct xid_command): Define type.
3994 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
3995 (sighandler_setxid): New function.
3996 (__pthread_initialize_minimal): Register sighandler_setxid for
3997 SIGCANCEL.
3998 * pt-allocrtsig.c: Update comment.
3999 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
4000 Declare __nptl_setxid.
4001 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
4002 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
4003 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4004 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4005 and pthread_setresuid_np.
4006 * pthread_setgid_np.c: New file.
4007 * pthread_setuid_np.c: New file.
4008 * pthread_setegid_np.c: New file.
4009 * pthread_seteuid_np.c: New file.
4010 * pthread_setregid_np.c: New file.
4011 * pthread_setreuid_np.c: New file.
4012 * pthread_setresgid_np.c: New file.
4013 * pthread_setresuid_np.c: New file.
4014 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
4015 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4016 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4017 and pthread_setresuid_np.
4018 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
4019 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
4020 pthread_setregid, and pthread_setresgid.
4021
1ab1fa6f
UD
40222004-09-18 Ulrich Drepper <drepper@redhat.com>
4023
4024 * allocatestack.c (allocate_stack): Return EAGAIN instead of
4025 ENOMEM when out of memory.
4026
ae9e6b36
RM
40272004-09-10 Roland McGrath <roland@redhat.com>
4028
4029 [BZ #379]
4030 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
4031 code, since we don't try to use the broken CLONE_STOPPED any more.
4032 * pthread_create.c (start_thread): Likewise.
4033
424bd2f8
RH
40342004-09-15 Richard Henderson <rth@redhat.com>
4035
4036 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
4037
17b8a52d
UD
40382004-09-01 David Mosberger <davidm@hpl.hp.com>
4039
4040 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
4041 (__libc_unwind_longjmp): Delete macro and declare as function.
4042 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
4043 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
4044 nptl directory.
4045 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
4046 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
4047 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
4048
ccc63b07
UD
40492004-09-12 Ulrich Drepper <drepper@redhat.com>
4050
4051 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
4052 for __USE_XOPEN2K.
4053 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
4054 types also for __USE_XOPEN2K.
4055 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4056 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4057 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4058 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4059 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4060 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4061 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4062 [BZ #320]
4063
31f93b3b
UD
40642004-09-08 Ulrich Drepper <drepper@redhat.com>
4065
4066 * sysdeps/pthread/pthread.h
4067 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
4068 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
4069 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
4070 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
4071 [BZ #375]
4072
e0329987
UD
40732004-09-07 Ulrich Drepper <drepper@redhat.com>
4074
590b40f7
UD
4075 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
4076 PSEUDO to be used with . prefix.
4077
67254a97
UD
4078 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
4079 Use atomic_increment instead of atomic_exchange_and_add.
4080 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
4081 Likewise.
4082 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4083 Likewise.
4084 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
4085 Likewise.
4086
4087 * allocatestack.c (allocate_stack): Use atomic_increment_val
4088 instead of atomic_exchange_and_add.
4089 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
4090 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
4091 Likewise.
4092 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4093 Likewise.
4094
e0329987
UD
4095 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
4096 the initialization function might throw.
4097
42d86dd6 40982005-09-05 Richard Henderson <rth@redhat.com>
e0329987 4099
42d86dd6
RH
4100 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4101 Move definition inside libpthread, libc, librt check. Provide
4102 definition for rtld.
4103
73f7c32c
UD
41042004-09-02 Ulrich Drepper <drepper@redhat.com>
4105
f76c8499
UD
4106 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
4107 * sysdeps/i386/jmpbuf-unwind.h: Likewise
4108 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
4109 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
4110 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
4111 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
4112 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
4113 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
4114 * unwind.c: Use it.
4115
73f7c32c
UD
4116 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4117 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
4118 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4119 Likewise.
4120 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4121 Decrement __nwaiters. If pthread_cond_destroy has been called and
4122 this is the last waiter, signal pthread_cond_destroy caller and
4123 avoid using the pthread_cond_t structure after unlock.
4124 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4125 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4126 Read clock type from the least significant bits of __nwaiters instead
4127 of __clock.
4128 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4129 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
4130
41312004-08-31 Jakub Jelinek <jakub@redhat.com>
4132
4133 [BZ #342]
4134 * Makefile (tests): Add tst-cond20 and tst-cond21.
4135 * tst-cond20.c: New test.
4136 * tst-cond21.c: New test.
4137 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4138 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
4139 it unsigned int.
4140 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4141 Likewise.
4142 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4143 (pthread_cond_t): Likewise.
4144 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4145 Likewise.
4146 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4147 Likewise.
4148 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4149 Likewise.
4150 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
4151 (cond_nwaiters): New.
4152 (clock_bits): New.
4153 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
4154 if there are waiters not signalled yet.
4155 Wait until all already signalled waiters wake up.
4156 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
4157 __nwaiters. If pthread_cond_destroy has been called and this is the
4158 last waiter, signal pthread_cond_destroy caller and avoid using
4159 the pthread_cond_t structure after unlock.
4160 (__pthread_cond_wait): Increment __nwaiters in the beginning,
4161 decrement it when leaving. If pthread_cond_destroy has been called
4162 and this is the last waiter, signal pthread_cond_destroy caller.
4163 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4164 Likewise. Read clock type from the least significant bits of
4165 __nwaiters instead of __clock.
4166 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
4167 whether clock ID can be encoded in COND_CLOCK_BITS bits.
4168 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
4169 clock type just from the last COND_CLOCK_BITS bits of value.
4170 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
4171 instead of __clock, just from second bit of condattr's value.
4172
409f7493
UD
41732004-08-30 Jakub Jelinek <jakub@redhat.com>
4174
4175 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
4176 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
4177 != 64.
4178 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4179
92c6ccd1
RM
41802004-08-15 Roland McGrath <roland@frob.com>
4181
4182 * pthread_atfork.c: Update copyright terms including special exception
4183 for these trivial files, which are statically linked into executables
4184 that use dynamic linking for the significant library code.
4185
4d004cfb
UD
41862004-08-09 Jakub Jelinek <jakub@redhat.com>
4187
4188 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
4189 pthread_rwlock_rdlock.
4190 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
4191 Decrease __nr_readers_queued after reacquiring lock.
4192 * sysdeps/pthread/pthread_rwlock_timedrdlock
4193 (pthread_rwlock_timedrdlock): Likewise.
4194 Reported by Bob Cook <bobcook47@hotmail.com>.
4195
90595fb6
RM
41962004-08-11 Jakub Jelinek <jakub@redhat.com>
4197
4198 * tst-rwlock14.c (tf): Read main thread handle from *ARG
4199 before pthread_barrier_wait.
4200
fa46f7ab
UD
42012004-08-07 Ulrich Drepper <drepper@redhat.com>
4202
4203 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4204 Remove unnecessary exception handling data.
4205
15ef4b55
UD
42062004-07-23 Jakub Jelinek <jakub@redhat.com>
4207
4208 [BZ #284]
4209 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
4210 instead of clockid_t.
4211
4fb907b7
RM
42122004-07-21 Roland McGrath <roland@redhat.com>
4213
4214 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
4215
42162004-07-19 Roland McGrath <roland@redhat.com>
4217
4218 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
4219
8f73811b
RM
42202004-07-02 Roland McGrath <roland@redhat.com>
4221
4222 * configure: Don't exit.
4223
290639c3
UD
42242004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4225
4226 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4227 (__pthread_cond_timedwait): Check for invalid nanosecond in
4228 timeout value.
4229
8e5aaad9
UD
42302004-07-07 Ulrich Drepper <drepper@redhat.com>
4231
4232 * Makefile: Add rules to build and run tst-fini1.
4233 * tst-fini1.c: New file.
4234 * tst-fini1mod.c: New file.
4235
ce6e047f
UD
42362004-07-05 Ulrich Drepper <drepper@redhat.com>
4237
4238 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
4239 if no cancellation support is needed.
4240 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4241 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4242 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4243 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4244 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4245 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4246 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4247 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4248 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4249
4250 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
4251 only if not already defined.
4252
9b9ef823
UD
42532004-07-05 Jakub Jelinek <jakub@redhat.com>
4254
2dd18ce2
UD
4255 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
4256 constraint "m" instead of "0" for futex.
4257
9b9ef823
UD
4258 * shlib-versions: Add powerpc64-.*-linux.*.
4259
38205402
UD
42602004-07-04 Jakub Jelinek <jakub@redhat.com>
4261
4262 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
4263 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
4264 for valid tv_nsec.
4265 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
4266 1 billion and 64-bit tv_nsec which is valid when truncated to 32
4267 bits.
4268
78a9c837
RM
42692004-06-29 Roland McGrath <roland@redhat.com>
4270
4271 * Banner: NPTL no longer has its own version number.
4272 * Makefile (nptl-version): Variable removed.
4273 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
4274 using $(version), the glibc version number.
4275
d3d35527
UD
42762004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4277
4278 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4279 Fix branch offset for a PLT entry.
4280 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
4281 Likewise.
4282 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4283 Likewise.
4284 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
4285 Likewise.
4286 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
4287 Likewise.
4288
346f18ae
UD
42892004-06-28 Jakub Jelinek <jakub@redhat.com>
4290
4291 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
4292 unconditionally.
4293
f3a19754
UD
42942004-06-28 Jakub Jelinek <jakub@redhat.com>
4295
4296 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4297 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
4298 instead of tv_sec.
4299 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
4300 (pthread_rwlock_timedrdlock): Likewise.
4301
539842a4
UD
43022004-06-22 Jakub Jelinek <jakub@redhat.com>
4303
4304 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4305 Set __r7 to val, not mutex.
4306
46f4c578
UD
43072004-06-27 Ulrich Drepper <drepper@redhat.com>
4308
4309 * Makefile: Add rules to build tst-rwlock14.
4310 * tst-rwlock14.c: New file.
4311
43122004-06-24 Boris Hu <boris.hu@intel.com>
4313
4314 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
4315 check.
4316 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4317
9898e99c
AJ
43182004-06-19 Andreas Jaeger <aj@suse.de>
4319
4320 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
4321 assembler in last patch.
4322
7c3164bc
UD
43232004-06-17 Ulrich Drepper <drepper@redhat.com>
4324
4325 * sysdeps/pthread/pthread_cond_timedwait.c
4326 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4327 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4328 (__pthread_cond_timedwait): Check for invalid nanosecond in
4329 timeout value.
4330 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4331 * tst-cond19.c: New file.
4332 * Makefile: Add rules to build and run tst-cond19.
4333
72e61500
UD
43342004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4335
4336 * tst-context1.c (GUARD_PATTERN): Defined.
4337 (tst_context_t): Define struct containing ucontext_t & guard words.
4338 (ctx): Declare as an array of tst_context_t.
4339 (fct): Verify uc_link & guard words are still valid.
4340 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4341
7c370086
UD
43422004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4343
4344 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4345 Add __data.__futex field, reshuffle __data.__clock.
4346 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4347 (__pthread_cond_signal): Increment __futex at the same time as
4348 __wakeup_seq or __total_seq. Pass address of __futex instead of
4349 address of low 32-bits of __wakeup_seq to futex syscall.
4350 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4351 (__pthread_cond_wait): Likewise. Pass __futex value from before
4352 releasing internal lock to FUTEX_WAIT.
4353 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4354 (__pthread_cond_timedwait): Likewise.
4355 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4356 (FUTEX_CMP_REQUEUE): Define.
4357 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4358 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4359 Pass __futex value from before the unlock and __futex address instead
4360 of address of low 32-bits of __wakeup_seq to futex syscall.
4361 Fallback to FUTEX_WAKE all on any errors.
4362
a9e526e7
RM
43632004-06-08 Jakub Jelinek <jakub@redhat.com>
4364
4365 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4366 comment typo.
4367 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4368 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4369 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4370 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4371 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4372
f1847a84
RM
43732004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4374
4375 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4376 Add memory clobber to inline assembly.
4377 (__lll_mutex_trylock): Likewise.
4378 (__lll_mutex_cond_trylock): Likewise.
4379
f7c81e1a
UD
43802004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4381
4382 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4383 Pass val argument as 6th system call argument in %r7.
4384
75fccede
UD
43852004-05-21 Jakub Jelinek <jakub@redhat.com>
4386
4387 * Makefile (tests): Add tst-cond16.
4388 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4389 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4390 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4391 Add __data.__futex field, reshuffle __data.__clock.
4392 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
4393 (__pthread_cond_signal): Increment __futex at the same time as
4394 __wakeup_seq or __total_seq. Pass address of __futex instead of
4395 address of low 32-bits of __wakeup_seq to futex syscall.
4396 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
4397 (__pthread_cond_wait): Likewise. Pass __futex value from before
4398 releasing internal lock to FUTEX_WAIT.
4399 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
4400 (__pthread_cond_timedwait): Likewise.
4401 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
4402 (FUTEX_CMP_REQUEUE): Define.
4403 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4404 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4405 Pass __futex value from before the unlock and __futex address instead
4406 of address of low 32-bits of __wakeup_seq to futex syscall.
4407 Fallback to FUTEX_WAKE all on any errors.
4408 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4409 Define.
4410 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4411 internally. Return non-zero if error, zero if success.
4412 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4413 Add __data.__futex field, reshuffle __data.__clock.
4414 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4415 Define.
4416 (lll_futex_requeue): Add val argument, return 1 unconditionally
4417 for the time being.
4418 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4419 Add __data.__futex field, reshuffle __data.__clock.
4420 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4421 Define.
4422 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4423 internally. Return non-zero if error, zero if success.
4424 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4425 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4426 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4427 Define.
4428 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4429 internally. Return non-zero if error, zero if success.
4430 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4431 Add __data.__futex field, reshuffle __data.__clock.
4432 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4433 Define.
4434 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4435 internally. Return non-zero if error, zero if success.
4436 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4437 Add __data.__futex field, reshuffle __data.__clock.
4438 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4439 Add __data.__futex field, reshuffle __data.__clock.
4440 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4441 Increment __futex at the same time as __wakeup_seq or __total_seq.
4442 Pass address of __futex instead of address of low 32-bits of
4443 __wakeup_seq to futex syscall.
4444 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4445 Pass __futex value from before releasing internal lock
4446 to FUTEX_WAIT.
4447 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4448 Likewise. Avoid unnecessary shadowing of variables.
4449 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4450 Set __futex to 2 * __total_seq. Pass __futex value from before the
4451 unlock and __futex address instead of address of low 32-bits of
4452 __wakeup_seq to futex_requeue macro, adjust for new return value
4453 meaning.
4454 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4455 (__pthread_cond_signal): Increment __futex at the same time as
4456 __wakeup_seq or __total_seq. Pass address of __futex instead of
4457 address of low 32-bits of __wakeup_seq to futex syscall.
4458 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4459 (__pthread_cond_wait): Likewise. Pass __futex value from before
4460 releasing internal lock to FUTEX_WAIT.
4461 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4462 (__pthread_cond_timedwait): Likewise.
4463 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4464 (FUTEX_CMP_REQUEUE): Define.
4465 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4466 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4467 Pass __futex value from before the unlock and __futex address instead
4468 of address of low 32-bits of __wakeup_seq to futex syscall.
4469 Fallback to FUTEX_WAKE all on any errors.
4470
44712004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4472
4473 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4474 Add nop to align the end of critical section.
4475 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4476
fbf86dda
UD
44772004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4478
4479 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4480 Add __broadcast_seq field.
4481 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4482 all waiters as woken with woken_seq and bump broadcast counter.
4483 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4484 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4485 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4486 Comment typo fixes. Avoid returning -ETIMEDOUT.
4487
44882004-06-01 Ulrich Drepper <drepper@redhat.com>
4489
4490 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4491 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4492 Reported by Kaz Kojima.
4493
ffdd5e50
UD
44942004-05-25 Jakub Jelinek <jakub@redhat.com>
4495
4496 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4497
3abc82c8
UD
44982004-05-21 Jakub Jelinek <jakub@redhat.com>
4499
4500 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4501 __broadcast_seq with bc_seq after acquiring internal lock instead of
4502 before it.
4503
893a3511
UD
45042004-05-18 Jakub Jelinek <jakub@redhat.com>
4505
4506 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4507 compilation.
4508 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4509 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4510 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4511 (pthread_cond_t): Add __data.__broadcast_seq field.
4512 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4513 (FRAME_SIZE): Define.
4514 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4515 Comment typo fixes.
4516 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4517 Define.
4518 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4519 typo fixes.
4520 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4521 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4522 fixes.
4523
45242004-05-18 Ulrich Drepper <drepper@redhat.com>
4525
4526 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4527 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4528 Add __broadcast_seq field.
4529 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4530 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4531 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4532 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4533 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4534 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4535 all waiters as woken with woken_seq and bump broadcast counter.
4536 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4537 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4538 __broadcast_seq field.
4539 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4540 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4541 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4542 * pthread_cond_init.c: Initialize __broadcast_seq field.
4543 * Makefile (tests): Add tst-cond17 and tst-cond18.
4544 Add .NOTPARALLEL goal.
4545 * tst-cond16.c: New file. From Jakub.
4546 * tst-cond17.c: New file. From Jakub.
4547 * tst-cond18.c: New file. From Jakub.
4548
4123718e
UD
45492004-05-16 Ulrich Drepper <drepper@redhat.com>
4550
4551 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4552 unwind info.
4553
4554 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4555 Parametrize frame size. Correct some unwind info.
4556 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4557
2d7ae210
UD
45582004-05-04 Jakub Jelinek <jakub@redhat.com>
4559
4560 * tst-stack3.c: Note testing functionality beyond POSIX.
4561
50c2b6d7
UD
45622004-05-04 Jakub Jelinek <jakub@redhat.com>
4563
4564 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4565 Change conditional from ifdef to if.
4566
27b02589
UD
45672004-04-23 Jakub Jelinek <jakub@redhat.com>
4568
4569 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4570 SYSDEP_CANCEL_ERROR): Define.
4571 (PSEUDO): Use it.
4572
4bb8fc33
UD
45732004-05-01 Jakub Jelinek <jakub@redhat.com>
4574
4575 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4576
f9a06dc1
UD
45772004-04-20 Jakub Jelinek <jakub@redhat.com>
4578
4579 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4580
d3b52028
UD
45812004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4582
4583 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4584 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4585 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4586 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4587
a5dd0a6c
UD
45882004-04-19 Ulrich Drepper <drepper@redhat.com>
4589
4590 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4591 thread has all signals blocked.
4592
620c3354
AJ
45932004-04-18 Andreas Jaeger <aj@suse.de>
4594
4595 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4596 (SEM_VALUE_MAX): Add missing brace.
4597
1683daeb
UD
45982004-04-17 Jakub Jelinek <jakub@redhat.com>
4599
4600 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4601 in rt subdir.
4602 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4603 * sysdeps/pthread/tst-mqueue8x.c: New test.
4604 * tst-cancel4.c: Update comment about message queues.
4605
4606 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4607 return it_value { 0, 0 }.
4608 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4609 like SIGEV_SIGNAL.
4610 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4611 assertion for SIGEV_NONE.
4612 (thread_attr_compare): Compare all attributes, not just a partial
4613 subset.
4614
46152004-04-17 Jakub Jelinek <jakub@redhat.com>
4616
4617 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4618
f532641d
UD
46192004-04-17 Ulrich Drepper <drepper@redhat.com>
4620
4621 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4622 Just use a plain number.
4623 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4624 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4625 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4626 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4627 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4628 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4629 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4630
7eb7fdda
UD
46312004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4632
53392906
UD
4633 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4634 frame info.
4635 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4636
d7ba1313
UD
46372004-04-15 Jakub Jelinek <jakub@redhat.com>
4638
4639 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4640 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4641 of calling sigwaitinfo.
4642
5adac0e4
UD
46432004-04-16 Ulrich Drepper <drepper@redhat.com>
4644
4645 * allocatestack.c (allocate_stack): Set reported_guardsize
4646 unconditionally.
4647 * pthread_getattr_np.c (pthread_getattr_np): Use
4648 reported_guardsize instead of guardsize.
4649 * descr.h (struct pthread): Add reported_guardsize field.
4650
f93fa7d4
UD
46512004-04-13 Jakub Jelinek <jakub@redhat.com>
4652
4653 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4654
1b82c6c7
UD
46552004-04-12 Ulrich Drepper <drepper@redhat.com>
4656
4657 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4658
46592004-04-08 Jakub Jelinek <jakub@redhat.com>
4660
4661 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4662 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4663 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4664 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4665 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4666 Define.
4667 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4668 (_POSIX_MESSAGE_PASSING): Define.
4669 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4670 (_POSIX_MESSAGE_PASSING): Define.
4671 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4672 (_POSIX_MESSAGE_PASSING): Define.
4673
e6eb894e
UD
46742004-04-04 Ulrich Drepper <drepper@redhat.com>
4675
4676 * tst-context1.c (fct): Check whether correct stack is used.
4677
1e084487
UD
46782004-04-03 Ulrich Drepper <drepper@redhat.com>
4679
4e73e115
UD
4680 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4681 matching constraints for asm mem parameters.
4682
1e084487
UD
4683 * tst-clock2.c (tf): Don't define unless needed.
4684
feca5e0b
UD
46852004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4686
4687 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4688 $(gnulib).
4689
3fa21fd8
UD
46902004-03-30 Ulrich Drepper <drepper@redhat.com>
4691
4692 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4693 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4694 * pthreadP.h: Declare __nptl_deallocate_tsd.
4695 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4696 Adjust caller.
4697
4698 * Makefile (tests): Add tst-tsd5.
4699 * tst-tsd5.c: New file.
4700
8e32efa6
UD
47012004-03-29 Ulrich Drepper <drepper@redhat.com>
4702
4703 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4704 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4705 is SHLIB_COMPAT check.
4706 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4707 (__pthread_attr_getaffinity_old): Likewise.
4708 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4709 (__pthread_getaffinity_old): Likewise.
4710 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4711 (__pthread_setaffinity_old): Likewise.
4712
eec8b6ca
UD
47132004-03-26 Ulrich Drepper <drepper@redhat.com>
4714
4715 * allocatestack.c (_make_stacks_executable): Call
4716 _dl_make_stack_executable first.
4717
db2f05ba
RM
47182004-03-24 Roland McGrath <roland@redhat.com>
4719
4720 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4721 constraint instead of "0".
4722
6abbc501
UD
47232004-03-24 Ulrich Drepper <drepper@redhat.com>
4724
68dc4dcb
UD
4725 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4726 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4727
6abbc501
UD
4728 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4729 code to avoid warning.
4730
865e14d9
AJ
47312004-03-24 Andreas Jaeger <aj@suse.de>
4732
4733 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4734 (__pthread_attr_setaffinity_old): Remove const.
4735
16b06b70
UD
47362004-03-23 Ulrich Drepper <drepper@redhat.com>
4737
2c0b891a
UD
4738 * sysdeps/unix/sysv/linux/smp.h: New file.
4739 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4740 * init.c: Define __is_smp.
4741 (__pthread_initialize_minimal_internal): Call is_smp_system to
4742 initialize __is_smp.
4743 * pthreadP.h: Declare __is_smp.
4744 Define MAX_ADAPTIVE_COUNT is necessary.
4745 * pthread_mutex_init.c: Add comment regarding __spins field.
4746 * pthread_mutex_lock.c: Implement adaptive mutex type.
4747 * pthread_mutex_timedlock.c: Likewise.
4748 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4749 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4750 Add __spins field.
4751 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4752 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4753 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4754 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4755 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4756 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4757 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4758 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4759 lll_mutex_cond_trylock.
4760 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4761 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4762 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4763 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4764 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4765 Define BUSY_WAIT_NOP.
4766 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4767 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4768
4769 * tst-mutex5.c: Add support for testing adaptive mutexes.
4770 * tst-mutex7.c: Likewise.
4771 * tst-mutex5a.c: New file.
4772 * tst-mutex7a.c: New file.
4773 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4774
565699e4
UD
4775 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4776 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4777 vgettimeofday call might destroy the content.
565699e4 4778
7fe1586f
UD
4779 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4780 @pause in the loop.
4781
e408880b
UD
4782 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4783 No need to restrict type of ret. Make it int. Add comment.
4784
16b06b70
UD
4785 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4786 Remove unnecessary setne instruction.
4787
61645263
UD
47882004-03-22 Jakub Jelinek <jakub@redhat.com>
4789
4790 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4791 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4792 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4793 If realloc fails, break out of the loop.
4794
e3d4c585
AJ
47952004-03-20 Andreas Jaeger <aj@suse.de>
4796
4797 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4798 (__pthread_setaffinity_old): Fix interface.
4799 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4800 (__pthread_getaffinity_old): Likewise.
4801
4802 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4803 (__pthread_setaffinity_new): Remove duplicate declaration.
4804
3abb1ff7
UD
48052004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4806
4807 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4808 the return value to a safe register.
4809 (CDISABLE): Set the function argument correctly.
4810
07bd2a3f
UD
48112004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4812
4813 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4814 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4815 Rewrite so that only one locked memory operation per round is needed.
4816 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4817 (pthread_barrier_wait): After wakeup, release lock only when the
4818 last thread stopped using the barrier object.
4819 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4820 (__pthread_cond_wait): Don't store mutex address if the current
4821 value is ~0l. Add correct cleanup support and unwind info.
4822 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4823 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4824 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4825 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4826 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4827 Add correct cleanup support and unwind info.
4828 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4829 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4830 information for syscall wrappers.
4831
14c35863
UD
48322004-03-18 Ulrich Drepper <drepper@redhat.com>
4833
4834 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4835 cpusetsize field, remove next.
4836 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4837 parameter for size of the CPU set.
4838 (pthread_setaffinity_np): Likewise.
4839 (pthread_attr_getaffinity_np): Likewise.
4840 (pthread_attr_setaffinity_np): Likewise.
4841 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4842 interface change, keep compatibility code.
4843 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4844 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4845 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4846 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4847 __pthread_getaffinity_np.
4848 * Versions: Add version for changed interfaces.
4849 * tst-attr3.c: Adjust test for interface change.
4850 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4851 increasing buffer sizes.
4852 * pthread_attr_destroy.c: Remove unused list handling.
4853 * pthread_attr_init.c: Likewise.
4854
8e115d80
RM
48552004-03-17 Roland McGrath <roland@redhat.com>
4856
4857 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4858 first argument to clock_getres so we ever enable kernel timers.
4859
e3b22ad3
UD
48602004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4861
4862 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4863
841153fa
RH
48642004-03-12 Richard Henderson <rth@redhat.com>
4865
e3b22ad3
UD
4866 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4867 oldvalue from CENABLE to CDISABLE.
841153fa 4868
932dfea7
UD
48692004-03-12 Ulrich Drepper <drepper@redhat.com>
4870
4871 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4872 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4873 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4874 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4875
9852f6dc
RH
48762004-03-11 Richard Henderson <rth@redhat.com>
4877
4878 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4879 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4880 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4881
43513fb7
UD
48822004-03-11 Jakub Jelinek <jakub@redhat.com>
4883
4884 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4885 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4886 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4887
48882004-03-11 Jakub Jelinek <jakub@redhat.com>
4889
4890 * forward.c (__pthread_cond_broadcast_2_0,
4891 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
4892 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
4893 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
4894
8a3e10e0
UD
48952004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4896
4897 * sysdeps/sh/tcb-offsets.sym: Add PID.
4898 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
4899 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
4900
6d3a2bec
UD
49012004-03-10 Ulrich Drepper <drepper@redhat.com>
4902
4903 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
4904 include <sysdep-cancel.h>, vfork is no cancellation point.
4905 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
4906 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
4907 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
4908
d3a4a571
UD
49092004-03-10 Jakub Jelinek <jakub@redhat.com>
4910
73b4ce64
UD
4911 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
4912 libc_hidden_def.
4913 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
4914 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
4915 Likewise.
4916 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
4917 Likewise.
4918 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
4919 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
4920 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
4921 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
4922 of DO_CALL_VIA_BREAK. Work around a gas problem.
4923
d682a515
UD
4924 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
4925 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
4926 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
4927 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
4928 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
4929 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
4930
4931 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
4932 a local register for saving old PID. Negate PID in parent upon exit.
4933
d3a4a571
UD
4934 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
4935 tcb-offsets.h.
4936 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4937 before syscall, set to the old value in the parent afterwards.
4938 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
4939 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
4940 tcb-offsets.h.
4941 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4942 before syscall, set to the old value in the parent afterwards.
4943 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
4944 * sysdeps/s390/tcb-offsets.sym: Add PID.
4945
4946 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
4947 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
4948 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
4949 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
4950 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
4951 * sysdeps/sparc/tcb-offsets.sym: Add PID.
4952
49532004-03-10 Andreas Schwab <schwab@suse.de>
4954
4955 * sysdeps/ia64/tcb-offsets.sym: Add PID.
4956 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
4957 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
4958
3f2fb223 49592004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 4960
3f2fb223
UD
4961 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
4962 * tst-cancel21.c (do_one_test): Likewise.
4963 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 4964
8b9d6054
UD
49652004-02-09 Jakub Jelinek <jakub@redhat.com>
4966
4967 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
4968 if non-zero and set to INT_MIN if zero.
4969 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
4970 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
4971 (SAVE_PID, RESTORE_PID): Define.
4972 (__vfork): Use it.
4973 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
4974 Use relative path to avoid including NPTL i386/vfork.S.
4975 (SAVE_PID, RESTORE_PID): Define.
4976 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
4977 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
4978 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
4979 tst-vfork2x.
4980 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
4981 * tst-vfork1.c: New test.
4982 * tst-vfork2.c: New test.
4983 * tst-vfork1x.c: New test.
4984 * tst-vfork2x.c: New test.
4985
02287d05
UD
49862004-03-08 Ulrich Drepper <drepper@redhat.com>
4987
c072ef6d 4988 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 4989 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 4990 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 4991 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 4992
d4acd24b
UD
49932004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
4994
4995 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
4996
8acb4b81
UD
49972004-03-08 H.J. Lu <hongjiu.lu@intel.com>
4998
4999 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
5000 _rtld_global_ro.
5001
4d1a02ef
UD
50022004-03-07 Ulrich Drepper <drepper@redhat.com>
5003
001836c8 5004 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 5005 _rtld_global_ro.
001836c8 5006
4d1a02ef
UD
5007 * tst-once4.c: Remove unnecessary macro definition.
5008
5009 * tst-mutex7.c (do_test): Limit thread stack size.
5010 * tst-once2.c (do_test): Likewise.
5011 * tst-tls3.c (do_test): Likewise.
5012 * tst-tls1.c (do_test): Likewise.
5013 * tst-signal3.c (do_test): Likewise.
5014 * tst-kill6.c (do_test): Likewise.
5015 * tst-key4.c (do_test): Likewise.
5016 * tst-join4.c (do_test): Likewise.
5017 * tst-fork1.c (do_test): Likewise.
5018 * tst-context1.c (do_test): Likewise.
5019 * tst-cond2.c (do_test): Likewise.
5020 * tst-cond10.c (do_test): Likewise.
5021 * tst-clock2.c (do_test): Likewise.
5022 * tst-cancel10.c (do_test): Likewise.
5023 * tst-basic2.c (do_test): Likewise.
5024 * tst-barrier4.c (do_test): Likewise.
5025
aa420660
UD
50262004-03-05 Ulrich Drepper <drepper@redhat.com>
5027
5028 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
5029
cff08c81
UD
50302004-03-01 Ulrich Drepper <drepper@redhat.com>
5031
5032 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5033 (__pthread_cond_timedwait): Optimize wakeup test.
5034 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5035 (__pthread_cond_wait): Likewise.
5036 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5037 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5038 Likewise.
5039
b7fe377c
UD
50402004-02-29 Ulrich Drepper <drepper@redhat.com>
5041
5042 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5043 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
5044 the atomic instruction needed.
5045 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5046 (__lll_mutex_lock_wait): Likewise.
5047
4c771a3b
UD
50482004-02-28 Ulrich Drepper <drepper@redhat.com>
5049
5050 * Makefile (tests): Add tst-cond14 and tst-cond15.
5051 * tst-cond14.c: New file.
5052 * tst-cond15.c: New file.
5053
a2c33d5a
UD
50542004-02-27 Ulrich Drepper <drepper@redhat.com>
5055
5056 * sysdeps/pthread/createthread.c (create_thread): Remove use of
5057 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
5058 needs to be implemented differently to be useful.
5059
261eada2
UD
50602004-02-26 Ulrich Drepper <drepper@redhat.com>
5061
14ffbc83
UD
5062 * pthread_attr_setschedparam.c: Don't test priority against limits
5063 here. Set ATTR_FLAG_SCHED_SET flag.
5064 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
5065 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
5066 from parent thread to child. If attribute is used and scheduling
5067 parameters are not inherited, copy parameters from attribute or
5068 compute them. Check priority value.
5069 * pthread_getschedparam.c: If the parameters aren't known yet get
5070 them from the kernel.
5071 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
5072 ATTR_FLAG_POLICY_SET flag for thread.
5073 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
5074 and ATTR_FLAG_POLICY_SET.
5075
5076 * sysdeps/pthread/createthread.c: Use tgkill if possible.
5077
261eada2
UD
5078 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
5079 fail if stack address hasn't been set. Just return 0.
5080
701d185c
UD
50812004-02-25 Ulrich Drepper <drepper@redhat.com>
5082
25b8e63c
UD
5083 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
5084 libpthread for the files in this list.
5085 (CFLAGS-tst-unload): Removed.
5086 * tst-unload.c (do_test): Don't use complete path for
5087 LIBPHREAD_SO.
5088
701d185c
UD
5089 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
5090 tst-_res1mod2.
5091
a8fd5a02
UD
50922004-02-22 Ulrich Drepper <drepper@redhat.com>
5093
5094 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5095 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
5096 operation per round is needed.
5097 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5098 (__lll_mutex_lock_wait): Likewise.
5099
dd0b7b19
UD
51002004-02-20 Ulrich Drepper <drepper@redhat.com>
5101
5102 * tst-cancel9.c (cleanup): Don't print to stderr.
5103
5990e1fe
UD
51042004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5105
5106 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
5107
33ab3b66
UD
51082004-02-20 Jakub Jelinek <jakub@redhat.com>
5109
1be3130e
UD
5110 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
5111 (__syscall_error_handler2): Call CDISABLE.
5112 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
5113 (__syscall_error_handler2): Call CDISABLE.
5114
8ba5025a
UD
5115 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5116 Release lock before the loop, don't reacquire it.
8ba5025a 5117
33ab3b66
UD
5118 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
5119
11986c68
UD
51202004-02-19 Andreas Schwab <schwab@suse.de>
5121
5122 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5123 Fix last change.
5124
dc391246
UD
51252004-02-18 Ulrich Drepper <drepper@redhat.com>
5126
37c054c7
UD
5127 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5128 (pthread_barrier_wait): After wakeup, release lock only when the
5129 last thread stopped using the barrier object.
5130 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
5131 (pthread_barrier_wait): Likewise.
5132 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5133 Likewise.
5134 * Makefile (tests): Add tst-barrier4.
5135 * tst-barrier4.c: New file.
dc391246
UD
5136
5137 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5138 (__pthread_cond_timedwait): Perform timeout test while holding
5139 internal lock to prevent wakeup race.
5140 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5141 * sysdeps/pthread/pthread_cond_timedwait.c
5142 (__pthread_cond_timedwait): Likewise.
5143 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5144 (__pthread_cond_timedwait): Likewise.
5145
4a08113c
UD
51462004-02-18 Jakub Jelinek <jakub@redhat.com>
5147
5148 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
5149 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
5150 * Makefile (tests): Add tst-rwlock13.
5151 * tst-rwlock13.c: New test.
5152
71b1675e
UD
51532004-02-16 Ulrich Drepper <drepper@redhat.com>
5154
5155 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5156 (__condvar_tw_cleanup): Little optimization.
5157 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5158
cd9fdc72
UD
51592004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
5160
5161 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
5162 libpthread as "lib" parameter to SHLIB_COMPAT.
5163 (__novmx_siglongjmp): Fix typo in function name.
5164 (__novmx_longjmp): Fix typo in function name.
5165
82038750
UD
51662004-02-13 Ulrich Drepper <drepper@redhat.com>
5167
b078c591
UD
5168 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
5169 __builtin_expect.
5170
82038750
UD
5171 * sysdeps/generic/pt-longjmp.c: Moved to...
5172 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
5173
e2982bf0
UD
51742004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
5175
5176 * Makefile (libpthread-routines): Add pt-cleanup.
5177 * pt-longjmp.c: Removed.
5178 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
5179 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
5180 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
5181 Version longjmp, siglongjmp for GLIBC_2.3.4.
5182 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
5183
3730d95c
UD
51842004-02-13 Ulrich Drepper <drepper@redhat.com>
5185
219304ec
UD
5186 * sysdeps/pthread/pthread_cond_timedwait.c
5187 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
5188 Reuse code. Add __builtin_expects.
5189
3730d95c
UD
5190 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5191 (__pthread_cond_timedwait): Get internal lock in case timeout has
5192 passed before the futex syscall.
5193 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5194
5673ccc1
UD
51952004-01-20 Ulrich Drepper <drepper@redhat.com>
5196
debddf64
UD
5197 * allocatestack.c: Pretty printing.
5198
5673ccc1
UD
5199 * sysdeps/pthread/createthread.c (create_thread): Don't add
5200 CLONE_DETACHED bit if it is not necessary.
5201
6bae8725
UD
52022004-01-16 Ulrich Drepper <drepper@redhat.com>
5203
5204 * pthread_getattr_np.c: Include ldsodefs.h.
5205
ff151400
RH
52062004-01-16 Richard Henderson <rth@redhat.com>
5207
6bae8725
UD
5208 * allocatestack.c: Don't declare __libc_stack_end.
5209 * init.c (__pthread_initialize_minimal_internal): Likewise.
5210 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 5211
ba683832
RH
52122004-01-15 Richard Henderson <rth@redhat.com>
5213
5214 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
5215 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
5216 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
5217 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
5218 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
5219 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
5220 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
5221 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
5222
630d93a7
UD
52232004-01-14 Ulrich Drepper <drepper@redhat.com>
5224
219304ec 5225 * init.c (pthread_functions): Make array const.
630d93a7 5226
d1fc817e
UD
52272004-01-13 Ulrich Drepper <drepper@redhat.com>
5228
5229 * allocatestack.c (__make_stacks_executable): Change interface.
5230 Check parameters. Pass parameter on to libc counterpart.
5231 * pthreadP.h: Change declaration.
5232
dc927809
RH
52332004-01-13 Richard Henderson <rth@redhat.com>
5234
10677727
UD
5235 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
5236 prototype form.
5237 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
5238 Likewise.
5239
d1fc817e
UD
5240 * sysdeps/alpha/Makefile: New file.
5241 * sysdeps/alpha/tcb-offsets.sym: New file.
5242 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
5243 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 5244
d1fc817e
UD
5245 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
5246 on powerpc version.
dc927809 5247
249a3d0c
UD
52482004-01-08 Jakub Jelinek <jakub@redhat.com>
5249
5250 * Makefile (tests): Add tst-backtrace1.
5251 * tst-backtrace1.c: New test.
5252
763c0490
RM
52532003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
5254
5255 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
5256 register as second parameter to the REGISTER macro.
5257 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
5258 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
5259 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
5260 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
5261 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
5262 of thread register as second parameter to REGISTER macro in 64 case.
5263
c7baafd5
UD
52642004-01-03 Ulrich Drepper <drepper@redhat.com>
5265
5266 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
5267 (CFLAGS-getpid.o): Defined.
5268 (CFLAGS-getpid.os): Defined.
5269
25ac0258
UD
52702003-12-31 Ulrich Drepper <drepper@redhat.com>
5271
5272 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
5273 returned for main thread does not overlap with any other VMA.
5274 Patch by Jakub Jelinek.
5275
795985e4
UD
52762003-12-29 Jakub Jelinek <jakub@redhat.com>
5277
5278 * tst-raise1.c: Include stdio.h.
5279
cb5b9388
UD
52802003-12-23 Jakub Jelinek <jakub@redhat.com>
5281
5282 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
5283 setting with __ASSUME_TGKILL || defined __NR_tgkill.
5284 If pid is 0, set it to selftid.
5285 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
5286 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
5287 != 0, return self->tid without doing a syscall.
5288 * descr.h (struct pthread): Move pid field after tid.
5289
5290 * Makefile (tests): Add tst-raise1.
5291 * tst-raise1.c: New file.
5292
432aaf5b
RM
52932003-12-23 Roland McGrath <roland@redhat.com>
5294
5295 * tst-oddstacklimit.c: New file.
5296 * Makefile (tests): Add it.
5297 (tst-oddstacklimit-ENV): New variable.
5298
5299 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
5300 value up to page size for __default_stacksize.
5301
33ebea17
UD
53022003-12-21 Ulrich Drepper <drepper@redhat.com>
5303
5304 * Makefile (tests): Add tst-eintr5.
5305 * tst-eintr5.c: New file.
5306
5307 * eintr.c (eintr_source): Prevent sending signal to self.
5308
5309 * tst-eintr2.c (tf1): Improve error message.
5310
bbe35eb5
UD
53112003-12-20 Ulrich Drepper <drepper@redhat.com>
5312
5313 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
5314 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
5315 * pthread_cancel.c: Add comment explaining use of PID field.
5316 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5317 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
5318 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
5319 temporarily to signal the field must not be relied on and updated
5320 by getpid().
5321 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
5322 temporarily negative.
5323 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 5324
4efdd8d3
UD
53252003-12-19 Ulrich Drepper <drepper@redhat.com>
5326
5327 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5328 (eintr_source): If ARG != NULL, use pthread_kill.
5329 * tst-eintr1.c: Adjust for this change.
5330 * tst-eintr2.c: Likewise.
5331 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5332 * tst-eintr3.c: New file.
5333 * tst-eintr4.c: New file.
5334
53352003-12-19 Jakub Jelinek <jakub@redhat.com>
5336
5337 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5338 if CANCELSTATE_BITMASK is set.
5339 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5340 Likewise.
5341
5342 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5343 (tests-reverse): Add tst-cancel23.
5344 * tst-cancel22.c: New test.
5345 * tst-cancel23.c: New test.
5346
675620f7
UD
53472003-12-18 Ulrich Drepper <drepper@redhat.com>
5348
5349 * tst-eintr1.c: Better error messages.
5350
5351 * Makefile (tests): Add tst-eintr2.
5352 * tst-eintr2.c: New file.
5353
53542003-12-18 Jakub Jelinek <jakub@redhat.com>
5355
5356 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5357 (CFLAGS-tst-cancelx21.c): Set.
5358 * tst-cancel21.c: New test.
5359 * tst-cancelx21.c: New test.
5360
5361 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5362 comparison operand.
5363 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5364 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5365 * pt-longjmp.c: Include jmpbuf-unwind.h.
5366 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5367 _JMPBUF_UNWINDS. Adjust compared pointers.
5368 * init.c (__pthread_initialize_minimal_internal): Initialize
5369 pd->stackblock_size.
5370 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5371 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5372 * sysdeps/i386/jmpbuf-unwind.h: New file.
5373 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5374 * sysdeps/s390/jmpbuf-unwind.h: New file.
5375 * sysdeps/sh/jmpbuf-unwind.h: New file.
5376 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5377 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5378 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5379 (_JMPBUF_CFA_UNWINDS): Remove.
5380 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5381
53822003-12-12 Jakub Jelinek <jakub@redhat.com>
5383
5384 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5385 (CFLAGS-tst-cancelx20.c): Set.
5386 * tst-cancel20.c: New test.
5387 * tst-cancelx20.c: New test.
5388
2d951ab6
UD
53892003-12-17 Ulrich Drepper <drepper@redhat.com>
5390
5391 * init.c (__pthread_initialize_minimal_internal): Don't treat
5392 architectures with separate register stack special here when
5393 computing default stack size.
5394
f8a3a2e7
RM
53952003-12-17 Roland McGrath <roland@redhat.com>
5396
5397 * Makefile (tst-cancelx7-ARGS): New variable.
5398 Reportd by Greg Schafer <gschafer@zip.com.au>.
5399
e796f92f
UD
54002003-12-17 Jakub Jelinek <jakub@redhat.com>
5401
5402 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5403 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5404 (tst-stack3-ENV): Set.
5405 ($(objpfx)tst-stack3-mem): New.
5406 * tst-stack3.c: New test.
5407
092eb73c
UD
54082003-12-10 David Mosberger <davidm@hpl.hp.com>
5409
5410 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5411 Add unwind directives. Drop unused .regstk directive.
5412 (_fini_EPILOG_BEGINS): Add unwind directives.
5413
ff48874d
UD
54142003-12-11 Ulrich Drepper <drepper@redhat.com>
5415
5416 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5417 Assume parameter is a pointer.
5418 (lll_futex_wake): Likewise.
20945457
UD
5419 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5420 Likewise.
5421 (lll_futex_wake): Likewise.
ff48874d
UD
5422 Reported by Boris Hu.
5423 * sysdeps/unix/sysv/linux/unregister-atfork.c
5424 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5425
5426 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5427
1d9d0b80
UD
54282003-12-10 Ulrich Drepper <drepper@redhat.com>
5429
5430 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5431 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5432 __rtld_lock_initialize for ld.so lock.
5433 Patch in part by Adam Li <adam.li@intel.com>.
5434
c776b3d7
UD
54352003-12-02 David Mosberger <davidm@hpl.hp.com>
5436
5437 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5438 in $(gnulib). Also, remove stale comment.
5439
54402003-11-12 David Mosberger <davidm@hpl.hp.com>
5441
5442 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5443 advantage of new syscall stub and optimize accordingly.
5444
5445 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5446 from SYS_futex, to match expectations of
5447 sysdep.h:DO_INLINE_SYSCALL.
5448 (lll_futex_clobbers): Remove.
5449 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5450 (lll_futex_wake): Likewise.
5451 (lll_futex_requeue): Likewise.
5452 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5453 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5454 Jelinek).
5455 (__lll_mutex_lock): Likewise.
5456 (__lll_mutex_cond_lock): Likewise.
5457 (__lll_mutex_timed_lock): Likewise.
5458 (__lll_mutex_unlock): Likewise.
5459 (__lll_mutex_unlock_force): Likewise.
5460
5461 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5462 comes before the include of <sysdep.h>.
5463 (THREAD_SELF_SYSINFO): New macro.
5464 (THREAD_SYSINFO): Likewise.
5465 (INIT_SYSINFO): New macro.
5466 (TLS_INIT_TP): Call INIT_SYSINFO.
5467
5468 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5469
5470 * sysdeps/pthread/createthread.c (create_thread): Use
5471 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5472 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5473 THREAD_SELF_SYSINFO instead of open code.
5474 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5475 (THREAD_SYSINFO): Likewise.
5476
5477 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5478
5479 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5480
57d20ee7
UD
54812003-12-06 Ulrich Drepper <drepper@redhat.com>
5482
5483 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5484 instead of .init. Patch by David Mosberger.
5485
67aeab2a
AJ
54862003-11-30 Thorsten Kukuk <kukuk@suse.de>
5487
5488 * sysdeps/pthread/configure.in: Remove broken declaration in C
5489 cleanup handling check.
5490
8ca203e6
AJ
54912003-11-30 Andreas Jaeger <aj@suse.de>
5492
5493 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5494 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5495 Likewise.
5496
46bf9de7
UD
54972003-11-27 Jakub Jelinek <jakub@redhat.com>
5498
5499 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5500 * pthread_attr_destroy.c: Include shlib-compat.h.
5501 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5502 is set in iattr->flags.
5503 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5504
1d9b73ab
UD
55052003-11-21 Jakub Jelinek <jakub@redhat.com>
5506
5507 * Makefile (distribute): Add tst-cleanup4aux.c.
5508
5509 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5510 include.
5511
53f9084e
UD
55122003-11-21 Ulrich Drepper <drepper@redhat.com>
5513
1d9b73ab
UD
5514 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5515 pthread_cond_signal.
5516
e42a990e
UD
5517 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5518 store mutex address if the current value is ~0l.
5519 * sysdeps/pthread/pthread_cond_timedwait.c
5520 (__pthread_cond_timedwait): Likewise.
5521 * sysdeps/pthread/pthread_cond_broadcast.c
5522 (__pthread_cond_broadcast): Don't use requeue for pshared
5523 condvars.
5524
5525 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5526 (__pthread_cond_wait): Don't store mutex address if the current
5527 value is ~0l.
5528 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5529 (__pthread_cond_timedwait): Likewise.
5530 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5531 (__pthread_cond_broadcast): Don't use requeue for pshared
5532 condvars.
5533
5534 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5535 element with ~0l for pshared condvars, with NULL otherwise.
5536
5537 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5538 (__pthread_cond_wait): Don't store mutex address if the current
5539 value is ~0l.
5540 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5541 (__pthread_cond_timedwait): Likewise.
5542 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5543 (__pthread_cond_broadcast): Don't use requeue for pshared
5544 condvars.
5545
bf68b236 5546 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5547 * tst-cond12.c: New file.
bf68b236 5548 * tst-cond13.c: New file.
53f9084e 5549
9780c971
UD
55502003-11-17 Ulrich Drepper <drepper@redhat.com>
5551
5552 * sysdeps/pthread/configure.in: Make missing forced unwind support
5553 fatal.
5554
74e12fbc
UD
55552003-11-11 Ulrich Drepper <drepper@redhat.com>
5556
5557 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5558
c685b2b0
UD
55592003-11-06 Ulrich Drepper <drepper@redhat.com>
5560
5561 * Makefile: Add magic to clean up correctly.
5562
44e94149
UD
55632003-11-05 Jakub Jelinek <jakub@redhat.com>
5564
5565 * unwind.c (FRAME_LEFT): Define.
5566 (unwind_stop): Handle old style cleanups here.
5567 (__pthread_unwind): Handle old style cleanups only if
5568 !HAVE_FORCED_UNWIND.
5569 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5570 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5571 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5572 ($(objpfx)tst-cleanupx4): Likewise.
5573 * tst-cleanup4.c: New test.
5574 * tst-cleanup4aux.c: New.
5575 * tst-cleanupx4.c: New test.
5576
c28422b5
UD
55772003-11-04 Ulrich Drepper <drepper@redhat.com>
5578
5579 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5580 lll_mutex_*lock macros to skip atomic operations on some archs.
5581
27176677
UD
55822003-11-03 Ulrich Drepper <drepper@redhat.com>
5583
5584 * sysdeps/pthread/tst-timer.c (main): Initialize
5585 sigev2.sigev_value as well.
5586
026395a2
RM
55872003-10-15 Roland McGrath <roland@redhat.com>
5588
5589 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5590 is missing.
5591 * sysdeps/pthread/configure: Regenerated.
5592
fa3cbe3d
UD
55932003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5594
5595 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5596 locking macros. No distinction between normal and mutex locking
5597 anymore.
5598 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5599 Merge bits from lowlevelmutex.S we still need.
5600 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5601 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5602 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5603 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5604 new mutex implementation.
5605 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5606 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5607 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5608 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5609 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5610 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5611 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5612 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5613 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5614 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5615 symbol for entry point to avoid cancellation.
5616
e700a908
UD
56172003-10-07 Jakub Jelinek <jakub@redhat.com>
5618
5619 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5620 changes.
5621 (SAVE_OLDTYPE_0): Fix a typo.
5622
c70a86b6
UD
56232003-10-03 Ulrich Drepper <drepper@redhat.com>
5624
5625 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5626 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5627
134abcb5
UD
56282003-10-02 Ulrich Drepper <drepper@redhat.com>
5629
5630 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5631 correct offset.
5632
b77ca0e8
UD
56332003-10-02 Jakub Jelinek <jakub@redhat.com>
5634
5635 * Makefile (tests): Add tst-cancel19.
5636 * tst-cancel19.c: New test.
5637
4d961dc7
UD
56382003-10-02 Ulrich Drepper <drepper@redhat.com>
5639
5640 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5641 restoring of the old cancellation type.
5642
1d5b20ad 56432003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5644
1d5b20ad
UD
5645 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5646
4106a403
RM
56472003-09-27 Wolfram Gloger <wg@malloc.de>
5648
4d961dc7 5649 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5650
fca9d8e4
RM
56512003-09-24 Roland McGrath <roland@redhat.com>
5652
5653 * allocatestack.c (__make_stacks_executable): Don't ignore return
5654 value from _dl_make_stack_executable.
5655
c9c60884
UD
56562003-09-24 Ulrich Drepper <drepper@redhat.com>
5657
69c9fa04
UD
5658 * allocatestack.c (__make_stacks_executable): Also change
5659 permission of the currently unused stacks.
5660
279f1143
UD
5661 * allocatestack.c (change_stack_perm): Split out from
5662 __make_stacks_executable.
5663 (allocate_stack): If the required permission changed between the time
5664 we started preparing the stack and queueing it, change the permission.
5665 (__make_stacks_executable): Call change_stack_perm.
5666
c9c60884
UD
5667 * Makefile: Build tst-execstack-mod locally.
5668 * tst-execstack-mod.c: New file.
5669
54ee14b3
UD
56702003-09-23 Jakub Jelinek <jakub@redhat.com>
5671
5672 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5673
56742003-09-23 Roland McGrath <roland@redhat.com>
5675
5676 * tst-execstack.c: New file.
5677 * Makefile (tests): Add it.
5678 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5679 (LDFLAGS-tst-execstack): New variable.
5680
5681 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5682 whether to use PROT_EXEC for stack mmap.
5683 (__make_stacks_executable): New function.
5684 * pthreadP.h: Declare it.
5685 * init.c (__pthread_initialize_minimal_internal): Set
5686 GL(dl_make_stack_executable_hook) to that.
5687
365b1602
UD
56882003-09-22 Ulrich Drepper <drepper@redhat.com>
5689
5690 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5691 recommendation from AMD re avoidance of lock prefix.
5692
39358e8b
UD
56932003-09-22 Jakub Jelinek <jakub@redhat.com>
5694
5695 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5696 lll_futex_timed_wait instead of lll_futex_wait.
5697 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5698 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5699 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5700 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5701 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5702 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5703 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5704 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5705 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5706 Completely revamp the locking macros. No distinction between
5707 normal and mutex locking anymore.
5708 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5709 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5710 __lll_lock_timedwait): Fix prototypes.
5711 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5712 __lll_lock_timedwait): Likewise.
5713 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5714 macros, add __builtin_expect.
5715 (lll_mutex_timedlock): Likewise. Fix return value.
5716 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5717 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5718 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5719 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5720 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5721 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5722 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5723 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5724
9d08fbbb
UD
57252003-09-22 Ulrich Drepper <drepper@redhat.com>
5726
c0df57e1
UD
5727 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5728 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5729 operation if possible.
5730
9d08fbbb
UD
5731 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5732 like jumping over the lock prefix.
5733
71451de2
UD
57342003-09-21 Ulrich Drepper <drepper@redhat.com>
5735
5736 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5737 locking macros. No distinction between normal and mutex locking
5738 anymore.
3a226d33 5739 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5740 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5741 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5742 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5743 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5744 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5745 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5746 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5747 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5748 * Makefile (routines): Remove libc-lowlevelmutex.
5749 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5750 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5751 for new mutex implementation.
5752 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5753 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5754 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5755 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5756 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5757 Likewise.
5758 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5759 Likewise.
5760 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5761 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5762 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5763 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5764 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5765 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5766 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5767 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5768 Likewise.
5769 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5770 Likewise.
5771 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5772 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5773 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5774 Don't use requeue.
5775 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5776 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5777
8f31c0ef
UD
57782003-09-20 Ulrich Drepper <drepper@redhat.com>
5779
56a4aa98
UD
5780 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5781 in parameters of asm with output parameters.
5782
8f31c0ef
UD
5783 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5784 type of DECR parameter to int.
5785 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5786
8b8074da
UD
57872003-09-18 Jakub Jelinek <jakub@redhat.com>
5788
5789 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5790 guardsize for each thread.
5791
65af7e61
UD
57922003-09-17 Jakub Jelinek <jakub@redhat.com>
5793
9ba96eda
UD
5794 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5795 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5796 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5797
06f6ca90
UD
5798 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5799 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5800 NULL.
5801 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5802 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5803 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5804 (pthread_getaffinity_np): Add hidden_def.
5805
5806 * Makefile (tests): Add tst-attr3.
5807 * tst-attr3.c: New test.
5808
65af7e61
UD
5809 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5810
3402852c
UD
58112003-09-15 Jakub Jelinek <jakub@redhat.com>
5812
5813 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5814 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5815
a4db3439
UD
58162003-09-17 Jakub Jelinek <jakub@redhat.com>
5817
5818 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5819 * tst-align.c: Include tst-stack-align.h.
5820 (tf, do_test): Use TEST_STACK_ALIGN macro.
5821
58222003-09-17 Ulrich Drepper <drepper@redhat.com>
5823
5824 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5825 variable.
5826
92ce4676
UD
58272003-09-16 Ulrich Drepper <drepper@redhat.com>
5828
5829 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5830 stack-related values for the initial thread.
5831
e07bb02a
UD
58322003-09-15 Jakub Jelinek <jakub@redhat.com>
5833
5834 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5835
d087b5dc
UD
58362003-09-11 Ulrich Drepper <drepper@redhat.com>
5837
5838 * pthread_mutex_lock.c: Minor code rearrangements.
5839
7f08f55a
RM
58402003-09-05 Roland McGrath <roland@redhat.com>
5841
5842 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5843 Instead, include ../nptl_db/db_info.c to do its magic.
5844 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5845 (__pthread_pthread_key_2ndlevel_size): Likewise.
5846 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5847 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5848 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5849 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5850 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5851 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5852 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5853 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5854 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5855 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5856 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5857 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5858 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5859 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5860 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5861 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5862 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5863
806e4a4a
UD
58642003-09-08 Ulrich Drepper <drepper@redhat.com>
5865
5866 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5867 of pthread_t to be compatible with LT.
5868 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5869 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5870 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5871 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5872 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5873 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5874 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5875
17f83e56
UD
58762003-09-04 Ulrich Drepper <drepper@redhat.com>
5877
5878 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5879
58e8ec84
UD
58802003-09-04 Jakub Jelinek <jakub@redhat.com>
5881
5882 * unwind-forcedunwind.c: Move to...
5883 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5884 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5885 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5886 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5887 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5888 * unwind.c: Include jmpbuf-unwind.h.
5889 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5890
abf1cf21
JJ
58912003-09-02 Jakub Jelinek <jakub@redhat.com>
5892
4a244f0d
UD
5893 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
5894 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
5895 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
5896 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
5897 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5898 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
5899 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
5900 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
5901 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
5902 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
5903 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
5904 function.
5905 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
5906 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
5907 * Makefile (tests): Add tst-stack2.
5908 * tst-stack2.c: New test.
5909 * tst-stack1.c: Include limits.h and sys/param.h.
5910 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
5911
e29ef647
UD
5912 * pthread_condattr_setpshared.c: Include errno.h.
5913 (pthread_condattr_setpshared): Return EINVAL if pshared
5914 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
5915
5777d565
UD
5916 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
5917 defined symbol for entry point to avoid cancellation.
5918 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5919 Likewise.
5920 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5921 Likewise.
5922 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5923 Likewise.
5924 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
5925 Likewise.
5926 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5927 Likewise.
5928 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
5929 __close_nocancel, __read_nocancel, __write_nocancel,
5930 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
5931 libpthread.so or librt.so, define to corresponding function
5932 without _nocancel suffix.
5933 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
5934 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
5935 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
5936
abf1cf21
JJ
5937 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
5938
8348dcc8
UD
59392003-09-02 Ulrich Drepper <drepper@redhat.com>
5940
5941 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 5942 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
5943
5944 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
5945 in subsections has a symbol associated with it.
5946
5947 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
5948 defined symbol for entry point to avoid cancellation.
5949 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
5950
c874a32e
UD
59512003-09-01 Jakub Jelinek <jakub@redhat.com>
5952
5953 * Makefile (tests): Add tst-tls5.
5954 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
5955 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
5956 ($(objpfx)tst-tls5): New.
5957 ($(objpfx)tst-tls6.out): Likewise.
5958 (tests): Depend on $(objpfx)tst-tls6.out.
5959 * tst-tls3.c: Include stdint.h and pthreaddef.h.
5960 (do_test): Check pthread_self () return value alignment.
5961 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
5962 (tf): Check pthread_self () return value alignment.
5963 * tst-tls5.c: New test.
5964 * tst-tls5.h: New.
5965 * tst-tls5mod.c: New.
5966 * tst-tls5moda.c: New.
5967 * tst-tls5modb.c: New.
5968 * tst-tls5modc.c: New.
5969 * tst-tls5modd.c: New.
5970 * tst-tls5mode.c: New.
5971 * tst-tls5modf.c: New.
5972 * tst-tls6.sh: New test.
5973
c503d3dc
UD
5974 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
5975 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
5976 * init.c (pthread_functions): Initialize them.
5977 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
5978 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
5979 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
5980 pthread_cond_timedwait@@GLIBC_2.3.2.
5981
48614753
JJ
59822003-09-01 Jakub Jelinek <jakub@redhat.com>
5983
56a1b877
JJ
5984 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
5985 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
5986 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
5987 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
5988 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
5989 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5990
5991 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
5992
48614753
JJ
5993 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
5994 _POSIX_THREAD_PRIORITY_SCHEDULING.
5995 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
5996
28c97261
UD
59972003-08-31 Ulrich Drepper <drepper@redhat.com>
5998
eef80cf8
UD
5999 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
6000 nested function, use static inline function from libio.h.
6001 Code by Richard Henderson.
6002
28c97261
UD
6003 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
6004 weak.
6005
cd2fbe58
UD
60062003-08-30 Jakub Jelinek <jakub@redhat.com>
6007
6008 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
6009 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
6010 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
6011 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
6012 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
6013 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
6014 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
6015 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
6016 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
6017 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
6018 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
6019 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
6020 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
6021 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
6022 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
6023 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
6024 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
6025 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
6026 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
6027 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
6028 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
6029 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
6030 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
6031 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
6032 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
6033 * sysdeps/sparc/tls.h: New file.
6034 * sysdeps/sparc/tcb-offsets.sym: New file.
6035 * sysdeps/sparc/Makefile: New file.
6036 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
6037 * init.c [__sparc__] (__NR_set_tid_address): Define.
6038
feda52c0
UD
60392003-08-29 Jakub Jelinek <jakub@redhat.com>
6040
6041 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
6042 _IO_release_lock): Define.
6043
7c868816
JJ
60442003-08-29 Jakub Jelinek <jakuB@redhat.com>
6045
0261d33f 6046 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
6047 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
6048
68b9e1ae
UD
60492003-08-27 Ulrich Drepper <drepper@redhat.com>
6050
6051 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
6052 (__pthread_cleanup_class): Add missing return types of member
6053 functions.
6054
13b3edfc
UD
60552003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
6056
6057 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6058 (lll_mutex_unlock_force): Add memory barrier between store and futex
6059 syscall.
6060
bb606fbe
UD
60612003-08-25 Ulrich Drepper <drepper@redhat.com>
6062
6063 * tst-cancel4.c (do_test): Also unlink tempfname and remove
6064 tempmsg in first loop.
6065
ee4e5a3d
UD
60662003-08-18 Ulrich Drepper <drepper@redhat.com>
6067
6068 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6069 _POSIX_THREAD_PRIORITY_SCHEDULING.
6070 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6071
334fcf2a
UD
60722003-08-07 Jakub Jelinek <jakub@redhat.com>
6073
6074 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
6075 (__rtld_lock_default_lock_recursive,
6076 __rtld_lock_default_unlock_recursive): Define.
6077 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
6078 __rtld_lock_unlock_recursive): Define using
6079 GL(_dl_rtld_*lock_recursive).
6080 * init.c (__pthread_initialize_minimal_internal): Initialize
6081 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
6082 Lock GL(_dl_load_lock) the same number of times as
6083 GL(_dl_load_lock) using non-mt implementation was nested.
6084
6085 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
6086 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
6087
a30fb2df
UD
60882003-08-06 Jakub Jelinek <jakub@redhat.com>
6089
6090 * tst-cancel17.c (do_test): Make len2 maximum of page size and
6091 PIPE_BUF.
6092
ce0d30a0
JJ
60932003-08-07 Jakub Jelinek <jakub@redhat.com>
6094
6095 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
6096
9c988b83
UD
60972003-08-03 Jakub Jelinek <jakub@redhat.com>
6098
6099 * sysdeps/pthread/createthread.c (do_clone): Move error handling
6100 to first syscall error check. Move syscall error check for tkill
6101 into __ASSUME_CLONE_STOPPED #ifdef.
6102
5c5252bd
UD
61032003-08-02 Ulrich Drepper <drepper@redhat.com>
6104
f1205aa7
UD
6105 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
6106 is not defined, do explicit synchronization.
6107 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
6108 is not defined also unlock pd->lock for non-debugging case in case
6109 it is necessary.
6110 * pthread_create.c (start_thread): Always get and release pd->lock
6111 if __ASSUME_CLONE_STOPPED is not defined.
6112 (start_thread_debug): Removed. Adjust users.
6113 * allocatestack.c (allocate_stack): Always initialize lock if
6114 __ASSUME_CLONE_STOPPED is not defined.
6115 * Makefile (tests): Add tst-sched1.
6116 * tst-sched1.c: New file.
6117
5c5252bd
UD
6118 * sysdeps/pthread/createthread.c (do_clone): Only use
6119 sched_setschduler and pass correct parameters.
6120
973d66e4
UD
61212003-07-31 Jakub Jelinek <jakub@redhat.com>
6122
6123 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
6124 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
6125 PTHREAD_STACK_MIN in comments.
6126
d347a4ab
UD
61272003-07-31 Jakub Jelinek <jakub@redhat.com>
6128
6129 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6130 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
6131 argument.
6132 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
6133 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
6134 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
6135 (__pthread_cleanup_upto): Fix prototype.
6136 (_longjmp_unwind): Adjust caller.
6137 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
6138 Change second argument to const struct pointer.
6139 * tst-sem8.c (main): Remove unused s2 and s3 variables.
6140 * tst-sem9.c (main): Likewise.
6141 * unwind.c: Include string.h for strlen prototype.
6142
1b26e9a5
UD
61432003-07-31 Ulrich Drepper <drepper@redhat.com>
6144
6145 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6146 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
6147 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
6148 Define HAVE_CMOV.
6149 Patch by Nicholas Miell <nmiell@attbi.com>.
6150
adc12574
UD
61512003-07-30 Jakub Jelinek <jakub@redhat.com>
6152
6153 * init.c (__pthread_initialize_minimal_internal): Initialize
6154 GL(dl_init_static_tls).
6155 * pthreadP.h (__pthread_init_static_tls): New prototype.
6156 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
6157 New functions.
6158 * Makefile (tests): Add tst-tls4.
6159 (modules-names): Add tst-tls4moda and tst-tls4modb.
6160 ($(objpfx)tst-tls4): Link against libdl and libpthread.
6161 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
6162 tst-tls4modb.so.
6163 * tst-tls4.c: New file.
6164 * tst-tls4moda.c: New file.
6165 * tst-tls4modb.c: New file.
6166
a7f6c66e
RM
61672003-06-19 Daniel Jacobowitz <drow@mvista.com>
6168
6169 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
6170 before __timer_dealloc.
6171 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
6172 Don't call list_unlink.
6173
172ce013
RM
61742003-07-29 Roland McGrath <roland@redhat.com>
6175
6176 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
6177
7b787f85
UD
61782003-07-25 Jakub Jelinek <jakub@redhat.com>
6179
6180 * tst-cancel17.c (do_test): Check if aio_cancel failed.
6181 Don't reuse struct aiocb A if it failed.
6182 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
6183 not just one byte, as that does not block.
6184
0e9d6240
UD
61852003-07-22 Jakub Jelinek <jakub@redhat.com>
6186
9d79e037
UD
6187 * sysdeps/pthread/unwind-resume.c: New file.
6188 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
6189 unwind-resume in csu subdir.
6190 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
6191 exceptions.
6192 (librt-sysdep_routines, librt-shared-only-routines): Add
6193 rt-unwind-resume.
6194 * sysdeps/pthread/rt-unwind-resume.c: New file.
6195 * unwind-forcedunwind.c: New file.
6196 * Makefile (libpthread-routines): Add unwind-forcedunwind.
6197 (libpthread-shared-only-routines): Likewise.
6198 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
6199 * pthreadP.h (pthread_cancel_init): New prototype.
6200 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
6201
6202 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
6203 attr argument const struct pthread_attr *.
6204
0e9d6240
UD
6205 * res.c (__res_state): Return __resp.
6206 * descr.h: Include resolv.h.
6207 (struct pthread): Add res field.
6208 * pthread_create.c: Include resolv.h.
6209 (start_thread): Initialize __resp.
6210 * Makefile (tests): Add tst-_res1.
6211 (module-names): Add tst-_res1mod1, tst-_res1mod2.
6212 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
6213 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
6214 libpthread.
6215 * tst-_res1.c: New file.
6216 * tst-_res1mod1.c: New file.
6217 * tst-_res1mod2.c: New file.
6218
1a379ea0
UD
62192003-07-21 Ulrich Drepper <drepper@redhat.com>
6220
7e939b21
UD
6221 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
6222
1a379ea0
UD
6223 * Makefile: Define various *-no-z-defs variables for test DSOs
6224 which has undefined symbols.
6225
ca86a763
UD
62262003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
6227
6228 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6229 Retry if the stwcx fails to store once_control.
6230
80f536db
UD
62312003-07-20 Ulrich Drepper <drepper@redhat.com>
6232
6233 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
6234 pthread_attr_setaffinity.
6235 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
6236 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
6237 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
6238 * pthread_attr_destroy.c: Free cpuset element if allocated.
6239 * pthread_create.c: Pass iattr as additional parameter to
6240 create_thread.
6241 * sysdeps/pthread/createthread.c: If attribute is provided and
6242 a new thread is created with affinity set or scheduling parameters,
6243 start thread with CLONE_STOPPED.
6244 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
6245 pthread_attr_setaffinity.
6246 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
6247 cpuset element.
6248
73299943
UD
62492003-07-15 Ulrich Drepper <drepper@redhat.com>
6250
6251 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
6252
da35d15e
UD
62532003-07-14 Ulrich Drepper <drepper@redhat.com>
6254
6255 * sysdeps/pthread/configure.in: Require CFI directives also for
6256 ppc and s390.
6257
75540d8a
UD
62582003-07-15 Jakub Jelinek <jakub@redhat.com>
6259
6260 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6261 Add cfi directives.
6262
4a17085f
UD
62632003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6264
6265 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
6266 CLEANUP_JMP_BUF.
6267 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
6268 registers as variables. Call __pthread_mutex_unlock_usercnt.
6269 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6270 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
6271 not self pointer in __writer. Compare with TID to determine
6272 deadlocks.
6273 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6274 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
6275 Likewise.
6276 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
6277 Likewise.
6278 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
6279 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
6280 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
6281 macros also when compiling librt.
6282
6080ecdf
UD
62832003-07-11 Jakub Jelinek <jakub@redhat.com>
6284
6285 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
6286 -fasynchronous-unwind-tables.
6287 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
6288 (PSEUDO): Add cfi directives.
6289 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
6290 Likewise.
6291 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6292 Likewise.
6293
da0c02ee
UD
62942003-07-08 Jakub Jelinek <jakub@redhat.com>
6295
6296 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
6297 __pthread_unregister_cancel): Add prototypes and hidden_proto.
6298 * unwind.c (__pthread_unwind_next): Add hidden_def.
6299 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
6300 Likewise.
6301 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6302 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6303 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6304 Likewise.
6305 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
6306 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
6307 Likewise.
6308 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
6309 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
6310 __pthread_unregister_cancel and __pthread_unwind_next.
6311
57a5ea02
UD
63122003-07-04 Jakub Jelinek <jakub@redhat.com>
6313
6314 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
6315 different symbol for the cancellation syscall wrapper and
6316 non-cancellation syscall wrapper.
6317 (PSEUDO_END): Define.
6318
d810b358
UD
63192003-07-05 Richard Henderson <rth@redhat.com>
6320
6321 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
6322 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
6323 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6324 return actual return value from the syscall, not 0.
d810b358 6325
db54f488
UD
63262003-07-07 Ulrich Drepper <drepper@redhat.com>
6327
6328 * descr.h (struct pthread): Add pid field.
6329 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6330 (__reclaim_stacks): Likewise.
6331 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6332 also check for PID of the signal source.
6333 (__pthread_initialize_minimal_internal): Also initialize pid field
6334 of initial thread's descriptor.
6335 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6336 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6337 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6338 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6339 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6340
5e497a41
UD
63412003-07-05 Ulrich Drepper <drepper@redhat.com>
6342
6343 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6344 Fix use of parameter.
6345 (__libc_cleanup_pop): Likewise.
6346
86a0c4fa
UD
63472003-07-04 Ulrich Drepper <drepper@redhat.com>
6348
6349 * init.c (sigcancel_handler): Change parameters to match handler
6350 for SA_SIGACTION. Check signal number and code to recognize
6351 invalid invocations.
6352
bdbecaa3
RM
63532003-07-03 Roland McGrath <roland@redhat.com>
6354
6355 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6356 Apply sizeof (struct pthread) bias to r13 value.
6357
56421b23
UD
63582003-07-03 Ulrich Drepper <drepper@redhat.com>
6359
fbd90f6c
UD
6360 * sysdeps/pthread/configure.in: Require CFI directives.
6361
56421b23
UD
6362 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6363 definition.
6364 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6365 libpthread compilation.
6366 * unwind.c (__pthread_unwind): Add hidden_def.
6367 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6368
ca2b4cd7
UD
63692003-07-01 Ulrich Drepper <drepper@redhat.com>
6370
6371 * libc-cancellation.c (__libc_cleanup_routine): Define.
6372 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6373 (__pthread_cleanup_pop): Define.
6374
f036e569
UD
63752003-07-01 Richard Henderson <rth@redhat.com>
6376
6377 * sysdeps/alpha/elf/pt-initfini.c: New file.
6378 * sysdeps/alpha/pthread_spin_lock.S: New file.
6379 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6380 * sysdeps/alpha/pthreaddef.h: New file.
6381 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6382 * sysdeps/alpha/tls.h: New file.
6383 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6384 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6385 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6386 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6387 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6388 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6389 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6390 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6391 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6392 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6393
3b985826
UD
63942003-07-01 Ulrich Drepper <drepper@redhat.com>
6395
6396 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6397 cleanup support and unwind info.
6398
3a4d1e1e
UD
63992003-06-30 Ulrich Drepper <drepper@redhat.com>
6400
6401 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6402 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6403 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6404 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6405 * tst-once3.c: Add cleanup handler and check it is called.
6406 * tst-once4.c: Likewise.
6407 * tst-oncex3.c: New file.
6408 * tst-oncex4.c: New file.
6409 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6410
e479cc8e
UD
64112003-06-29 Ulrich Drepper <drepper@redhat.com>
6412
6413 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6414
7d7ff54c
UD
64152003-06-27 Ulrich Drepper <drepper@redhat.com>
6416
483e95d0
UD
6417 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6418 (tf_msgsnd): Likewise.
6419
7d7ff54c
UD
6420 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6421 premature returns a bit more.
6422
7539c7ec
UD
64232003-06-26 Ulrich Drepper <drepper@redhat.com>
6424
6425 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6426 definition to the front.
6427
6428 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6429 the cleanup functions to make the names unique. Fix dwarf opcode
6430 un unwind table.
6431 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6432 functions to make the names unique. Fix CFA offset for two blocks.
6433
0af6a1d9
UD
64342003-06-25 Ulrich Drepper <drepper@redhat.com>
6435
6436 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6437 missing closing braces.
6438 Patch by Christophe Saout <christophe@saout.de>.
6439
eef4a9f3
RM
64402003-06-24 Roland McGrath <roland@redhat.com>
6441
6442 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6443
4165d44d
UD
64442003-06-24 Ulrich Drepper <drepper@redhat.com>
6445
7f8f7b9d
UD
6446 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6447 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6448
4165d44d
UD
6449 * pthreadP.h: Declare __find_thread_by_id.
6450 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6451 * pthread_clock_gettime.c: Allow using other thread's clock.
6452 * pthread_clock_settime.c: Likewise.
6453 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6454 * Makefile: Add rules to build and run tst-clock2.
6455 * tst-clock2.c: New file.
6456
67b78ef9
UD
64572003-06-23 Ulrich Drepper <drepper@redhat.com>
6458
6459 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6460 to use exception-based cleanup handler.
6461 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6462
6463 * tst-cond8.c (ch): Announce that we are done.
6464
6465 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6466
6467 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6468 Also test aio_suspend with timeout value.
6469
61623643
UD
64702003-06-22 Ulrich Drepper <drepper@redhat.com>
6471
3a4f2043
UD
6472 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6473 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6474 attribute_hidden.
6475
61623643
UD
6476 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6477 (__pthread_mutex_lock_internal): Likewise.
6478 (__pthread_mutex_unlock_internal): Likewise.
6479 (__pthread_mutex_unlock_usercnt): Declare.
6480 * pthread_mutex_destroy.c: Always fail if used in any way.
6481 * pthread_mutex_init.c: Update comment.
6482 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6483 * pthread_mutex_timedlock.c: Adjust __nusers.
6484 * pthread_mutex_trylock.c: Adjust __nusers.
6485 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6486 and public interfaces are wrapper with pass additional parameter.
6487 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6488 parameter zero.
6489 * tst-mutex8.c: New file.
6490 * Makefile (tests): Add tst-mutex8.
6491 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6492 __pthread_mutex_unlock_usercnt.
6493 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6494 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6495 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6496 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6497 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6498 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6499 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6500 Add __nusers.
6501 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6502 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6503 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6504 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6505 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6506
6507 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6508 * pthread_mutex_timedlock.c: Likewise.
6509 * pthread_mutex_trylock.c: Adjust __nusers.
6510 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6511 * tst-mutex9.c: New file.
6512 * Makefile (tests): Add tst-mutex9.
6513 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6514 * sysdeps/ia64/tls.h: Likewise.
6515 * sysdeps/powerpc/tls.h: Likewise.
6516 * sysdeps/s390/tls.h: Likewise.
6517 * sysdeps/sh/tls.h: Likewise.
6518 * sysdeps/x86_64/tls.h: Likewise.
6519 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6520 Change type of __owner.
6521 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6522 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6523 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6524 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6525 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6526
9bdabb94
UD
65272003-06-19 Jakub Jelinek <jakub@redhat.com>
6528
6529 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6530 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6531
6532 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6533 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6534 instead of nr to lll_futex_wake. Only set errno and return -1
6535 if err < 0.
6536
6537 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6538 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6539 return actual return value from the syscall, not 0.
6540
f6c93bd9
UD
65412003-06-18 Ulrich Drepper <drepper@redhat.com>
6542
ca343e73
UD
6543 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6544 find a random value.
6545 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6546 errno==EIDRM.
6547
50441a98
UD
6548 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6549 compat_timer_settime.
6550 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6551 compat_timer_gettime.
6552 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6553 compat_timer_getoverrun.
50441a98
UD
6554 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6555 compat_timer_delete.
6556
f6c93bd9
UD
6557 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6558 error-checking mutex detect busy mutexes.
6559
047aec8f
UD
65602003-06-17 Ulrich Drepper <drepper@redhat.com>
6561
1d53508d
UD
6562 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6563 Add ax to clobber list.
6564 (lll_mutex_cond_lock): Likewise.
6565 (lll_mutex_unlock): Likewise.
6566 (lll_lock): Likewise.
6567 (lll_unlock): Likewise.
6568
f23b30e2
UD
6569 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6570 * tst-cancel18.c: New file.
6571 * tst-cancelx18.c: New file.
6572
6573 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6574 and tcdrain.
6575
6576 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6577 * tst-cancel17.c: New file.
6578 * tst-cancelx17.c: New file.
6579
6580 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6581 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6582 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6583
047aec8f
UD
6584 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6585
bbde8527
UD
65862003-06-16 Jakub Jelinek <jakub@redhat.com>
6587
6588 * sysdeps/pthread/createthread.c (create_thread): Set
6589 header.multiple_threads unconditionally.
6590 * allocatestack.c (allocate_stack): Likewise.
6591 * descr.h (struct pthread): Add header.multiple_threads
6592 unconditionally.
6593 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6594 Define for librt. #error if neither libpthread, libc nor librt.
6595 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6596 Likewise.
6597 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6598 CDISABLE): Likewise.
6599 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6600 CDISABLE): Likewise.
6601 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6602 CDISABLE): Likewise.
6603 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6604 CDISABLE): Likewise. Access header.multiple_threads outside of
6605 libc and libpthread.
6606 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6607 Likewise.
6608 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6609 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6610
26676450
UD
66112003-06-17 Ulrich Drepper <drepper@redhat.com>
6612
6613 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6614 Also test early cancellation before the thread reaches the cancellation
6615 point.
6616
6617 * Makefile: Compile forward.c with exceptions.
6618
6619 * sysdeps/unix/sysv/linux/sleep.c: New file.
6620
301a6724
UD
66212003-06-16 Ulrich Drepper <drepper@redhat.com>
6622
0e0deb03
UD
6623 * Makefile: Add CFLAGS definition to compile function wrappers
6624 duplicated from libc with exceptions.
6625 * tst-cancel4.c: Also check cancellation handlers.
6626
301a6724
UD
6627 * Makefile: Add rules to build and run tst-cancel16 and
6628 tst-cancelx16. Add missing CFLAGS definitions.
6629 * tst-cancel16.c: New file.
6630 * tst-cancelx16.c: New file.
6631
7a114794
UD
66322003-06-15 Ulrich Drepper <drepper@redhat.com>
6633
452aea84
UD
6634 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6635 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6636 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6637 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6638
7a114794
UD
6639 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6640 (LIBC_CANCEL_RESET): Likewise.
6641 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6642 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6643 librt-cancellation.
6644 (CFLAGS-libcrt-cancellation.c): Define.
6645 * sysdeps/pthread/librt-cancellation.c: New file.
6646 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6647 macros also when compiling librt.
6648 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6649 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6650 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6651 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6652 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6653 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6654 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6655
6656 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6657 compat_timer_create.
6658
8ba1d429
UD
66592003-06-14 Ulrich Drepper <drepper@redhat.com>
6660
cc8fb6f3
UD
6661 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6662
8ba1d429
UD
6663 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6664 __register_atfork.
6665 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6666 Add libc_hidden_def.
6667
d4f100e2
RM
66682003-06-13 Roland McGrath <roland@redhat.com>
6669
6670 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6671 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6672
dd9423a6
UD
66732003-06-11 Ulrich Drepper <drepper@redhat.com>
6674
6675 * allocatestack.c (queue_stack): Always inline.
6676 * ptreadhP.h (__do_cancel): Likewise.
6677
ed24330d
JJ
66782003-06-10 Jakub Jelinek <jakub@redhat.com>
6679
6680 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6681 a typo.
6682
06120d79
UD
66832003-06-10 Ulrich Drepper <drepper@redhat.com>
6684
6685 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6686 (__pthread_cond_signal): Remove incorrect second addition for
6687 cond_lock!=0.
6688
b1720346
UD
66892003-06-09 Ulrich Drepper <drepper@redhat.com>
6690
5b318f85
UD
6691 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6692 (__pthread_cond_signal): Use correct futex pointer in
6693 __lll_mutex_lock_wait call.
6694
b1720346
UD
6695 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6696 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6697
3e36c37d
UD
66982003-06-08 Ulrich Drepper <drepper@redhat.com>
6699
ecf7955d
UD
6700 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6701 cancelable.
ed24330d 6702 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6703 Likewise.
6704
3e36c37d
UD
6705 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6706 hand-written CFI generation code. Since ENTRY/END also initiated
6707 CFI frames this caused two CFI sets to be generated.
6708
7726edc2
UD
67092003-06-07 Ulrich Drepper <drepper@redhat.com>
6710
6711 * cleanup_routine.c: New file.
6712 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6713 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6714 cleanup handling.
6715 * Makefile (libpthread-routines): Add cleanup_routine.
6716 Add more CFLAGS variables to compile with exceptions. Add comments
6717 why which file needs unwind tables.
6718 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6719 tests.
6720 * tst-cancelx1.c: New file.
6721 * tst-cancelx2.c: New file.
6722 * tst-cancelx3.c: New file.
6723 * tst-cancelx4.c: New file.
6724 * tst-cancelx5.c: New file.
6725 * tst-cancelx6.c: New file.
6726 * tst-cancelx7.c: New file.
6727 * tst-cancelx8.c: New file.
6728 * tst-cancelx9.c: New file.
6729 * tst-cancelx10.c: New file.
6730 * tst-cancelx11.c: New file.
6731 * tst-cancelx12.c: New file.
6732 * tst-cancelx13.c: New file.
6733 * tst-cancelx14.c: New file.
6734 * tst-cancelx15.c: New file.
6735 * tst-cleanupx0.c: New file.
6736 * tst-cleanupx0.expect: New file.
6737 * tst-cleanupx1.c: New file.
6738 * tst-cleanupx2.c: New file.
6739 * tst-cleanupx3.c: New file.
6740
6741 * tst-cleanup0.c: Make standard compliant.
6742 * tst-cleanup1.c: Likewise.
6743
6744 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6745 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6746 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6747 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6748 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6749 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6750 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6751 CLEANUP_JMP_BUF.
6752 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6753 * tst-cancel12.c: New file.
6754 * tst-cancel13.c: New file.
6755 * tst-cancel14.c: New file.
6756 * tst-cancel15.c: New file.
6757 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6758 and tst-cancel15.
6759
6760 * tst-cancel1.c: Add some comments.
6761
6762 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6763 timeout correctly.
6764
7a8a8e21
UD
67652003-06-06 Ulrich Drepper <drepper@redhat.com>
6766
6767 * Makefile (CFLAGS-pthread_cancel.c): Define.
6768
4ad0bbf4
UD
67692003-06-05 Ulrich Drepper <drepper@redhat.com>
6770
6771 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6772 Change type of __writer element to int.
6773 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6774 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6775 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6776 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6777 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6778 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6779 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6780 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6781 Compare with TID to determine deadlocks.
6782 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6783 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6784 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6785 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6786 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6787 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6788 Likewise.
6789 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6790 Likewise.
6791 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6792 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6793 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6794 Likewise.
6795 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6796 Likewise.
6797 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6798 * Makefile (tests): Add tst-rwlock12.
6799 * tst-rwlock12.c: New file.
6800
332faa96
JJ
68012003-06-05 Jakub Jelinek <jakub@redhat.com>
6802
6803 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6804 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6805 Remove bogus hidden_proto.
6806 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6807 Likewise.
6808 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6809 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6810 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6811 ___lll_mutex_timedlock): Likewise.
6812
29d9e2fd
UD
68132003-06-04 Ulrich Drepper <drepper@redhat.com>
6814
6815 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6816 (__pthread_cond_signal): Add some code to eventually handle
6817 cond_lock!=0.
6818
6f1acb30
UD
68192003-06-01 Ulrich Drepper <drepper@redhat.com>
6820
6821 * Makefile (tests): Add tst-exec4.
6822 (tst-exec4-ARGS): Define.
6823 * tst-exec4.c: New file.
6824
49b65043
UD
68252003-05-31 Ulrich Drepper <drepper@redhat.com>
6826
31195be2
UD
6827 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6828 Also fail if tv_nsec < 0.
6829 (__lll_timedwait_tid): Likewise.
6830 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6831 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6832 Likewise.
6833 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6834 Likewise.
6835 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6836 Likewise.
6837 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6838 Likewise.
80b54217
UD
6839 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6840 Likewise.
6841 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6842 Likewise.
31195be2 6843
dcfc8224
UD
6844 * Makefile (tests): Add tst-sem8 and tst-sem9.
6845 * tst-sem8.c: New file.
6846 * tst-sem9.c: New file.
6847 * sem_open.c: Fix creation of in_use record if the file exists but
6848 no internal record.
6849
49b65043
UD
6850 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6851 definitions.
6852
6853 * sysdeps/pthread/timer_create.c (timer_create): In case
6854 evp==NULL, assign timer ID to sival_ptr.
6855
6856 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6857 struct pthread_unwind_buf *.
6858 (struct pthread): Likewise for cleanup_jmp_buf element.
6859
6860 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6861 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6862 * unwind.c (__pthread_unwind_next): Likewise.
6863
50794a45
UD
68642003-05-30 Ulrich Drepper <drepper@redhat.com>
6865
5d4f57bd
UD
6866 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6867 (lll_futex_timed_wait): Use int for futex value parameter.
6868 (lll_futex_wake): Likewise.
6869 (lll_futex_requeue): Likewise.
6870
6871 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6872 Replace one memory operation with one register operation.
6873
6874 * tst-join4.c (do_test): Fix error message.
6875
7ab7ea33
UD
6876 * tst-rwlock6.c (do_test): Use correct format specifier.
6877
6878 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6879 (__lll_mutex_lock_wait): Replace one memory operation with one
6880 register operation.
6881 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6882 (__lll_mutex_lock_wait): Likewise.
6883
50794a45
UD
6884 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6885 (__lll_mutex_cond_lock): Add one to value parameter of
6886 __lll_lock_wait to reflect reality in the futex syscall.
6887 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6888 (lll_mutex_cond_lock): Likewise.
6889
5a70784e
JJ
68902003-05-30 Jakub Jelinek <jakub@redhat.com>
6891
6892 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
6893 New function.
6894 (lll_mutex_cond_lock): Define.
6895
e7c5ac68
UD
68962003-05-29 Ulrich Drepper <drepper@redhat.com>
6897
586d1748
UD
6898 * Makefile (tests): Add tst-signal6.
6899 * tst-signal6.c: New file.
6900
b8ba4a27
UD
6901 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
6902 (__lll_mutex_unlock_force): New function
6903 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6904
65d46efe
UD
6905 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6906 (__lll_mutex_unlock_force): New function.
6907 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6908
6909 * tst-rwlock7.c (do_test): Use correct format specifier.
6910
e7c5ac68
UD
6911 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
6912 Find break parameter in correct asm argument.
6913
284bdc42
UD
69142003-05-27 Jakub Jelinek <jakub@redhat.com>
6915
6916 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
6917 Remove out4.
6918 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
6919 error occured.
6920 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6921 Add __mutex.
6922 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
6923 lll_futex_requeue, lll_mutex_unlock_force): Define.
6924
e7c5ac68
UD
69252003-05-30 Jakub Jelinek <jakub@redhat.com>
6926
6927 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6928 (pthread_cond_t): Add __mutex.
6929 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
6930 lll_futex_requeue, lll_mutex_unlock_force): Define.
6931
ea2630c6
UD
69322003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6933
6934 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
6935 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 6936 Add __mutex field.
ea2630c6
UD
6937 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
6938 Define.
6939 (lll_futex_wait, lll_futex_wake): Define.
6940 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
6941 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
6942 FUTEX_REQUEUE instead of FUTEX_WAIT.
6943 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
6944 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
6945 mutex which was used in condvar structure. Call
6946 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
6947 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
6948
6949 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
6950 include tcb-offsets.h. Read wakeup value in locked region.
6951 Use the value of gbr register as THREAD_ID.
6952 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6953 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
6954 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
6955
6956 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
6957 macros.
6958
5a77f150
UD
69592003-05-28 Ulrich Drepper <drepper@redhat.com>
6960
6961 * sysdeps/pthread/pthread_cond_broadcast.c
6962 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
6963
7661d9f7
UD
69642003-05-26 Ulrich Drepper <drepper@redhat.com>
6965
6966 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
6967 typo in register name.
6968 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
6969 correctly. Actually use requeue. Little optimization.
6970 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
6971 mutex address early. Handle cancellation state as 32-bit value.
6972 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6973 Remove unnecessary label.
6974
69431c9a
UD
69752003-05-25 Ulrich Drepper <drepper@redhat.com>
6976
6977 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
6978 instead of FUTEX_WAIT.
6979 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
6980 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6981 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6982 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
6983 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
6984 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
6985 used in condvar structure. Call __pthread_mutex_cond_lock instead
6986 of __pthread_mutex_lock_internal.
6987 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6988 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6989 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6990 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
6991 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6992 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6993 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
6994 Add pthread_mutex_cond_lock.
6995 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
6996 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
6997 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
6998 lll_mutex_cond_lock.
6999 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7000 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 7001 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 7002 Add __mutex field.
248a3490 7003 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
7004 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7005
7006 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
7007 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7008
7009 * pthreadP.h: Declare __pthread_mutex_cond_lock.
7010 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
7011 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
7012 macro don't define aliases.
7013
7014 * cancellation.c: Remove __pthread_enable_asynccancel_2.
7015 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
7016 * sysdeps/pthread/pthread_cond_timedwait.c: Use
7017 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
7018 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7019 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7020 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7021 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7022 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7023
fddfebbd
UD
70242003-05-17 Ulrich Drepper <drepper@redhat.com>
7025
7026 * sem_open.c: Fix one endless loop. Implement correct semantics
7027 wrt opening the same semaphore more then once.
7028 * sem_close.c: Adjust for sem_open change.
7029 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
7030 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
7031 * Makefile (tests): Add tst-sem7.
7032 * tst-sem7.c: New file.
7033
1eefffb0
RM
70342003-05-16 Roland McGrath <roland@redhat.com>
7035
7036 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
7037 uninitialized variable braino.
7038
6e66dc78
UD
70392003-05-16 Ulrich Drepper <drepper@redhat.com>
7040
23ae6451
UD
7041 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
7042 test for syscall availability.
7043
7044 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
7045 __no_posix_timers to -1 if the syscalls don't exist.
7046
7ac5b8e2
UD
7047 * pthread_join.c (pthread_join): Set tid field of the joined
7048 thread to -1. This isn't necessary but helps to recognize some
7049 error conditions with almost no cost.
7050
7051 * allocatestack.c (FREE_P): Also negative values indicate an
7052 unused stack.
7053
6e66dc78
UD
7054 * unwind.c: Include <unistd.h>.
7055
855dba3c
UD
70562003-05-14 Ulrich Drepper <drepper@redhat.com>
7057
7058 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
7059
81f3ac4c
UD
70602003-05-14 Jakub Jelinek <jakub@redhat.com>
7061
7062 * Makefile (crti-objs, crtn-objs): New variables.
7063 (omit-deps, extra-objs): Add crtn.
7064 ($(objpfx)libpthread.so): Depend on both crti and crtn
7065 and links to them in multidir.
7066 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
7067
7158eae4
UD
70682003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
7069
7070 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7071 (lll_mutex_unlock): Use atomic_exchange_rel.
7072
edf205d5
UD
70732003-05-11 Ulrich Drepper <drepper@redhat.com>
7074
7075 * cond-perf.c (cons): Add missing locking around setting of alldone.
7076
a3f979a7
UD
70772003-05-10 Ulrich Drepper <drepper@redhat.com>
7078
7079 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
7080 related macros.
7081 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7082
880867a4
UD
70832003-05-09 Ulrich Drepper <drepper@redhat.com>
7084
949ec764
UD
7085 * tst-sem6.c: New file.
7086 * Makefile (tests): Add tst-sem6.
7087
7088 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
7089 Use atomic_exchange_rel instead of atomic_exchange.
7090 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
7091 Likewise.
7092
7093 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
7094 code for lll_futex_wait and lll_futex_wake in static apps. Use
7095 vsyscall is possible.
7096
7097 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
7098 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
7099 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
7100 pthread_setaffinity_np.
7101 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
7102 and pthread_setaffinity_np.
7103 * Makefile (libpthread-routines): Add pthread_getaffinity and
7104 pthread_setaffinity.
7105
880867a4
UD
7106 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
7107 use it in case mmap to allocate the stack fails.
7108 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
7109 ARCH_MAP_FLAGS here.
7110 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
7111 ARCH_RETRY_MMAP.
7112
92d83c72
UD
71132003-05-08 Ulrich Drepper <drepper@redhat.com>
7114
7115 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
7116 handler implementation. It is now lockless in fork().
7117 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
7118 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
7119 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
7120 declare the __fork_*_lists.
7121 (struct fork_handler): Include pointers to all three functions.
7122 Add next, refcntr and need_signal elements.
7123 (__fork_handlers): New declaration.
7124 (__register_atfork_malloc): Remove declaration.
7125 (HAVE_register_atfork_malloc): Remove definition.
7126 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
7127 __pthread_child_handler variable.
7128 (__libc_pthread_init): Use __register_atfork instead of explicitly
7129 adding to the list.
7130 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
7131 and lll_futex_wake.
7132 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7133
7134 * unwind.c (unwind_cleanup): Print error message and then abort. This
7135 function must never be reached.
7136
7137 * cond-perf.c: New file.
7138
be4d8038
UD
71392003-05-05 Ulrich Drepper <drepper@redhat.com>
7140
7141 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
7142
c6696b79
RM
71432003-05-04 Roland McGrath <roland@redhat.com>
7144
7145 * Makefile ($(objpfx)../libc.so): New target.
7146
7da168bf
UD
71472003-05-02 Ulrich Drepper <drepper@redhat.com>
7148
7149 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7150 (pthread_condattr_t): Size is only an int, don't use long for
7151 alignment.
7152 (pthread_mutexattr_t): Likewise.
7da168bf
UD
7153 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7154 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7155 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7156
9a7178d6
UD
71572003-05-01 Ulrich Drepper <drepper@redhat.com>
7158
7159 * sysdeps/i386/tls.h: Define THREAD_ID.
7160 * sysdeps/ia64/tls.h: Likewise.
7161 * sysdeps/powerpc/tls.h: Likewise.
7162 * sysdeps/s390/tls.h: Likewise.
7163 * sysdeps/sh/tls.h: Likewise.
7164 * sysdeps/x86_64/tls.h: Likewise.
7165 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
7166 record ownership.
7167 * pthread_mutex_timedlock.c: Likewise.
7168 * pthread_mutex_trylock.c: Likewise.
7169 * pthread_mutex_unlock.c: Likewise.
7170 * pthread_rwlock_trywrlock.c: Likewise.
7171 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
7172 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7173 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
7174 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7175
7176 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
7177 flag.
7178
a234e27d
UD
71792003-04-29 Jakub Jelinek <jakub@redhat.com>
7180
7181 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7182 (__SIZEOF_PTHREAD_COND_T): Define to 48.
7183 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
7184 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7185 Make __align long long instead of long.
7186 (pthread_rwlock_t): Formatting.
7187 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
7188 (pthread_rwlock_t): Formatting.
7189 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7190 (pthread_cond_t): Make __align long long instead of long.
7191 (pthread_rwlock_t): Move __flags field to the same position as in
7192 linuxthreads.
7193
f025c136
UD
71942003-04-30 Ulrich Drepper <drepper@redhat.com>
7195
7196 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
7197 * tst-rwlock7.c (do_test): Likewise.
7198
7531ab9e
RM
71992003-04-26 Roland McGrath <roland@redhat.com>
7200
7201 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
7202
299601a1
UD
72032003-04-22 Jakub Jelinek <jakub@redhat.com>
7204
299601a1
UD
7205 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
7206 sizeof (struct pthread).
7207 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 7208 1 struct pthread.
299601a1
UD
7209 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
7210 to 0.
7211 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
7212 struct pthread.
7213 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
7214 to 32-bit bytes.
7215 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
7216 tcbp.
7217 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
7218 unneccessarily.
7219 (NO_TLS_OFFSET): Define.
299601a1
UD
7220 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
7221 add TLS_TCB_SIZE unnecessarily.
299601a1 7222
950094f8
RM
72232003-04-22 Roland McGrath <roland@redhat.com>
7224
7225 * Makeconfig (shared-thread-library): Reverse link order to work
7226 around linker bug.
7227
dc2f6455
UD
72282003-04-22 Ulrich Drepper <drepper@redhat.com>
7229
7230 * semaphore.h: Fix typo in comment.
7231
e7608d77
UD
72322003-04-21 Ulrich Drepper <drepper@redhat.com>
7233
6a87ee19
UD
7234 * sysdeps/pthread/sigfillset.c: New file.
7235
e7608d77
UD
7236 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
7237 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
7238 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
7239 * sysdeps/pthread/sigaction.c: Likewise.
7240 * sysdeps/pthread/sigprocmask.c: New file.
7241 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
7242 __SIGRTMIN+1.
7243 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7244 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
7245 in this case.
7246
0b3df49e
UD
72472003-04-19 Ulrich Drepper <drepper@redhat.com>
7248
58a7a325
UD
7249 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7250 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
7251
0b3df49e
UD
7252 * sysdeps/unix/sysv/linux/unregister-atfork.c
7253 (__unregister_atfork): Don't free memory not allocated dynamically.
7254
7255 * semaphore.h: Remove __THROW marker from cancellation points.
7256 * nptl/sysdeps/pthread/pthread.h: Likewise.
7257
7d74651e
UD
72582003-04-18 Ulrich Drepper <drepper@redhat.com>
7259
76a67697
UD
7260 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
7261 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
7262 __THROW.
7263
dd9d6538
JJ
72642003-04-16 Jakub Jelinek <jakub@redhat.com>
7265
7266 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
7267
4ab6f47c
RM
72682003-04-15 Roland McGrath <roland@redhat.com>
7269
7270 * forward.c (__pthread_unwind): Tweak to avoid warning.
7271
162434a6
UD
72722003-04-15 Ulrich Drepper <drepper@redhat.com>
7273
7274 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
7275
35909161
UD
72762003-04-14 Ulrich Drepper <drepper@redhat.com>
7277
18ddd3aa 7278 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
7279 overflow CFA advance instructions.
7280 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7281
18a8e730
UD
72822003-04-14 Jakub Jelinek <jakub@redhat.com>
7283
bd4f43b4
UD
7284 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
7285 * sysdeps/i386/pthread_spin_lock.c: Likewise.
7286 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
7287 defined.
7288
18a8e730
UD
7289 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
7290 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
7291 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
7292 DW_CFA_advance_loc for .Laddl-.Lsubl.
7293
08c765fa
UD
72942003-04-13 Ulrich Drepper <drepper@redhat.com>
7295
18a8e730
UD
7296 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
7297 position-independent unwind data for static libraries.
7298 Add missing unwind info. Add comments.
7299
ad2be852
UD
7300 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
7301 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7302 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
7303 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7304
177d1ad3
UD
73052003-04-12 Ulrich Drepper <drepper@redhat.com>
7306
08c765fa
UD
7307 * Makefile: Make sure all cancellation points are compiled with
7308 exception and asynchronous unwind tables.
7309
177d1ad3
UD
7310 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
7311 which mishandles loading of global object addresses in PIC.
7312 (THREAD_SETMEM_NC): Likewise.
7313
09d65ff3
UD
73142003-04-11 Ulrich Drepper <drepper@redhat.com>
7315
7316 * pthread.h: Define new data structure for cleanup buffer. Declare
7317 new cleanup handler interfaces.
7318 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
7319 (struct pthread): Add cleanup_jmp_buf pointer. Define
7320 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
7321 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
7322 it. Declare old cleanup handler installation functions.
7323 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
7324 handling.
7325 * cleanup_defer.c: Likewise.
7326 * cleanup_compat.c: New file. Old cleanup code.
7327 * cleanup_def_compat.c: New file. Old cleanup code.
7328 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7329 if own thread descriptor.
7330 * unwind.c: New file.
7331 * forward.c: Add __pthread_unwind.
7332 * init.c (pthread_functions): Add __pthread_unwind.
7333 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7334 Add ptr___pthread_unwind.
7335 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7336 and unwind function.
7337 * Makefile (libpthread-routines): Add cleanup_compat,
7338 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7339 table generation if necessary.
7340 * version.c: Record whether unwind support is compiled in.
7341 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7342 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7343 handler interfaces.
7344 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7345 complication to generate unwind information for syscall wrappers.
68107ec0 7346 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7347 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7348 __cleanup_fct_attribute.
7349
7350 * Makefile: Add rules to build and run tst-cleanup0.
7351 * tst-cleanup0.c: New file.
7352 * tst-cleanup0.expect: New file.
7353
7354 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7355 caller. Optimize to avoid often unecessary local variable.
7356
0dc44b51
RM
73572003-04-11 Roland McGrath <roland@redhat.com>
7358
7359 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7360 sets variable `multidir'; include that.
7361 (generated): Add it.
7362 ($(objpfx)$(multidir)/crti.o): New target.
7363 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7364
84a80719
UD
73652003-04-11 Ulrich Drepper <drepper@redhat.com>
7366
7367 * tst-attr2.c (do_test): Add cast to avoid warning.
7368 * tst-mutex4.c (do_test): Likewise.
7369
88ff4759
UD
73702003-04-10 Ulrich Drepper <drepper@redhat.com>
7371
7372 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7373 in child.
7374
b2041097
UD
73752003-04-09 Ulrich Drepper <drepper@redhat.com>
7376
7377 * Makefile (tests): Add tst-detach1.
7378 * tst-detach1.c: New file.
7379
f9657e88
UD
73802003-04-08 Ulrich Drepper <drepper@redhat.com>
7381
9afe4964
UD
7382 * sysdeps/pthread/pthread.h: Remove duplicate
7383 pthread_cleanup_{push,pop} definitions.
7384
f9657e88
UD
7385 * tst-barrier2.c: Eliminate warnings.
7386 * tst-cancel4.c: Likewise.
7387 * tst-cond4.c: Likewise.
7388 * tst-cond6.c: Likewise.
7389 * tst-detach1.c: Likewise.
7390 * tst-rwlock4.c: Likewise.
7391 * tst-rwlock6.c: Likewise.
7392 * tst-rwlock7.c: Likewise.
7393 * tst-sem3.c: Likewise.
7394 * tst-spin2.c: Likewise.
7395 * tst-umask1.c: Likewise.
7396
69b35e86
UD
73972003-04-07 Ulrich Drepper <drepper@redhat.com>
7398
7399 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7400
c70ad7d7
UD
74012003-04-06 Ulrich Drepper <drepper@redhat.com>
7402
7403 * descr.h (struct pthread): Move cancelhandling member to the front.
7404
54e0138f
UD
74052003-04-05 Ulrich Drepper <drepper@redhat.com>
7406
7407 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7408 malloc_parent, and malloc_child statically.
7409 (__register_atfork_malloc): New function.
7410 (free_mem): Don't free any of the malloc_* variables on the list.
7411 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7412 Define HAVE_register_atfork_malloc.
7413
b22d701b
UD
74142003-04-04 Ulrich Drepper <drepper@redhat.com>
7415
7416 * sysdeps/pthread/createthread.c (create_thread): Add some more
7417 comments explaining when to set multiple_threads and when not.
7418
7419 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7420 THREAD_ATOMIC_BIT_SET if not already defined.
7421 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7422 THREAD_ATOMIC_BIT_SET:
7423 * sysdeps/x86_64/tls.h: Likewise.
7424 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7425 THREAD_ATOMIC_CMPXCHG_VAL.
7426 (_pthread_cleanup_pop_restore): Likewise.
7427 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7428 (__pthread_enable_asynccancel_2): Likewise.
7429 (__pthread_disable_asynccancel): Likewise.
7430 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7431 (__libc_disable_asynccancel): Likewise.
7432 * init.c (sigcancel_handler): Likewise.
7433 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7434 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7435
86246935
UD
74362003-04-03 Ulrich Drepper <drepper@redhat.com>
7437
7438 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7439 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7440 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7441 * Makefile (tests): Add tst-cancel11.
7442 * tst-cancel11.c: New file.
7443
6b4686a5
UD
74442003-04-01 Ulrich Drepper <drepper@redhat.com>
7445
7446 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7447 round, not the first. Use specific_used flag instead of local
7448 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7449 (__free_tcb): Don't call deallocate_tsd here.
7450 (start_thread): Call deallocate_tsd here.
7451 * pthread_setspecific.c: Set specific_used flag really only when
7452 needed.
0d73a73b 7453 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7454 * tst-tsd3.c: New file.
0d73a73b 7455 * tst-tsd4.c: New file.
6b4686a5 7456
42b2395d
UD
74572003-03-31 Ulrich Drepper <drepper@redhat.com>
7458
211d90c5
UD
7459 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7460 Use atomic_exchange_and_add instead of __lll_add.
7461 (__lll_mutex_timedlock): Likewise.
7462 Patch by Ian Wienand.
7463
74642003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7465
7466 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7467 (SINGLE_THREAD_P): Fix typo.
7468 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7469
74702003-03-31 Ulrich Drepper <drepper@redhat.com>
7471
7472 * Makefile (tests): Add tst-align.
7473 * tst-align.c: New file.
7474 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7475
42b2395d
UD
7476 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7477 function correctly.
7478
211d90c5
UD
7479 * tst-tsd2.c: Add casts to avoid warnings.
7480
163b180f
UD
74812003-03-30 Ulrich Drepper <drepper@redhat.com>
7482
7483 * descr.h (struct pthread): Move most often used elements to the front.
7484
ea473bad
UD
74852003-03-29 Ulrich Drepper <drepper@redhat.com>
7486
7487 * Makefile (libpthread-routines): Add pthread_atfork.
7488 (libpthread-static-only-routines): Add pthread_atfork.
7489
dd731d53
UD
74902003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7491
7492 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7493 of TLS_DTV_AT_TP.
7494 (INSTALL_DTV): Add parens.
7495 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7496 Use passed descr instead of THREAD_SELF.
7497 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7498 (__lll_mutex_timedlock_wait): Correct expected value after
7499 spurious wakeup.
7500 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7501 Release lock before waking up the waiters.
7502 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7503 criteria. Reorderstruct passed to cleanup handler. Fix
7504 handling of cancellation and failung pthread_mutex_unlock call.
7505 Use __pthread_enable_asynccancel_2 instead of
7506 __pthread_enable_asynccancel.
7507 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7508 Return result of lock re-get if it fails.
7509 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7510 for __pthread_cleanup_push.
7511 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7512 completely broken rwlock implementation.
7513 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7514 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7515 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7516 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7517 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7518 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7519 versioned_symbol macro.
7520 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7521 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7522
c75d02f0
UD
75232003-03-27 Ulrich Drepper <drepper@redhat.com>
7524
5f5004df
UD
7525 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7526 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7527 and __helper_tid.
7528 (struct timer): Remove th and bar field.
7529 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7530 debugging code. Create only one helper thread.
7531 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7532 helper thread.
7533 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7534 Renamed. Define statically. Use thread info from siginfo.
7535 (__helper_once): New variable.
7536 (__helper_tid): New variable.
7537 (__reset_helper_control): New function.
7538 (__start_helper_thread): New function.
7539
18d009ca
UD
7540 * pthread_create.c (start_thread): Don't use setjmp inside
7541 __builtin_expect to work around gcc bug.
7542
c75d02f0
UD
7543 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7544 timer_delete syscall fails, but not with ENOSYS, set
7545 __no_posix_timers.
7546
7547 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7548 (timer_settime): Fix typo.
28cf3058
UD
7549 * sysdeps/unix/sysv/linux/timer_getoverr.c
7550 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7551
049ac259
JJ
75522003-03-27 Jakub Jelinek <jakub@redhat.com>
7553
7554 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7555 offset of cleanupbuf.__prev.
7556
f93d39dd
JJ
75572003-03-26 Jakub Jelinek <jakub@redhat.com>
7558
7559 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7560 of included file.
7561
f064e4c5
UD
75622003-03-26 Ulrich Drepper <drepper@redhat.com>
7563
7564 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7565 NULL provide default definition to syscall.
7566
83e886a3
RM
75672003-03-25 Roland McGrath <roland@redhat.com>
7568
7569 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7570 (timer_id2ptr): Fix typo.
7571
09402f5b
UD
75722003-03-25 Ulrich Drepper <drepper@redhat.com>
7573
7574 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7575 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7576 * sysdeps/ia64/pthreaddef.h: Likewise.
7577 * sysdeps/powerpc/pthreaddef.h: Likewise.
7578 * sysdeps/s390/pthreaddef.h: Likewise.
7579 * sysdeps/sh/pthreaddef.h: Likewise.
7580 * sysdeps/x86_64/pthreaddef.h: Likewise.
7581 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7582 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7583 being changed.
7584 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7585 SIGTIMER is not unblocked.
7586 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7587 RT signal taken.
7588 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7589 be send.
7590 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7591 pass pointer through as ID.
7592 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7593 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7594 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7595 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7596 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7597 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7598 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7599 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7600 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7601 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7602 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7603 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7604 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7605 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7606 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7607 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7608 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7609 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7610 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7611 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7612 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7613 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7614 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7615 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7616 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7617 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7618 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7619 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7620 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7621 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7622 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7623 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7624 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7625
7626 * pthreadP.h: Remove FRAME_LEFT definition.
7627 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7628 already left frame. Programs which have this problem are not POSIX
7629 compliant.
7630 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7631
5e826ab5
UD
76322003-03-24 Ulrich Drepper <drepper@redhat.com>
7633
7634 * sysdeps/pthread/tst-timer.c: Check return values of the
7635 functions we test.
7636
b910f788
RM
76372003-03-23 Roland McGrath <roland@redhat.com>
7638
3045a1fe
RM
7639 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7640 * tst-tls3mod.c: Likewise.
7641 * tst-tls1.c: Likewise.
7642 * tst-tls2.c: Likewise.
7643
85047fe3
RM
7644 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7645 undefined behavior.
7646
b910f788
RM
7647 * tst-join5.c (tf1, tf2): Add a cast.
7648
7649 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7650
7651 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7652 Don't test anything.
7653 * tst-cond4.c: Likewise.
7654 * tst-cond6.c: Likewise.
7655 * tst-flock2.c: Likewise.
7656 * tst-mutex4.c: Likewise.
7657 * tst-rwlock4.c: Likewise.
7658 * tst-signal1.c: Likewise.
7659 * tst-spin2.c: Likewise.
7660 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7661
7662 * tst-mutex4.c: Use test-skeleton.c.
7663 * tst-spin2.c: Likewise.
7664 * tst-sysconf.c: Likewise.
7665 * tst-barrier2.c: Likewise.
7666 * tst-cond4.c: Likewise.
7667 * tst-cond6.c: Likewise.
7668 * tst-rwlock4.c: Likewise.
7669 * tst-unload.c: Likewise.
7670 * tst-flock2.c (do_test): Use return instead of exit.
7671
4baa087a
RM
76722003-03-22 Jakub Jelinek <jakub@redhat.com>
7673
7674 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7675
5a3ab2fc
UD
76762003-03-21 Ulrich Drepper <drepper@redhat.com>
7677
9f07eae2
UD
7678 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7679 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7680 instead of __lll_compare_and_swap.
7681 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7682 Likewise.
7683 Removed definition if __lll_compare_and_swap.
7684
5a3ab2fc
UD
7685 * cancellation.c: Adjust for new form of compare&exchange macros.
7686 * cleanup_defer.c: Likewise.
7687 * init.c: Likewise.
7688 * libc-cancellation.c: Likewise.
7689 * old_pthread_cond_broadcast.c: Likewise.
7690 * old_pthread_cond_signal.c: Likewise.
7691 * old_pthread_cond_timedwait.c: Likewise.
7692 * old_pthread_cond_wait.c: Likewise.
7693 * pthread_cancel.c: Likewise.
7694 * pthread_create.c: Likewise.
7695 * pthread_detach.c: Likewise.
7696 * pthread_join.c: Likewise.
7697 * pthread_key_delete.c: Likewise.
7698 * pthread_setcancelstate.c: Likewise.
7699 * pthread_setcanceltype.c: Likewise.
7700 * pthread_timedjoin.c: Likewise.
7701 * pthread_tryjoin.c: Likewise.
7702 * sysdeps/pthread/createthread.c: Likewise.
7703
b1aea098
UD
77042003-03-20 Ulrich Drepper <drepper@redhat.com>
7705
7706 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7707 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7708 definitions. Replace uses with calls to atomic_* functions.
7709 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7710 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7711 __lll_test_and_set calls with atomic_exchange_and_add and
7712 atomic_exchange calls respectively.
7713 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7714 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7715 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7716 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7717 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7718 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7719 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7720
7721 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7722 returns the old value.
7723
100a7100
RM
77242003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7725
7726 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7727 int for variable OLDVAL and correct inline assembler contraint.
7728 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7729 type int for variable OLD.
7730
7731 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7732 only for s390-32.
7733 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7734 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7735 instead of multiple_threads field in the TCB.
7736
95767b36
UD
77372003-03-19 Ulrich Drepper <drepper@redhat.com>
7738
4009bf40
UD
7739 * sysdeps/i386/i686/bits/atomic.h: Removed.
7740 * sysdeps/i386/i586/bits/atomic.h: Removed.
7741 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7742 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7743 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7744 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7745 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7746 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7747 * atomic.h: Removed. Moved to glibc.
7748
560a784f
UD
7749 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7750 support for clock selection.
7751
95767b36
UD
7752 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7753 signalling waiters.
7754
043ad426
RM
77552003-03-18 Roland McGrath <roland@redhat.com>
7756
94659495
RM
7757 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7758 Add __lll_rel_instr first. Add memory clobber.
7759 (lll_mutex_unlock): Use __lll_test_and_set.
7760 From Paul Mackerras <paulus@samba.org>.
7761
7762 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7763 unconditionally.
7764 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7765 (SINGLE_THREAD_P): Add `header.' prefix.
7766 From Paul Mackerras <paulus@samba.org>.
7767
043ad426
RM
7768 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7769 pthread_timedjoin_np to ...
7770 (libpthread: GLIBC_2.3.3): ... here.
7771 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7772
7773 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7774 Avoid shadowing VAL variable.
7775
7776 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7777 New macro.
7778
86a9ee5e
UD
77792003-03-18 Ulrich Drepper <drepper@redhat.com>
7780
ac9e0aa1
UD
7781 * Makefile (tests): Add tst-cond11.
7782 * tst-cond11.c: New file.
7783
a14b373c
UD
7784 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7785 struct passed to cleanup handler to eliminate one more
7786 instruction.
7787 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7788
24a49f38
UD
7789 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7790 (pthrad_cond_t): Replace __unused field with __clock.
7791
7792 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7793 waken all waiters in cleanup handler.
7794 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7795 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7796
86a9ee5e
UD
7797 * pthread_condattr_getclock.c: New file.
7798 * pthread_condattr_setclock.c: New file.
7799 * sysdeps/pthread/pthread.h: Declare these new functions.
7800 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7801 * Makefile (libpthread-routines): Add the new functions.
7802 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7803 Renamed field to value. Document use of the bits.
7804 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7805 change.
7806 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7807 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7808 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7809 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7810 Add __clock field.
7811 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7812 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7813 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7814 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7815 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7816 Implement clock selection.
7817 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7818 * pthread-errnos.sym: Add ENOSYS.
7819 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7820 _POSIX_CLOCK_SELECTION.
7821 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7822
7823 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7824 invalid .size directive.
7825
98054a05
RM
78262003-03-17 Roland McGrath <roland@redhat.com>
7827
7828 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7829 Formatting tweaks.
7830
001bea71
UD
78312003-03-17 Ulrich Drepper <drepper@redhat.com>
7832
4773086e
UD
7833 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7834 Use __lll_add instead of spelling it out. Use protected symbol names.
7835 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7836 Use __lll_add.
7837 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7838 Renamed from lll_compare_and_swap. Use new name where necessary.
7839 (__lll_add): Defined.
7840 (__lll_dec_if_positive): Defined.
7841 (__lll_test_and_set): Defined.
7842 * sysdeps/ia64/pthread_spin_init.c: Removed.
7843 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7844 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7845 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7846 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7847 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7848 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7849 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7850 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7851 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7852 __sync_lock_release_si.
7853 Patch by Jakub Jelinek.
7854
7855 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7856 Fix timeout handling.
7857 (__lll_timedwait_tid): Likewise.
7858 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7859 Patch by Jakub Jelinek.
7860
7861 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7862
de4471dd
RM
78632003-03-17 Roland McGrath <roland@redhat.com>
7864
7865 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7866 * sysdeps/pthread/pthread_spin_init.c: New file.
7867 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7868 * sysdeps/powerpc/Makefile: New file.
7869 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7870 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7871 * sysdeps/powerpc/pthreaddef.h: New file.
7872 * sysdeps/powerpc/tcb-offsets.sym: New file.
7873 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7874 * sysdeps/powerpc/tls.h: New file.
7875 * sysdeps/powerpc/bits/atomic.h: New file.
7876 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7877 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7878 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7879
de4471dd
RM
7880 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7881 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7882 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7883 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7884 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7885 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7886 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7887 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7888 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7889 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7890 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7891 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
7892 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
7893 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
7894 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
7895
7896 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
7897 not gettimeofday.
7898 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
7899 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7900 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
7901 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
7902 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7903
5778033f
UD
79042003-03-17 Ulrich Drepper <drepper@redhat.com>
7905
7906 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
7907 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7908 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7909 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7910 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
7911
796038f8
RM
79122003-03-16 Roland McGrath <roland@redhat.com>
7913
7914 * tst-fork4.c: Include <string.h>.
7915 * tst-signal2.c: Likewise.
7916 * tst-mutex5.c (do_test): exit -> return.
7917 * tst-mutex2.c: Include <stdlib.h>.
7918
51d0678c
UD
79192003-03-16 Ulrich Drepper <drepper@redhat.com>
7920
5778033f
UD
7921 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7922 (__lll_mutex_timedlock_wait): Correct expected value after
7923 spurious wakeup. Otherwise we would never wait again.
7924
b6e2f87a
UD
7925 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
7926 zone versus inline asm stupidity. Use correct instructions.
7927
51d0678c
UD
7928 * tst-rwlock6.c: Add some more status output.
7929
8112cc70
RM
79302003-03-15 Roland McGrath <roland@redhat.com>
7931
7932 * sysdeps/pthread/configure.in: New file.
7933 * sysdeps/pthread/configure: New file (generated).
7934
49773c19
UD
79352003-03-15 Ulrich Drepper <drepper@redhat.com>
7936
7937 * allocatestack.c (allocate_stack): Store the exact stack size of
7938 user allocated stacks.
7939
eec0ca9f
JJ
79402003-03-15 Jakub Jelinek <jakub@redhat.com>
7941
7942 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
7943 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
7944 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7945 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
7946 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
7947 Use `header.' prefix.
7948 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7949
a87731e2
UD
79502003-03-15 Ulrich Drepper <drepper@redhat.com>
7951
7952 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
7953 __builtin_frame_address, use stack pointer.
7954
7955 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
7956 instead of __builtin_frame_pointer.
7957
e22a221d
UD
79582003-03-14 Ulrich Drepper <drepper@redhat.com>
7959
92ed3daf
UD
7960 * tst-basic1.c (do_test): Add cast to avoid warning.
7961 * tst-basic2.c (do_test): Likewise.
7962
9b89567d
UD
7963 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
7964 amount of stack correction.
7965
e22a221d
UD
7966 * tst-fork4.c: Use test-skeleton.c.
7967
2e49caba
RM
79682003-03-14 Roland McGrath <roland@redhat.com>
7969
7970 * init.c: Fix typo "#eli" for "#else".
7971
415ef7d8
RM
79722003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
7973
7974 * allocatestack.c (__stack_user): Use hidden_data_def.
7975 * pthread_create.c (__pthread_keys): Likewise.
7976
7977 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
7978
52287505
RM
79792003-03-14 Roland McGrath <roland@redhat.com>
7980
415ef7d8
RM
7981 * tst-fork4.c: New file.
7982 * Makefile (tests): Add it.
7983
52287505
RM
7984 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
7985 we always define the padding space.
7986 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
7987 stopped supporting its own extensions fully.
7988 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
7989 struct also called `header', so `header.multiple_threads' is the field
7990 name to use on all machines.
7991 * allocatestack.c (allocate_stack): Use `header.' prefix.
7992 * sysdeps/pthread/createthread.c (create_thread): Likewise.
7993 * pthread_create.c (__pthread_create_2_1): Likewise.
7994 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
7995 (THREAD_SELF): Likewise.
7996 * sysdeps/x86_64/tls.h: Likewise.
7997 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
7998 (SINGLE_THREAD_P): Likewise.
7999 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8000 (SINGLE_THREAD_P): Likewise.
8001 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8002 (SINGLE_THREAD_P): Likewise.
8003
8004 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
8005 value directly.
8006
c44bf9aa
UD
80072003-03-14 Ulrich Drepper <drepper@redhat.com>
8008
e22a221d
UD
8009 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
8010 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
8011
0eb18281
UD
8012 * pthread_create.c (start_thread): setjmp is expected to return 0.
8013
c44bf9aa
UD
8014 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
8015 (THREAD_GETMEM_NC): Likewise.
8016
564cd8b6
UD
80172003-03-13 Ulrich Drepper <drepper@redhat.com>
8018
8019 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
8020 and the size of the stack which must be allocated is a multiple,
8021 allocate one more page.
8022 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
8023 MULTI_PAGE_ALIASING.
8024
6461e577
RM
80252003-03-13 Roland McGrath <roland@redhat.com>
8026
8027 * pthread_create.c (start_thread): Set EXITING_BIT after the
8028 event-reporting (and destructors), not before.
8029
b5ec5617
UD
80302003-03-13 Jakub Jelinek <jakub@redhat.com>
8031
6461e577
RM
8032 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
8033 lll_futex_wake): Declare register variables as long int instead of
8034 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
8035 Make syscall arguments clobbered by the syscall.
8036 (lll_futex_wait): Define using lll_futex_timed_wait.
8037
8038 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
8039 to void *.
8040
8041 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
8042 PPID if [! NDEBUG].
8043
8044 * allocatestack.c (nptl_ncreated): Only declare if
8045 COLORING_INCREMENT != 0.
8046
8047 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
8048 (__libc_enable_asynccancel_2): Remove prototype.
8049
b5ec5617
UD
8050 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
8051 ctid to match kernel.
8052
d0369fb8
UD
80532003-03-12 Ulrich Drepper <drepper@redhat.com>
8054
7588880f
UD
8055 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
8056 libc_multiple_threads.
8057 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
8058 __libc_multiple_threads to...
8059 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
8060
8061 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
8062 versioning.
8063 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8064 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8065
8066 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
8067 (__pthread_once_internal): Define.
8068
8069 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
8070 macros instead of .symver directly.
8071 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8072 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8073
d0369fb8
UD
8074 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
8075 * sysdeps/x86_64/tcb-offsets.sym: New file.
8076 * sysdeps/x86_64/Makefile: New file.
8077
8078 * sysdeps/i386/tcb-offsets.sym: Add SELF.
8079 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
8080 to access own pthread_t in TCB.
8081 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8082 Likewise.
8083 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8084 Likewise.
8085 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8086
0bb2ac85
RM
80872003-03-12 Roland McGrath <roland@redhat.com>
8088
8089 * pthread-errnos.sym: New file.
8090 * Makefile (gen-as-const-headers): New variable, list that file.
8091 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
8092 header <pthread-errnos.h> instead of defining errno values here.
8093 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8094 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8095 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8096 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8097 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8098 Likewise.
8099 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8100 Likewise.
8101 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8102 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8103 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8104 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8105 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8106 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8107 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8108 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8109 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8110 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8111 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
8112 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
8113 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8114 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
8115 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
8116 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8117 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8118 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8119 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8120 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8121 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8122 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8123 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
8124 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
8125 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
8126 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8127 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8128
8129 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
8130 CLONE_CHILD_SETTID worked.
8131
35e148cb
UD
81322003-03-12 Ulrich Drepper <drepper@redhat.com>
8133
d0369fb8
UD
8134 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
8135 file.
8136 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
8137 file.
8138
8139 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8140 (pthread_cond_t): Add padding.
8141
da49194d
UD
8142 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
8143 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
8144 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
8145
35e148cb
UD
8146 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
8147 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
8148 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
8149 (__pthread_rwlock_timedrdlock): Likewise.
8150 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
8151 (__pthread_rwlock_wrlock): Likewise.
8152 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
8153 (__pthread_rwlock_rdlock): Likewise.
8154
8155 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
8156
8157 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
8158 result of lock re-get if it fails.
8159
3e976b96
UD
81602003-03-11 Ulrich Drepper <drepper@redhat.com>
8161
5a03acfe
UD
8162 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
8163 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
8164 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8165 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
8166 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8167 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8168 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8169 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8170 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8171 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8172
8173 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
8174 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
8175
8176 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
8177 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
8178 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
8179 (create_thread): Likewise.
8180 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
8181 * init.c (__pthread_initialize_minimal_internal): Initialize
8182 __libc_multiple_threads_ptr if necessary.
8183 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
8184 __pthread_multiple_threads and __libc_multiple_threads_ptr.
8185 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
8186 __libc_multiple_threads.
8187 (__libc_pthread_init): Return pointer to __libc_pthread_init if
8188 necessary.
8189
8190 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
8191 (THREAD_SETMEM_NC): Likewise.
8192
8193 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
8194 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
8195 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
8196 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
8197
8198 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
8199 Eliminate one entire instruction.
8200
32a589b1
UD
8201 * cancellation.c (__pthread_enable_asynccancel_2): New function.
8202 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
8203 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8204 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
8205 instead of __pthread_enable_asynccancel.
8206 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8207 (__pthread_cond_wait): Likewise.
8208 * sysdeps/pthread/pthread_cond_timedwait.c
8209 (__pthread_cond_timedwait): Likewise.
8210 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
8211
3e976b96
UD
8212 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8213 (__condvar_cleanup): Wake up all waiters in case we got signaled
8214 after being woken up but before disabling asynchronous
8215 cancellation.
8216 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8217 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
8218 (__condvar_cleanup): Likewise.
8219
8220 * init.c (__NR_set_tid_address): If already defined, don't redefine.
8221 Make it an error if architecture has no #if case. Add x86-64.
8222
8223 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
8224 pt-initfini.s generation.
8225
8226 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
8227 (TLS_INIT_TP): Fix typo.
8228
6c477888
UD
82292003-03-11 Jakub Jelinek <jakub@redhat.com>
8230
8231 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
8232 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
8233
8234 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
8235 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8236 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
8237 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
8238 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
8239 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8240 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8241 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
8242
ea694823
UD
82432003-03-11 Ulrich Drepper <drepper@redhat.com>
8244
6c477888
UD
8245 * sysdeps/pthread/pthread_cond_timedwait.c
8246 (__pthread_cond_timedwait): Return the result of the final
8247 locking. If it succeeds, the regular function return value.
8248
8249 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
8250 Return result of the final locking.
8251 * version.c (__nptl_main): Work around problems with the strange
8252 INTERNAL_SYSCALL macro on ppc32.
8253 * init.c (__pthread_initialize_minimal_internal): Unblock
8254 SIGCANCEL in case the parent blocked it.
8255 Reported by Paul Mackerras <paulus@samba.org>.
8256
ea694823
UD
8257 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
8258 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
8259 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
8260
b33e6163
RM
82612003-03-11 Jakub Jelinek <jakub@redhat.com>
8262
8263 * sysdeps/pthread/pthread_cond_timedwait.c
8264 (__pthread_cond_timedwait): Unlock and fail if
8265 __pthread_mutex_unlock_internal failed.
8266
8267 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
8268 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
8269 Use ARCH_CLONE.
8270 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
8271 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
8272 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
8273 ALLOCATE_STACK): New macros.
8274 (TLS_TPADJ): New macro.
8275 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
8276 (allocate_stack): Handle TLS_DTV_AT_TP and
8277 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
8278 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
8279 Don't set PD->self.
8280 * init.c [__ia64__] (__NR_set_tid_address): Define.
8281
8282 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
8283 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
8284 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
8285 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
8286 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
8287 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
8288 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
8289 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
8290 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
8291 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
8292 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
8293 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
8294 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
8295 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
8296 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
8297 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
8298 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
8299 * sysdeps/ia64/bits/atomic.h: New file.
8300 * sysdeps/ia64/Makefile: New file.
8301 * sysdeps/ia64/pthread_spin_init.c: New file.
8302 * sysdeps/ia64/pthread_spin_lock.c: New file.
8303 * sysdeps/ia64/pthread_spin_trylock.c: New file.
8304 * sysdeps/ia64/pthread_spin_unlock.c: New file.
8305 * sysdeps/ia64/pthreaddef.h: New file.
8306 * sysdeps/ia64/tcb-offsets.sym: New file.
8307 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
8308 * sysdeps/ia64/tls.h: New file.
8309
8310 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
8311 to syscall instead of no arguments.
8312
2b30b2e5
UD
83132003-03-10 Ulrich Drepper <drepper@redhat.com>
8314
db5f2fc9
UD
8315 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
8316 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
8317 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
8318 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
8319
8320 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
8321 unused code.
8322
6a4263e3
UD
8323 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
8324
3de7c2a9
UD
8325 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8326 lowlevelbarrier.sym.
8327 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8328 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8329 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8330 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8331
2a544d82
UD
8332 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8333 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8334 (__lll_mutex_timedlock_wait): Likewise.
8335 (lll_mutex_lock): Adjust asm for that.
8336 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8337 (lll_lock): Adjust asm for operand order change.
8338 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8339 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8340
ec06436c
UD
8341 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8342 Reverse order of parameters.
8343 (__lll_timedwait_tid): Remove regparms attribute.
8344 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8345 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8346
3273832c
UD
8347 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8348 (__lll_timedwait_tid): Remove one unnecessary instruction.
8349
51f32ab8
UD
8350 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8351 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8352 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8353 lowlevelmutex.S.
8354
8355 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8356 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8357 for NOT_IN_libc.
8358 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8359 lowlevellock.S.
8360
fad48d9e
UD
8361 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8362 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8363 for libc.so.
8364 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8365 define LOCK here (if UP is not defined). The actual code is in
8366 lowlevelmutex.S.
8367
9356d063
UD
8368 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8369 LOCK is already defined. Don't define lll_unlock_wake_cb and
8370 __lll_timedwait_tid for libc.so.
8371 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8372 define LOCK here (if UP is not defined). The actual code is in
8373 lowlevellock.S.
8374
ebf0cbc5 8375 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8376 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8377 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8378 instead of lowlevelsem.h.
8379 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8380 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8381 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8382
c915e5ad
UD
8383 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8384 lowlevelrwlock.sym.
8385 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8386 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8387 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8388
4c3c2e8a
UD
8389 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8390 register loading.
8391 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8392 last changed. D'oh.
8393
2b30b2e5
UD
8394 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8395
8396 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8397 of __libc_locking_needed.
8398 (lll_trylock): Initialize %eax to zero.
8399
2b30b2e5
UD
8400 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8401 pthread_cond_t definition.
8402
e48f9638
RM
84032003-03-10 Roland McGrath <roland@redhat.com>
8404
8405 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8406 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8407 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8408 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8409 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8410
8411 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8412 Instead of setting PD->multiple_threads, set globals
8413 __pthread_multiple_threads and __libc_multiple_threads.
8414 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8415 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8416 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8417
8418 * descr.h (struct pthread): Conditionalize first member on
8419 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8420 containing an anonymous tcbhead_t. Move `list' member out.
8421 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8422 * allocatestack.c: Remove use of `header.data.' prefix.
8423 * pthread_create.c: Likewise.
8424 * init.c (__pthread_initialize_minimal_internal): Likewise.
8425 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8426 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8427 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8428 * sysdeps/x86_64/tls.h: Likewise.
8429 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8430 (SINGLE_THREAD_P): Likewise.
8431 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8432 (SINGLE_THREAD_P): Likewise.
8433 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8434 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8435
c37cae9e
UD
84362003-03-09 Ulrich Drepper <drepper@redhat.com>
8437
d38c777e
RM
8438 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8439
7b44a5e0 8440 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8441 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8442
c2e5e085
UD
8443 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8444 leftovers from the ia32 code.
8445
8446 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8447 memory load.
8448 (clear_once_control): Don't load %esi.
8449
8450 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8451 handling.
8452
8453 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8454
cd4b2a55
UD
8455 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8456 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8457
c37cae9e
UD
8458 * Makefile (tests): Add tst-cond10.
8459 * tst-cond10.c: New file.
8460
d130a341
UD
84612003-03-08 Ulrich Drepper <drepper@redhat.com>
8462
ccf1d573
UD
8463 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8464 * tst-signal3.c (do_test): Likewise.
8465 * tst-sem5.c (do_test): Likewise.
8466 * tst-kill6.c (do_test): Likewise.
8467 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8468
8469 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8470 of inc/dec.
8471 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8472 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8473 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8474 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8475 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8476 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8477 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8478 Likewise.
8479 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8480 Likewise.
8481 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8482 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8483 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8484 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8485 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8486 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8487 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8488 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8489
d130a341
UD
8490 * allocatestack.c (allocate_stack): If mprotect() fails free the
8491 TLS memory.
8492
bc6389ad
UD
84932003-03-07 Ulrich Drepper <drepper@redhat.com>
8494
41d4d223
UD
8495 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8496
8497 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8498 lll_wake_tid. This was used only to work around kernel limits in
8499 the early days.
8500 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8501 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8502 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8503 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8504
bc6389ad
UD
8505 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8506 (__pthread_initialize_minimal_internal): Change initialization of
8507 __static_tls_align_m1 appropriately.
8508 * pthreadP.h (__static_tls_align_m1): Renamed from
8509 __static_tls_align.
8510 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8511 instead of __static_tls_align-1.
8512
cc775edf
UD
85132003-03-04 Ulrich Drepper <drepper@redhat.com>
8514
0de28d5c 8515 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8516
518b5308
UD
8517 * pthread_create.c: Define __pthread_keys using nocommon
8518 attribute, not by placing it explicitly in bss.
8519 Remove DEFINE_DEALLOC definition. Not needed anymore.
8520
8521 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8522 Use it in mmap call to allocate stacks.
8523
8524 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8525
cc775edf
UD
8526 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8527 result of the thread function.
8528
4f6f0a8f
UD
85292003-03-03 Ulrich Drepper <drepper@redhat.com>
8530
f04a2721
UD
8531 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8532 version is just fine.
8533
4f6f0a8f
UD
8534 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8535 (__pthread_child_handler): Renamed from pthread_child_handler,
8536 exported, and marked hidden. Change all users.
8537 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8538 free __pthread_child_handler from child list.
8539
7ce5c164
UD
85402003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8541
8542 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8543
8544 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8545 Fix handling of cancellation and failing pthread_mutex_unlock call.
8546 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8547 (__pthread_cond_wait): Likewise.
8548
8549 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8550 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8551 lll_futex_timed_wait call.
8552 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8553 (pthread_rwlock_timedwrlock): Likewise.
8554
8555 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8556 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8557 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8558
8559 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8560 check of lll_futex_wake return value.
8561
ea6a015b
RM
85622003-03-03 Roland McGrath <roland@redhat.com>
8563
8564 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8565
8566 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8567 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8568 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8569
4adacf57
UD
85702003-03-02 Ulrich Drepper <drepper@redhat.com>
8571
1be3d664
UD
8572 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8573 error for CPU clocks.
8574
885bafa1
UD
8575 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8576 _POSIX_MONOTONIC_CLOCK.
8577 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8578
4adacf57
UD
8579 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8580 recent kernels.
8581
86bfff4d
UD
85822003-03-01 Ulrich Drepper <drepper@redhat.com>
8583
8584 * descr.h (struct pthread): Move cleanup field to the front.
8585
d1149385
RM
85862003-03-01 Roland McGrath <roland@redhat.com>
8587
8588 * sem_open.c (sem_open): Braino fix.
8589
bd8bb78b
UD
85902003-03-01 Ulrich Drepper <drepper@redhat.com>
8591
748bec08
UD
8592 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8593 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8594 __pthread_cleanup_pop functionality.
8595 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8596
bd8bb78b
UD
8597 * descr.h (struct pthread): Move tid field to the front now that
8598 it is often used.
8599
8600 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8601 (__lll_mutex_timedlock_wait): Remove.
8602 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8603 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8604 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8605 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8606 (lll_unlock_wake_cb): Don't save and restore %esi.
8607 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8608 %esi.
8609 (__lll_timedwait_tid): Add alignment.
8610 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8611 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8612 %esi.
8613 (__lll_timedwait_tid): Removed.
8614 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8615 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8616 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8617 (pthread_barrier_wait): Don't save, load, and restore %esi for
8618 last thread.
8619 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8620 (__pthread_cond_signal): Don't save, load, and restore %esi.
8621 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8622 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8623 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8624 Don't save, load, and restore %esi.
8625
d2637c70
UD
86262003-02-27 Ulrich Drepper <drepper@redhat.com>
8627
567fb22a
UD
8628 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8629 Release lock before waking up the waiters.
8630
427f5fa1
UD
8631 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8632
a2d83cfb
UD
8633 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8634 (reader_thread): Likewise.
8635
d2637c70
UD
8636 * sysdeps/pthread/pthread_rwlock_unlock.c
8637 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8638 to wake up readers if there are none.
8639
8640 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8641 Release internal lock before wake threads.
8642
b1531183
UD
86432003-02-26 Ulrich Drepper <drepper@redhat.com>
8644
dbf6131c
UD
8645 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8646 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8647 predefined.
8648 * tst-rwlock9.c: Likewise.
8649 * tst-rwlock10.c: New file.
8650 * tst-rwlock11.c: New file.
8651
695799fe
UD
8652 * Makefile (tests): Add tst-dlsym1.
8653 * tst-dlsym1.c: New file.
8654
b1531183
UD
8655 * init.c (__pthread_initialize_minimal_internal): Set
8656 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8657 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8658
3724f268
UD
86592003-02-24 Ulrich Drepper <drepper@redhat.com>
8660
3857ca78
UD
8661 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8662
80d80779
UD
8663 * tst-cond2.c: Fix sychronization with child.
8664
86371308
UD
8665 * tst-rwlock8.c (reader_thread): Remove unused variable.
8666
ffeb4481
UD
8667 * Makefile: Add rules to build and run tst-tls3.
8668 * tst-tls3.c: New file.
8669 * tst-tls3mod.c: New file.
8670
3724f268
UD
8671 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8672 * tst-rwlock8.c: New file.
8673 * tst-rwlock9.c: New file.
8674 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8675 complete broken rwlock implementation.
8676 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8677 Likewise.
8678 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8679 Likewise.
8680 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8681 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8682 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8683 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8684 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8685 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8686 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8687
8915cc40
RM
86882003-02-23 Roland McGrath <roland@redhat.com>
8689
8690 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8691
fd1a0d0c
UD
86922003-02-23 Ulrich Drepper <drepper@redhat.com>
8693
ecf28959
UD
8694 * Makefile (tests): Add tst-context1.
8695 * tst-context1.c: New file.
8696
5e47b76b
UD
8697 * Makefile (tests): Add tst-tls1 and tst-tls2.
8698 * tst-tls1.c: New file.
8699 * tst-tls2.c: New file.
8700
5a6bbb41
UD
8701 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8702 for failed cmpxchg.
8703
fd1a0d0c
UD
8704 * pthread_create.c (start_thread): Set EXITING_BIT early.
8705
8706 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8707 (THREAD_GETMEM_NC): Likewise.
8708
757f9fcb
UD
87092003-02-22 Ulrich Drepper <drepper@redhat.com>
8710
b1b8e747
UD
8711 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8712 off 3 more bytes by using offset-less instructions when possible.
8713
c780aa21 8714 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8715
8716 * eintr.c (eintr_source): Add unnecessary return but the compiler
8717 insists.
8718
8719 * tst-kill3.c: Include <unistd.h>.
8720
5148559c
RM
87212003-02-21 Roland McGrath <roland@redhat.com>
8722
8723 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8724
ab2d98e3
UD
87252003-02-21 Ulrich Drepper <drepper@redhat.com>
8726
71028edd
UD
8727 * Makefile (tests): Add tst-eintr1.
8728 (distribute): Add eintr.c.
8729 * tst-eintr1.c: New file.
8730 * eintr.c: New file.
8731
e814f748
UD
8732 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8733
8734 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8735 Disallow sending SIGCANCEL.
8736
ab2d98e3 8737 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8738 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8739 * tst-kill1.c: New file.
8740 * tst-kill2.c: New file.
8741 * tst-kill3.c: New file.
8742 * tst-kill5.c: New file.
9c03686d 8743 * tst-kill6.c: New file.
e814f748
UD
8744 * tst-basic7.c: Renamed to...
8745 * tst-kill4.c: ...this.
ab2d98e3 8746
59fed0e2
RM
87472003-02-21 Roland McGrath <roland@redhat.com>
8748
8749 * Makefile (install-lib-ldscripts): New variable.
8750
49dc759f
UD
87512003-02-21 Ulrich Drepper <drepper@redhat.com>
8752
8c2e9a29
UD
8753 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8754 * pthread_cancel.c: Use INVALID_TD_P.
8755 * pthread_detach.c: Likewise.
8756 * pthread_getschedparam.c: Likewise.
8757 * pthread_setschedparam.c: Likewise.
8758 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8759 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8760 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8761 * pthread_timedjoin.c: Likewise.
8762
8763 * tst-basic7.c: Include <signal.h>.
8764
49dc759f
UD
8765 * pthread_join.c (pthread_join): Limited checking for invalid
8766 descriptors.
8767 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8768
df5803bf
UD
87692003-02-20 Ulrich Drepper <drepper@redhat.com>
8770
c5acd3d7
UD
8771 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8772 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8773 * Makefile (tests): Add tst-key4.
8774 * tst-key4.c: New file.
8775
729924a0
UD
87762003-02-18 Ulrich Drepper <drepper@redhat.com>
8777
2f7dc594
UD
8778 * Makefile (tests): Add tst-basic7.
8779 * tst-basic7.c: New file.
8780
ba25bb0f
UD
8781 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8782 Add some more __builtin_expect.
8783
12fd3c5f 8784 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8785
5430d926
UD
87862003-02-17 Ulrich Drepper <drepper@redhat.com>
8787
b0db7fbe
UD
8788 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8789 _POSIX_THREAD_PRIORITY_SCHEDULING.
8790 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8791 _XOPEN_REALTIME_THREADS.
8792 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8793
8794 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8795 kernel returns EINVAL for PID <= 0, work around it.
8796
ecfda9bd
UD
8797 * Makefile (tests): Add tst-signal5.
8798 * tst-signal5.c: New file.
8799
7d78ab99
UD
8800 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8801 and LOGIN_NAME_MAX.
8802
371a2972
UD
8803 * tst-cancel1.c (tf): Block all signals.
8804
5430d926
UD
8805 * Makefile (tests): Add tst-basic6.
8806 * tst-basic6.c: New file.
8807
8808 * tst-basic1.c: Add test for process ID.
8809
8810 * Makefile (tests): Add tst-cancel10.
8811 * tst-cancel10.c: New file.
8812
8813 * Makefile (tests): Add tst-signal4.
8814 * tst-signal4.c: New file.
8815
8816 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8817 __sigismember instead of sigismember. Add __builtin_expect.
8818
1564916a
UD
88192003-02-16 Ulrich Drepper <drepper@redhat.com>
8820
179ff175
UD
8821 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8822 pthread_setcancelstate, and pthread_rwlock_setpshared.
8823
e4335f9a
UD
8824 * tst-cancel7.c (do_test): Make sure the pid file exists before
8825 canceling the thread.
8826
0a37669a
UD
8827 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8828 pthread_rwlock_timedrdlock tests.
8829 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8830 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8831 Check for invalid tv_nsec field.
8832 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8833 Likewise.
8834
8835 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8836 recursive mutex of overflow.
8837
8838 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8839
e4335f9a 8840 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8841 going into an endless loop.
8842 * Makefile (tests): Add tst-cancel9.
8843 * tst-cancel9.c: New file.
8844
8845 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8846
b270b548
UD
88472003-02-15 Ulrich Drepper <drepper@redhat.com>
8848
1c82b97f
UD
8849 * tst-mutex5.c (do_test): Add more timedlock tests.
8850
b2f05465 8851 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8852 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8853
e798b60f
UD
8854 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8855 use INLINE_SYSCALL. Error number is returned, not -1.
8856
90491dc4
UD
8857 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8858 and __deallocate_stack with internal_function.
8859 * pthread_create.c: Adjust definitions appropriately.
8860 * allocatestack.c: Likewise.
8861
8862 * pthread_join.c: Add one more __builtin_expect.
8863 * pthread_timedjoin.c: Likewise.
8864
8865 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8866 not data of sequence number does not match.
8867 Add one __builtin_expect.
8868
c6247c9d
UD
8869 * Makefile (tests): Add tst-clock1.
8870 * tst-clock1.c: New file.
8871
b270b548
UD
8872 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8873 negative arguments.
8874 * Makefile (tests): Add tst-basic5.
8875 * tst-basic5.c: New file.
8876
700bf7af
UD
88772003-02-14 Ulrich Drepper <drepper@redhat.com>
8878
757de559
UD
8879 * Makefile (tests): Add tst-basic4.
8880 * tst-basic4.c: New file.
8881
47202270
UD
8882 * pthreadP.h: Add declaraction for __nptl_nthreads.
8883 * pthread_create.c: Define __nptl_nthreads
8884 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8885 after thread is done. If then zero, call exit(0).
47202270
UD
8886 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8887 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8888 * init.c (pthread_functions): Initialize ptr_nthreads.
8889 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8890 (__reclaim_stacks): Decrement __nptl_nthreads.
8891 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
8892 Define.
8893 * Makefile (tests): Add tst-basic3.
8894 * tst-basic3.c: New file.
8895
e320ef46
UD
8896 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
8897 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
8898 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
8899 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
8900 if asynchronous canceling is enabled.
8901 * pthread_join.c (pthread_join): When recognizing circular joins,
8902 take into account the other thread might be already canceled.
8903 * Makefile (tests): Add tst-join5.
8904 * tst-join5.c: New file.
8905
700bf7af
UD
8906 * Makefile (tests): Add tst-join4.
8907 * tst-join4.c: New file.
8908
89092003-02-13 Ulrich Drepper <drepper@redhat.com>
8910
8911 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
8912
dac0f772
UD
89132003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
8914
8915 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
8916 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
8917 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
8918 warning.
8919 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
8920 to avoid warning.
8921 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
8922 error if lll_futex_wake failed.
8923
e8cda341
UD
89242003-02-13 Ulrich Drepper <drepper@redhat.com>
8925
a7720b5e
UD
8926 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
8927 handling of cancellation and failung pthread_mutex_unlock call.
8928 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8929 * Makefile (tests): Add tst-cond8 and tst-cond9.
8930 * tst-cond8.c: New file.
8931 * tst-cond9.c: New file.
8932
a1ea4c06
UD
8933 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
8934
8935 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
8936 non-standard initializers with __USE_GNU.
8937
e8cda341
UD
8938 * Makefile (tests): Add tst-cleanup3.
8939 * tst-cleanup3.c: New file.
8940
2067577c
UD
89412003-02-12 Ulrich Drepper <drepper@redhat.com>
8942
89e78a95
UD
8943 * Makefile (tests): Add tst-attr1 and tst-attr2.
8944 * tst-attr1.c: New file.
8945 * tst-attr2.c: New file.
8946
dfdd294a
UD
8947 * Makefile: Add rules to build and run tst-atfork2 test.
8948 * tst-atfork2.c: New file.
8949 * tst-atfork2mod.c: New file.
8950
8951 * sysdeps/unix/sysv/linux/unregister-atfork.c
8952 (__unregister_atfork): Free the memory allocated for the handlers
8953 after removing them from the lists.
8954
8955 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
8956 cleanup function.
8957
8958 * tst-atfork1.c (do_test): Wait for the child we forked.
8959 Report error in child.
8960
8961 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
8962
2067577c
UD
8963 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
8964
2a8a8a84
UD
89652003-02-10 Ulrich Drepper <drepper@redhat.com>
8966
d9dd121e
UD
8967 * Makefile (tests): Add tst-cancel8.
8968 * tst-cancel8.c: New file.
8969
2a8a8a84
UD
8970 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
8971 clearing of control variable.
defd1870 8972 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 8973 * tst-once3.c: New file.
defd1870 8974 * tst-once4.c: New file.
2a8a8a84 8975
a54e8d33
UD
89762003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
8977
8978 * sysdeps/sh/Makefile: New file.
8979 * sysdeps/sh/bits/atomic.h: New file.
8980 * sysdeps/sh/pthread_spin_init.c: New file.
8981 * sysdeps/sh/pthread_spin_lock.c: New file.
8982 * sysdeps/sh/pthread_spin_trylock.S: New file.
8983 * sysdeps/sh/pthread_spin_unlock.S: New file.
8984 * sysdeps/sh/pthreaddef.h: New file.
8985 * sysdeps/sh/tcb-offsets.sym: New file.
8986 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
8987 * sysdeps/sh/tls.h: New file.
8988 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
8989 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
8990 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
8991 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
8992 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
8993 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
8994 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
8995 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
8996 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
8997 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
8998 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
8999 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
9000 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
9001 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
9002 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
9003 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
9004 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
9005 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
9006 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
9007 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
9008 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
9009 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
9010 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
9011 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
9012 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
9013 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
9014 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
9015 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
9016 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
9017 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
9018
696e556e
UD
90192003-02-08 Ulrich Drepper <drepper@redhat.com>
9020
9021 * tst-cond2.c: Rearrange code to not rely on behavior undefined
9022 according to POSIX.
9023
9024 * tst-basic2.c (do_test): Lock mutex before creating the thread.
9025
fef710d6
UD
90262003-02-07 Ulrich Drepper <drepper@redhat.com>
9027
c6180643
UD
9028 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
9029 (TLS_GET_FS): New #define.
9030 (TLS_SET_FS): New #define.
9031 Correct value of __NR_set_thread_area.
9032
fef710d6
UD
9033 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
9034
11090a99
UD
90352003-02-06 Ulrich Drepper <drepper@redhat.com>
9036
65c68990
UD
9037 * Makefile (tests): Add tst-popen1.
9038 * tst-popen1.c: New file.
9039
11090a99
UD
9040 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
9041 but inactive generalization.
9042 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9043 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9044 Minor optimization, remove one instruction.
9045 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9046
a88c9263
UD
90472003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
9048
9049 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
9050
90512003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
9052
9053 * init.c (__NR_set_tid_address): Add #ifdef for s390.
9054 * sysdeps/pthread/pthread_barrier_wait.c: New file.
9055 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
9056 * sysdeps/pthread/pthread_cond_signal.c: New file.
9057 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
9058 * sysdeps/pthread/pthread_cond_wait.c: New file.
9059 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
9060 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
9061 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
9062 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
9063 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
9064 * sysdeps/s390/Makefile: New file.
9065 * sysdeps/s390/bits/atomic.h: New file.
9066 * sysdeps/s390/pthread_spin_init.c: New file.
9067 * sysdeps/s390/pthread_spin_lock.c: New file.
9068 * sysdeps/s390/pthread_spin_trylock.c: New file.
9069 * sysdeps/s390/pthread_spin_unlock.c: New file.
9070 * sysdeps/s390/pthreaddef.h: New file.
9071 * sysdeps/s390/tcb-offsets.sym: New file.
9072 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
9073 * sysdeps/s390/tls.h: New file.
9074 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
9075 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
9076 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
9077 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
9078 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
9079 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
9080 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9081 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
9082 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
9083 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
9084 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
9085 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
9086 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
9087 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
9088 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
9089 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
9090 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
9091 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
9092 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
9093 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
9094 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
9095 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9096 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
9097
6f1cff95
UD
90982003-02-04 Ulrich Drepper <drepper@redhat.com>
9099
ec609a8e
UD
9100 * atomic.h: Add a couple more default implementations.
9101 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
9102 __arch_compare_and_exchange_32_acq in return value definition. It
9103 always exists.
9104 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 9105 Add missing atomic_ prefixes.
e3ec8904 9106
6f1cff95
UD
9107 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
9108 thread library is available, use correct value to mark initialized
9109 once variable.
9110
4f088329
UD
91112003-02-03 Ulrich Drepper <drepper@redhat.com>
9112
6f1cff95
UD
9113 * allocatestack.c (allocate_stack): Use __getpagesize instead of
9114 __sysconf to determine pagesize.
9115
3e4fc359 9116 * pthread_create.c: Include <atomic.h>.
4f088329
UD
9117 * allocatestack.c (allocate_stack): Implement coloring of the
9118 allocated stack memory. Rename pagesize to pagesize_m1. It's the
9119 size minus one. Adjust users.
3e4fc359 9120 * sysdeps/i386/i686/Makefile: New file.
4f088329 9121
2f42e8be
UD
91222003-02-02 Ulrich Drepper <drepper@redhat.com>
9123
4301f7e2
UD
9124 * allocatestack.c: Improve comment throughout the file.
9125
2f42e8be 9126 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 9127 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
9128 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9129 (__lll_lock_wait): Likewise.
9130 (lll_unlock_wake_cb): Removed.
9131
4a7d6545
UD
91322003-01-31 Ulrich Drepper <drepper@redhat.com>
9133
9134 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
9135 _POSIX_THREAD_PRIORITY_SCHEDULING.
9136
886d5973
UD
91372003-01-30 Jakub Jelinek <jakub@redhat.com>
9138
9139 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9140 Fix return type of ptr___pthread_getspecific.
9141
e474ca78
UD
91422003-01-29 Ulrich Drepper <drepper@redhat.com>
9143
9144 * Makefile (tests): Add tst-umask1.
9145 (tst-umask1-ARGS): Define.
9146 * tst-umask1.c: New file.
9147
e6ebd2e4
UD
91482003-01-28 Ulrich Drepper <drepper@redhat.com>
9149
6cf26f41
UD
9150 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
9151 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
9152 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
9153 pthread_rwlock_unlock.
9154 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
9155 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
9156 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
9157 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
9158 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9159 New file.
9160 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
9161 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9162 New file.
9163 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
9164 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
9165 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
9166 New file.
9167 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
9168 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
9169 New file.
9170 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
9171 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
9172 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
9173 New file.
9174 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
9175 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
9176 New file.
9177 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
9178
1d087a7e
UD
9179 * Makefile (libpthread-routines): Remove lowlevelcond and
9180 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
9181 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
9182 and pthread_cond_broadcast.
4a99d160
UD
9183 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
9184 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
9185 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
9186 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
9187 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
9188 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
9189 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
9190 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
9191 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
9192 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
9193 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
9194 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
9195 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
9196 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
9197 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
9198 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
9199 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
9200 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
9201 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
9202 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
9203 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
9204 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
9205 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
9206 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
9207 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
9208 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
9209 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
9210 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
9211 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
9212 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
9213 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 9214
e6ebd2e4
UD
9215 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
9216 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
9217 of the code is moved to ...
9218 * sysdeps/pthread/createthread.c: ...here. New file.
9219
a15698cb
UD
92202003-01-27 Ulrich Drepper <drepper@redhat.com>
9221
0566b130
UD
9222 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
9223 (__new_sem_post): Clear %eax before returning.
9224 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
9225
e6fb8846
UD
9226 * Makefile (tests): Add tst-cleanup2.
9227 * tst-cleanup2.c: New file.
9228
a15698cb
UD
9229 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9230 Interpret first parameter correctly.
9231
8824b0a1
UD
92322003-01-17 Ulrich Drepper <drepper@redhat.com>
9233
9234 * Makefile (headers): Add bits/semaphore.h.
9235
850dcfca
UD
92362003-01-16 Jakub Jelinek <jakub@redhat.com>
9237
9238 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
9239 if not SHARED.
9240
574b892e
UD
92412003-01-14 Ulrich Drepper <drepper@redhat.com>
9242
a8d87c92
UD
9243 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
9244 must be used and mapping failed.
9245 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
9246
574b892e
UD
9247 * Makefile (CFLAGS-pthread_self.os): Define this, not
9248 CFLAGS-pthread_self.c.
9249
fb48047a
UD
92502003-01-13 Ulrich Drepper <drepper@redhat.com>
9251
47805511
UD
9252 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
9253 lll_unlock_wake_cb.
9254
fb48047a
UD
9255 * Makefile (libpthread-routines): Add version. Add rules to build
9256 version.os and banner.h.
9257 * version.c: New file.
9258
115bb61d
UD
92592003-01-13 Jakub Jelinek <jakub@redhat.com>
9260
9261 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
9262 the alias unconditional.
9263 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
9264
92652003-01-13 Ulrich Drepper <drepper@redhat.com>
9266
9267 * Makefile (CFLAGS-pthread_self.c): New definition.
9268
6aca81bb
UD
92692003-01-06 Jakub Jelinek <jakub@redhat.com>
9270
9271 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
9272 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
9273 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
9274 * init.c (__pthread_initialize_minimal_internal): Likewise.
9275
e9c7764e
UD
92762003-01-07 Jakub Jelinek <jakub@redhat.com>
9277
b5facfda
UD
9278 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
9279
e9c7764e
UD
9280 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9281 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9282 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9283 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9284 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9285 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9286
bef1e42f
UD
92872003-01-06 Jakub Jelinek <jakub@redhat.com>
9288
9289 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
9290 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
9291 * tst-cancel-wrappers.sh: Remove all exceptions.
9292
bbd17455
UD
92932003-01-05 Ulrich Drepper <drepper@redhat.com>
9294
a73ab6df
UD
9295 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
9296 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
9297
bbd17455
UD
9298 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
9299 Use __libc_pthread_functions array if SHARED.
9300
9301 * pthreadP.h: Move pthread_cond_2_0_t definition to...
9302 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
9303
9304 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
9305 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
9306 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
9307 __libc_ptf_call instead of __libc_maybe_call.
9308 (PTF): New #define.
9309 (__libc_cleanup_region_start): Wrap function name with PTF call.
9310 (__libc_cleanup_region_end): Likewise.
9311 (__libc_cleanup_end): Likewise.
9312
9313 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
9314 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
9315 * pthread_key_create.c: Add __pthread_key_create_internal alias.
9316 * pthreadP.h: Add prototypes.
9317
9318 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
9319 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
9320 __pthread_rwlock_unlock aliases.
9321 * pthreadP.h: Add prototypes for new aliases.
9322
9323 * pthreadP.h (struct pthead_functions): Moved to...
9324 * sysdeps/pthread/pthread-functions.h: ...here. New file.
9325 * init.c (pthread_functions): Add initializers for new elements.
9326
9327 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9328 __pthread_cleanup_pop_restore aliases.
9329 * pthreadP.h: Add prototypes.
9330
9331 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9332 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9333 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9334 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9335 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9336 * pthreadP.h: Adjust prototypes and callers.
9337
d27a78be
UD
93382003-01-04 Ulrich Drepper <drepper@redhat.com>
9339
b74121ae
UD
9340 * Makefile (tests): Add tst-cancel7.
9341 (tst-cancel7-ARGS): New variable.
bbd17455 9342 * tst-cancel7.c: New file.
b74121ae 9343
29bc410c
UD
9344 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9345 around gcc defficiencies.
9346 * old_pthread_cond_signal.c: Likewise.
9347 * old_pthread_cond_timedwait.c: Likewise.
9348 * old_pthread_cond_wait.c: Likewise.
9349
d27a78be
UD
9350 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9351
733f25e6
UD
93522003-01-03 Ulrich Drepper <drepper@redhat.com>
9353
7edb2ae3
UD
9354 * Makefile (tests): Add tst-cond7.
9355 * tst-cond7.c: New file.
9356
b1151300
UD
9357 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9358 (condvar_cleanup): Get condvar address from the right place.
9359
733f25e6
UD
9360 * atomic.h: Correct definitions of atomic_full_barrier,
9361 atomic_read_barrier, atomic_write_barrier.
9362
9363 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9364 race-free.
9365 * old_pthread_cond_signal.c: Likewise.
9366 * old_pthread_cond_timedwait.c: Likewise.
9367 * old_pthread_cond_wait.c: Likewise.
9368
686b7223
UD
93692003-01-03 Jakub Jelinek <jakub@redhat.com>
9370
9371 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9372
0e07706e
UD
93732003-01-03 Ulrich Drepper <drepper@redhat.com>
9374
997256dd
UD
9375 * pthreadP.h (pthread_cond_2_0_t): New type.
9376 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9377 Use new type for the 2.0 condvar function prototypes.
9378 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9379 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9380 parameter.
9381 * old_pthread_cond_destroy.c: Likewise.
9382 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9383 * old_pthread_cond_signal.c: Likewise.
9384 * old_pthread_cond_timedwait.c: Likewise.
9385 * old_pthread_cond_wait.c: Likewise.
9386
842d2817
UD
9387 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9388 (__pthread_cond_wait): Don't save cancellation mode and seq value
9389 in same location.
9390
0e07706e
UD
9391 * herrno.c (__h_errno_location): Don't define as weak.
9392
bf293afe
UD
93932003-01-02 Jakub Jelinek <jakub@redhat.com>
9394
9395 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9396 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9397 and pthread_cond_wait.
9398 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9399 Renamed to...
9400 (__pthread_cond_broadcast_2_0): ... this.
9401 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9402 Renamed to...
9403 (__pthread_cond_destroy_2_0): ... this.
9404 * old_pthread_cond_init.c (__old_pthread_cond_init):
9405 Renamed to...
9406 (__pthread_cond_init_2_0): ... this.
9407 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9408 Renamed to...
9409 (__pthread_cond_signal_2_0): ... this.
9410 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9411 Renamed to...
9412 (__pthread_cond_wait_2_0): ... this.
9413 * pthread_cond_destroy.c: Include shlib-compat.h.
9414 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9415 * pthread_cond_init.c: Include shlib-compat.h.
9416 (pthread_cond_init): Change strong_alias into versioned_symbol.
9417 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9418 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9419 fields.
9420 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9421 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9422 __pthread_cond_wait_2_0): New prototypes.
9423 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9424 __old_pthread_cond_init, __old_pthread_cond_signal,
9425 __old_pthread_cond_wait): Removed.
9426 * init.c: Include shlib-compat.h.
9427 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9428 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9429 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9430 ptr___pthread_cond_*_2_0 fields.
9431 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9432 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9433
9434 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9435 LIBC_SIGACTION was not yet defined.
9436 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9437 [!defined LIBC_SIGACTION] (__sigaction): New function and
9438 libc_hidden_weak.
9439 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9440 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9441
94422003-01-02 Jakub Jelinek <jakub@redhat.com>
9443
9444 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9445
05df18c3
UD
94462003-01-02 Ulrich Drepper <drepper@redhat.com>
9447
9448 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9449 New, larger type definition.
9450 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9451 implementation.
9452 * Versions [libpthread]: Add definitions for new pthread_cond_*
9453 interfaces for version GLIBC_2.3.2.
9454 * pthread_cond_init.c: Update initialization for new type definition.
9455 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9456 pthread_cond_timedwait, pthread_cond_signal, and
9457 pthread_cond_broadcast. Add old_pthread_cond_init,
9458 old_pthread_cond_destroy, old_pthread_cond_wait,
9459 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9460 old_pthread_cond_broadcast.
9461 * old_pthread_cond_broadcast.c: New file.
9462 * old_pthread_cond_destroy.c: New file.
9463 * old_pthread_cond_init.c: New file.
9464 * old_pthread_cond_signal.c: New file.
9465 * old_pthread_cond_timedwait.c: New file.
9466 * old_pthread_cond_wait.c: New file.
9467 * pthreadP.h: Add prototypes for the compatibility interfaces.
9468
9469 * pthread_cond_destroy.c: Don't include <errno.h>.
9470
fd8979e4
UD
94712003-01-01 Ulrich Drepper <drepper@redhat.com>
9472
9473 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9474 unnecessary zero offset when addressing MUTEX.
9475
6d6ee629
UD
94762002-12-31 Ulrich Drepper <drepper@redhat.com>
9477
9478 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9479 __register_atfork.
9480 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9481 for __register_atfork.
9482
a4baf360
UD
94832002-12-31 Jakub Jelinek <jakub@redhat.com>
9484
9485 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9486 instead of ASSEMBLER test macro.
9487
9488 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9489 __libc_current_sigrtmax): Add libc_hidden_def.
9490
9491 * sysdeps/pthread/list.h: Remove assert.h include.
9492
e9395a94
UD
94932002-12-31 Ulrich Drepper <drepper@redhat.com>
9494
9495 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9496 __pthread_initialize_minimal_internal not
9497 __pthread_initialize_minimal.
9498
89d6e444
UD
94992002-12-30 Ulrich Drepper <drepper@redhat.com>
9500
416d2de6
UD
9501 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9502 __pthread_initialize_minimal as hidden.
9503
89d6e444
UD
9504 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9505 constructor.
9506
95072002-12-31 Jakub Jelinek <jakub@redhat.com>
9508
9509 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9510 $(common-objpfx)format.lds, include that into the output script.
9511 Fix comment.
9512 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9513
8cac677c
UD
95142002-12-28 Andreas Jaeger <aj@suse.de>
9515
9516 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9517 nsec resolution changes.
9518 (xstat64_conv): Likewise.
9519 (xstat32_conv): Likewise.
9520 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9521 struct kernel_stat.
9522 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9523 structs stat and stat64.
9524 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9525 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9526
49e9f864
UD
95272002-12-30 Jakub Jelinek <jakub@redhat.com>
9528
9529 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9530 argument.
9531 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9532 (pthread_exit): Use strong_alias to avoid warnings.
9533 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9534 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9535 ptr___pthread_attr_init_2_*.
9536 * init.c (pthread_functions): Adjust.
9537
bab09b26
UD
95382002-12-29 Ulrich Drepper <drepper@redhat.com>
9539
598d7a42
UD
9540 * forward.c: Make all functions available by default again. It
9541 caused too much trouble.
9542
bab09b26
UD
9543 * pt-siglongjmp.c: Removed.
9544
3b7ed871
UD
95452002-12-28 Jakub Jelinek <jakub@redhat.com>
9546
9547 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9548 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9549 * sysdeps/i386/Makefile: New file.
9550 * sysdeps/i386/tcb-offsets.sym: New file.
9551 * sysdeps/pthread/tcb-offsets.h: New file.
9552 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9553 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9554
9555 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9556 __register_atfork...
9557 (GLIBC_2.3.2): ...here.
9558
95592002-12-28 Ulrich Drepper <drepper@redhat.com>
9560
9561 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9562 pthread_attr_setstackaddr with __attribute_deprecated__.
9563
270d9d47
UD
95642002-12-27 Jakub Jelinek <jakub@redhat.com>
9565
9566 * pt-system.c (system): Remove cancellation handling.
9567 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9568 cancellation routines.
9569
131fd126
UD
95702002-12-28 Ulrich Drepper <drepper@redhat.com>
9571
afb2e954
UD
9572 * descr.h: Include <dl-sysdep.h>.
9573 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9574 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9575 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9576 (SYSINFO_OFFSEET): Likewise.
9577
95782002-12-27 Jakub Jelinek <jakub@redhat.com>
9579
9580 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9581 Define.
9582 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9583 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9584 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9585 (USE_DL_SYSINFO): Undef.
9586
95872002-12-22 Jakub Jelinek <jakub@redhat.com>
9588
9589 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9590 $(common-objpfx)libc.so.
9591 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9592 it is bigger than pipe buffer size even on arches with bigger
9593 page size.
9594 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9595
a218c9cf
UD
95962002-12-25 Ulrich Drepper <drepper@redhat.com>
9597
9598 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9599 correct errno access for case that USE___THREAD is not defined.
9600
015a2dc9
UD
96012002-12-24 Ulrich Drepper <drepper@redhat.com>
9602
9603 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9604 Patch by Marijn Ros <marijn@mad.scientist.com>.
9605
5220f9ac
RM
96062002-12-22 Roland McGrath <roland@redhat.com>
9607
9608 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9609
1561bf63
UD
96102002-12-20 Ulrich Drepper <drepper@redhat.com>
9611
9612 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9613
3325198e
UD
96142002-12-19 Ulrich Drepper <drepper@redhat.com>
9615
057c823f
UD
9616 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9617 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9618 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9619
097eca29
UD
9620 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9621 of int $0x80.
9622 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9623 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9624 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9625 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9626 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9627 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9628 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9629 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9630
9631 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9632 sysenter.
9633 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9634
9635 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9636
5f5843e3
UD
9637 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9638 in new TCB.
9639 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9640 that sysinfo is properly initialized.
9641 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9642 to 1 only for ld.so.
9643
3325198e
UD
9644 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9645 RTLD_CORRECT_DYNAMIC_WEAK.
9646
74e8f2dc
UD
96472002-12-19 Jakub Jelinek <jakub@redhat.com>
9648
9649 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9650 Use return 0 as 6th argument to FORWARD4.
9651 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9652
df45b31e
UD
96532002-12-18 Ulrich Drepper <drepper@redhat.com>
9654
9655 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9656 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9657 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9658 (INIT_SYSINFO): New #define.
9659 (TLS_TP_INIT): Use INIT_SYSINFO.
9660 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9661 At test to make sure SYSINFO_OFFSET value is correct.
9662 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9663
3d539579
UD
96642002-12-18 Jakub Jelinek <jakub@redhat.com>
9665
9666 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9667 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9668 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9669 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9670 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9671 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9672 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9673
d7913e0e
UD
96742002-12-18 Ulrich Drepper <drepper@redhat.com>
9675
f051627f
UD
9676 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9677 macro instead of using int $0x80 directly.
9678
d7913e0e
UD
9679 * sysdeps/pthread/bits/stdio-lock.h: New file.
9680 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9681 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9682 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9683 * Makefile (routines): Add libc-lowlevelmutex.
9684
9685 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9686 __i686.get_pc_thunk.dx.
9687
f077a4a9
UD
96882002-12-17 Jakub Jelinek <jakub@redhat.com>
9689
9690 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9691 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9692 ($(objpfx)tst-cancel-wrappers.out): New rule.
9693 * tst-cancel-wrappers.sh: New test.
9694 * tst-locale1.c: Include signal.h.
9695 (uselocale): Test static linking of __libc_current_sigrt*.
9696
96972002-12-17 Ulrich Drepper <drepper@redhat.com>
9698
9699 * Makefile (tests): Add tst-cancel6.
9700 * tst-cancel6.c: New file
9701
bd499a3b
UD
97022002-12-17 Jakub Jelinek <jakub@redhat.com>
9703
9704 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9705 Define meaningfully for assembler as well.
9706 * pthreadP.h (struct pthread_functions): Remove
9707 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9708 and ptr_pthread_attr_init_2_1 fields.
9709 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9710 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9711 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9712 (FORWARD3): Define using FORWARD4.
9713 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9714 versions.
9715 * pt-system.c: Remove duplicate stdlib.h include.
9716
0a1063f4
UD
97172002-12-16 Ulrich Drepper <drepper@redhat.com>
9718
87d60668
UD
9719 * sem_init.c: Define sem_init@GLIBC_2.0.
9720 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9721 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9722
0a1063f4
UD
9723 * flockfile.c: Moved to...
9724 * sysdeps/pthread/flockfile.c: ...here. New file.
9725 * funlockfile.c: Moved to...
9726 * sysdeps/pthread/funlockfile.c: ...here. New file.
9727 * ftrylockfile.c: Moved to...
9728 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9729
9634cf9d
UD
97302002-12-16 Jakub Jelinek <jakub@redhat.com>
9731
9732 * libc-cancellation.c: Guard both function with
9733 #if !defined NOT_IN_libc.
9734 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9735 automatically provided pthread wrappers.
9736 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9737 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9738 nor in libpthread.
9739 * pt-open.c: Removed.
9740 * pt-fcntl.c: Removed.
9741 * pt-fsync.c: Removed.
9742 * pt-lseek.c: Removed.
9743 * pt-msgrcv.c: Removed.
9744 * pt-msgsnd.c: Removed.
9745 * pt-msync.c: Removed.
9746 * pt-nanosleep.c: Removed.
9747 * pt-open64.c: Removed.
9748 * pt-pause.c: Removed.
9749 * pt-pread.c: Removed.
9750 * pt-pread64.c: Removed.
9751 * pt-pwrite.c: Removed.
9752 * pt-pwrite64.c: Removed.
9753 * pt-read.c: Removed.
9754 * pt-recv.c: Removed.
9755 * pt-recvfrom.c: Removed.
9756 * pt-recvmsg.c: Removed.
9757 * pt-send.c: Removed.
9758 * pt-sendto.c: Removed.
9759 * pt-sigtimedwait.c: Removed.
9760 * pt-sigwait.c: Removed.
9761 * pt-wait.c: Removed.
9762 * pt-waitpid.c: Removed.
9763 * pt-write.c: Removed.
9764 * pt-accept.c: Removed.
9765 * pt-close.c: Removed.
9766 * pt-connect.c: Removed.
9767 * pt-lseek64.c: Removed.
9768 * pt-sendmsg.c: Removed.
9769 * pt-tcdrain.c: Removed.
9770
6ee8d334
UD
97712002-12-15 Ulrich Drepper <drepper@redhat.com>
9772
81fa9371
UD
9773 * init.c (__pthread_initialize_minimal_internal): Renamed from
9774 __pthread_initialize_minimal. Make old name an alias. This
9775 converts a normal relocation into a relative relocation.
9776
f3015aa5
UD
9777 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9778
4cbc1950
UD
9779 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9780 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9781 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9782 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9783 pt-sigwaitinfo, pt-waitid, and pt-writev.
9784 * pt-creat.c: Removed.
9785 * pt-poll.c: Removed.
9786 * pt-pselect.c: Removed.
9787 * pt-readv.c: Removed.
9788 * pt-select.c: Removed.
9789 * pt-sigpause.c: Removed.
9790 * pt-sigsuspend.c: Removed.
9791 * pt-sigwaitinfo.c: Removed.
9792 * pt-waitid.c: Removed.
9793 * pt-writev.c: Removed.
9794
8454830b
UD
9795 * init.c (pthread_functions): New variable.
9796 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9797 (or NULL) to __libc_pthread_init.
9798 * forward.c: Rewrite to use __libc:pthread_functions array to get
9799 function addresses.
9800 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9801 prototype.
9802 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9803 Take new parameter. Copy content of variable pointed to by it
9804 to __libc_pthread_init.
9805
9806 * pthreadP.h (struct pthread_functions): New type.
9807 (__libc_pthread_init): Declare.
9808
9809 * pthread_attr_destroy.c: Add namespace protected alias.
9810 * pthread_attr_getdetachstate.c: Likewise.
9811 * pthread_attr_getinheritsched.c: Likewise.
9812 * pthread_attr_getschedparam.c: Likewise.
9813 * pthread_attr_getschedpolicy.c: Likewise.
9814 * pthread_attr_getscope.c: Likewise.
9815 * pthread_attr_setdetachstate.c: Likewise.
9816 * pthread_attr_setinheritsched.c: Likewise.
9817 * pthread_attr_setschedparam.c: Likewise.
9818 * pthread_attr_setschedpolicy.c: Likewise.
9819 * pthread_attr_setscope.c: Likewise.
9820 * pthread_cond_broadcast.c: Likewise.
9821 * pthread_cond_destroy.c: Likewise.
9822 * pthread_cond_init.c: Likewise.
9823 * pthread_cond_signal.c: Likewise.
9824 * pthread_cond_wait.c: Likewise.
9825 * pthread_condattr_destroy.c: Likewise.
9826 * pthread_condattr_init.c: Likewise.
9827 * pthread_equal.c: Likewise.
9828 * pthread_exit.c: Likewise.
9829 * pthread_getschedparam.c: Likewise.
9830 * pthread_self.c: Likewise.
9831 * pthread_setcancelstate.c: Likewise.
9832 * pthread_setschedparam.c: Likewise.
9833 * pthread_mutex_destroy.c: Likewise.
9834 * pthread_mutex_init.c: Likewise.
9835 * pthreadP.h: Add prototypes for the aliases.
9836
0d5f4929
UD
9837 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9838 multiple_threads member in correct TCB to 1.
9839
6ee8d334
UD
9840 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9841 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9842 member of thread decriptor, otherwise return unconditionally 1.
9843
2fb6444d
UD
98442002-12-14 Ulrich Drepper <drepper@redhat.com>
9845
9846 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9847 regular Linux version. Remove file.
9848 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9849 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9850 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9851 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9852 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9853 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9854 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9855 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9856 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9857 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9858 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9859 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9860 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9861 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9862 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9863 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9864 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9865 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9866 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9867 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9868 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9869 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9870 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9871 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9872 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9873 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9874 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9875 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9876 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9877 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9878
86b2dc40
UD
98792002-12-14 Jakub Jelinek <jakub@redhat.com>
9880
9881 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9882 * sysdeps/unix/sysv/linux/open.c: Removed.
9883 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9884 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9885 * sysdeps/unix/sysv/linux/msync.c: Removed.
9886 * sysdeps/unix/sysv/linux/read.c: Removed.
9887 * sysdeps/unix/sysv/linux/close.c: Removed.
9888 * sysdeps/unix/sysv/linux/creat.c: Removed.
9889 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9890 * sysdeps/unix/sysv/linux/pause.c: Removed.
9891 * sysdeps/unix/sysv/linux/select.c: Removed.
9892 * sysdeps/unix/sysv/linux/write.c: Removed.
9893
9d263d72
UD
98942002-12-14 Ulrich Drepper <drepper@redhat.com>
9895
9896 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
9897 element in TCB to see whether locking is needed.
9898
9899 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
9900 MULTIPLE_THREADS_OFFSET value is correct.
9901
9902 * sysdeps/unix/sysv/linux/close.c: New file.
9903 * sysdeps/unix/sysv/linux/connect.S: New file.
9904 * sysdeps/unix/sysv/linux/creat.c: New file.
9905 * sysdeps/unix/sysv/linux/fsync.c: New file.
9906 * sysdeps/unix/sysv/linux/llseek.c: New file.
9907 * sysdeps/unix/sysv/linux/lseek.c: New file.
9908 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
9909 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
9910 * sysdeps/unix/sysv/linux/msync.c: New file.
9911 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
9912 * sysdeps/unix/sysv/linux/open.c: New file.
9913 * sysdeps/unix/sysv/linux/open64.c: New file.
9914 * sysdeps/unix/sysv/linux/pause.c: New file.
9915 * sysdeps/unix/sysv/linux/poll.c: New file.
9916 * sysdeps/unix/sysv/linux/pread.c: New file.
9917 * sysdeps/unix/sysv/linux/pread64.c: New file.
9918 * sysdeps/unix/sysv/linux/pselect.c: New file.
9919 * sysdeps/unix/sysv/linux/pwrite.c: New file.
9920 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
9921 * sysdeps/unix/sysv/linux/readv.c: New file.
9922 * sysdeps/unix/sysv/linux/recv.S: New file.
9923 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
9924 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
9925 * sysdeps/unix/sysv/linux/select.c: New file.
9926 * sysdeps/unix/sysv/linux/send.S: New file.
9927 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
9928 * sysdeps/unix/sysv/linux/sendto.S: New file.
9929 * sysdeps/unix/sysv/linux/sigpause.c: New file.
9930 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
9931 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9932 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9933 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9934 * sysdeps/unix/sysv/linux/system.c: New file.
9935 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
9936 * sysdeps/unix/sysv/linux/wait.c: New file.
9937 * sysdeps/unix/sysv/linux/waitid.c: New file.
9938 * sysdeps/unix/sysv/linux/waitpid.c: New file.
9939 * sysdeps/unix/sysv/linux/writev.c: New file.
9940 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
9941
9942 * pt-readv.c: Fix comment.
9943
99442002-12-14 Jakub Jelinek <jakub@redhat.com>
9945
9946 * tst-cleanup1.c: Include stdlib.h.
9947
9948 * tst-cancel5.c: New test.
9949 * Makefile (tests): Add tst-cancel5.
9950 (tst-cancel5): Link against libc.so libpthread.so in that order.
9951
9ae0909b
UD
99522002-12-13 Ulrich Drepper <drepper@redhat.com>
9953
b7bdd9c4
UD
9954 * forward.c (test_loaded): Prevent recursive calls.
9955
9ae0909b
UD
9956 * Makefile (routines): Add libc-cancellation.
9957 * libc-cancellation.c: New file.
9958 * descr.h (struct pthread): Add multiple_threads field.
9959 * allocatestack.c (allocate_stack): Initialize multiple_header field of
9960 new thread descriptor to 1.
9961 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
9962 Initialize multiple_thread field after successful thread creation.
9963 * cancellation.c (__do_cancel): Move to pthreadP.h.
9964 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
9965 (__pthread_disable_asynccancel): Add internal_function attribute.
9966 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
9967 * pthread_setcancelstate.c: Likewise.
9968 * pthread_setcanceltype.c: Likewise.
9969 * pthread_exit.c: Likewise.
9970 * pthreadP.h (CANCELLATION_P): Likewise.
9971 (__do_cancel): Define as static inline.
9972 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
9973 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
9974 declarations.
9975 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
9976 fields. Define MULTIPLE_THREADS_OFFSET.
9977 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
9978 declaration.
9979 * sysdeps/unix/sysv/linux/accept.S: New file.
9980 * sysdeps/unix/sysv/linux/read.c: New file.
9981 * sysdeps/unix/sysv/linux/write.c: New file.
9982 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
9983 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
9984 initialization of __libc_locking_needed.
9985 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
9986 __libc_locking_needed, use multiple_threads field in TCB.
9987 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9988
22f20674
UD
99892002-12-12 Ulrich Drepper <drepper@redhat.com>
9990
2ad2e1e7
UD
9991 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
9992 version.
9993 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
9994
22f20674
UD
9995 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
9996 access to __libc_locking_needed for PIC.
9997
aa80bf86
UD
99982002-12-12 Jakub Jelinek <jakub@redhat.com>
9999
10000 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
10001 declare for libc.so.
10002 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
10003 expression.
10004 (__libc_lock_lock): Put into statement expression.
10005 (__libc_lock_unlock): Remove trailing semicolon.
10006 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
10007
24021373
RM
100082002-12-12 Roland McGrath <roland@redhat.com>
10009
10010 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
10011 "m" constraint to refer to __libc_locking_needed. Declare it here.
10012
14e7aece
UD
100132002-12-12 Ulrich Drepper <drepper@redhat.com>
10014
10015 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
10016 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
10017 Initialize __libc_locking_needed.
10018 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
10019 instead of __register_pthread_fork_handler.
10020 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
10021 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
10022 fork-gen with libc_pthread_init.
10023 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
10024 of __register_pthread_fork_handler.
10025 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
10026 of __register_pthread_fork_handler.
10027 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
10028 __libc_locking_needed to determine whether lock prefix can be avoided.
10029 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10030
85631c8e
UD
100312002-12-11 Ulrich Drepper <drepper@redhat.com>
10032
da63009e
UD
10033 * Makefile (tests): Add tst-cleanup1.
10034 * tst-cleanup1.c: New file.
10035 * cancellation.c (__cleanup_thread): Removed.
10036 (__do_cancel): Remove call to __cleanup_thread.
10037 * pthreadP.h: Remove __cleanup_thread prorotype.
10038
000160a2
UD
10039 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
10040 Remember function and argument even if cancellation handler
10041 function is not available.
10042 (__libc_cleanup_region_end): Execute registered function directly if
10043 pthread functions are not available.
10044 (__libc_cleanup_end): Likewise.
10045
85631c8e
UD
10046 * init.c (__pthread_initialize_minimal): Fix initialization in
10047 static lib by preventing gcc from being too clever.
10048
dce8f2b6
UD
100492002-12-10 Ulrich Drepper <drepper@redhat.com>
10050
34a075be
UD
10051 * init.c (__pthread_initialize_minimal): Remove unneccesary
10052 sigaddset call.
10053
dce8f2b6
UD
10054 * Makefile (tests): We can run tst-locale2 now.
10055
e5e45b53
UD
100562002-12-09 Ulrich Drepper <drepper@redhat.com>
10057
10058 * Versions: Remove duplicated sigwait entry.
10059
bdb04f92
UD
100602002-12-08 Ulrich Drepper <drepper@redhat.com>
10061
1e506629
UD
10062 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
10063 inside libpthread.
10064
a3957dd5
UD
10065 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
10066
bdb04f92
UD
10067 * pthreadP.h: Declare __pthread_enable_asynccancel and
10068 __pthread_disable_asynccancel.
10069 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
10070 (CANCEL_RESET): Use __pthread_disable_asynccancel.
10071 * cancellation.c (__pthread_enable_asynccancel): New function.
10072 (__pthread_disable_asynccancel): New function.
10073 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
10074 * pt-close.c: Likewise.
10075 * pt-connect.c: Likewise.
10076 * pt-creat.c: Likewise.
10077 * pt-fcntl.c: Likewise.
10078 * pt-fsync.c: Likewise.
10079 * pt-lseek.c: Likewise.
10080 * pt-lseek64.c: Likewise.
10081 * pt-msgrcv.c: Likewise.
10082 * pt-msgsnd.c: Likewise.
10083 * pt-msync.c: Likewise.
10084 * pt-nanosleep.c: Likewise.
10085 * pt-open.c: Likewise.
10086 * pt-open64.c: Likewise.
10087 * pt-pause.c: Likewise.
10088 * pt-poll.c: Likewise.
10089 * pt-pread.c: Likewise.
10090 * pt-pread64.c: Likewise.
10091 * pt-pselect.c: Likewise.
10092 * pt-pwrite.c: Likewise.
10093 * pt-pwrite64.c: Likewise.
10094 * pt-read.c: Likewise.
10095 * pt-readv.c: Likewise.
10096 * pt-recv.c: Likewise.
10097 * pt-recvfrom.c: Likewise.
10098 * pt-recvmsg.c: Likewise.
10099 * pt-select.c: Likewise.
10100 * pt-send.c: Likewise.
10101 * pt-sendmsg.c: Likewise.
10102 * pt-sendto.c: Likewise.
10103 * pt-sigpause.c: Likewise.
10104 * pt-sigsuspend.c: Likewise.
10105 * pt-sigtimedwait.c: Likewise.
10106 * pt-sigwait.c: Likewise.
10107 * pt-sigwaitinfo.c: Likewise.
10108 * pt-system.c: Likewise.
10109 * pt-tcdrain.c: Likewise.
10110 * pt-wait.c: Likewise.
10111 * pt-waitid.c: Likewise.
10112 * pt-waitpid.c: Likewise.
10113 * pt-write.c: Likewise.
10114 * pt-writev.c: Likewise.
a3957dd5
UD
10115 * pthread_join.c: Likewise.
10116 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
10117
10118 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
10119 (__xpg_sigpause): New function.
10120 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
10121
6ccb3834
UD
101222002-12-07 Ulrich Drepper <drepper@redhat.com>
10123
09efc3ba
UD
10124 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
10125
10126 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
10127 _GI_pthread_cleanup_pop to pthreadP.h.
10128
10129 * ftrylockfile.c: Use _IO_lock_trylock instead of
10130 pthread_mutex_trylock.
10131
10132 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
10133 (CANCEL_RESET): Likewise.
10134 (__pthread_setcanceltype_): Declare.
10135 (__pthread_mutex_lock_internal): Declare.
10136 (__pthread_mutex_unlock_internal): Declare.
10137 (__pthread_once_internal): Declare.
10138 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
10139 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
10140
10141 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
10142 and pthread_mutex_unlock.
10143 * pthread_cond_wait.c: Likewise.
10144 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
10145 * pthread_mutex_unlock.c: Likewise.
10146
10147 * pthread_setcanceltype.c: Add additional alias
10148 __pthread_setcanceltype.
10149
10150 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
10151 * sem_open.c (sem_open): Likewise.
10152 Use __libc_open, __libc_write, and __libc_close instead of
10153 open, write, and close respectively.
10154
10155 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
10156 Rewrite as statement expression since it must return a value.
10157
10158 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
10159 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
10160 __pthread_kill.
10161
10162 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
10163 alias __pthread_once_internal.
10164
6ccb3834
UD
10165 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
10166
d3c9f895
UD
101672002-12-06 Ulrich Drepper <drepper@redhat.com>
10168
4614167a
UD
10169 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
10170 * tst-stdio1.c: New file.
10171 * tst-stdio2.c: New file.
10172
a4548cea
UD
10173 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
10174
d3c9f895
UD
10175 * Makefile (tests): Comment out tst-locale2 for now.
10176 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
10177
10178 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
10179 -D_IO_MTSAFE_IO.
10180 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
10181 Use _IO_lock_init instead of explicit assignment.
10182
10183 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
10184 Define __libc_lock_* and __libc_lock_recursive macros with
10185 lowlevellock macros, not pthread mutexes.
10186
10187 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
10188 of pthread_mutex_lock.
10189 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
10190 instead of pthread_mutex_unlock.
10191
fde89ad0
RM
101922002-12-06 Roland McGrath <roland@redhat.com>
10193
10194 * allocatestack.c (__stack_user): Use uninitialized defn.
10195 * init.c (__pthread_initialize_minimal): Initialize it here.
10196
11767d47
RM
101972002-12-05 Roland McGrath <roland@redhat.com>
10198
fde89ad0
RM
10199 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
10200 string.
10201 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
10202
11767d47
RM
10203 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
10204 missing & here too.
10205
440d8bc2
UD
102062002-12-05 Ulrich Drepper <drepper@redhat.com>
10207
10208 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10209 lowlevellock.
10210 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
10211 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
10212 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
10213 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
10214 for __libc_lock_* macros.
10215 * Makefile (routines): Add libc-lowlevellock.
10216
102172002-10-09 Roland McGrath <roland@redhat.com>
10218
10219 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
10220 Under [__PIC__], call the function via the pointer fetched for
10221 comparison rather than a call by name that uses the PLT.
10222 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
10223 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
10224 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
10225 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
10226 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
10227
d5ed0118
RM
102282002-12-04 Roland McGrath <roland@redhat.com>
10229
10230 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
10231
10232 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
10233 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
10234
10235 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
10236
eaa4099f
UD
102372002-12-04 Ulrich Drepper <drepper@redhat.com>
10238
10239 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
10240 a completely opaque, non-integer type.
10241 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
10242
33b5d0cc
UD
102432002-12-05 Jakub Jelinek <jakub@redhat.com>
10244
10245 * sysdeps/i386/tls.h: Include stdlib.h.
10246 * sysdeps/x86_64/tls.h: Likewise.
10247
7a5cdb30
UD
102482002-12-04 Ulrich Drepper <drepper@redhat.com>
10249
c4a6d859
UD
10250 * Makefile (tests): Add tst-locale2.
10251 (tests-static): Likewise.
10252 * tst-locale2.c: New file.
10253
7a5cdb30
UD
10254 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
10255 volatile and add memory clobbers to lock operations.
10256
d82d5d12
UD
102572002-12-03 Ulrich Drepper <drepper@redhat.com>
10258
69cae3cf
UD
10259 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
10260 * sysdeps/i386/i486/bits/atomic.h: New file.
10261 * sysdeps/i386/i586/bits/atomic.h: New file.
10262 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
10263 include i486 version.
10264 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
10265 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 10266 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 10267
e4044c01
UD
10268 * allocatestack.c (get_cached_stack): Don't crash if we first
10269 found a stack with a larger size then needed.
10270 Reported by Hui Huang <hui.huang@sun.com>.
10271
d82d5d12
UD
10272 * Makefile (tests): Add tst-sysconf.
10273 * tst-sysconf.c: New file.
10274
10275 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
10276 PTHREAD_THREADS_MAX.
10277
fa9a4ff0
RM
102782002-12-02 Roland McGrath <roland@redhat.com>
10279
10280 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
10281 Declare using hidden_proto instead of attribute_hidden, so there are
10282 non-.hidden static symbols for gdb to find.
10283 (__pthread_keys): Likewise.
10284 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
10285 * allocatestack.c (__stack_user): Likewise.
10286 * pthread_create.c (__pthread_keys): Likewise.
10287 (__nptl_threads_events, __nptl_last_event): Make these static instead
10288 of hidden.
10289 * pthread_key_create.c (__pthread_pthread_keys_max,
10290 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
10291
91949a33
UD
102922002-12-02 Ulrich Drepper <drepper@redhat.com>
10293
c22b52fa
UD
10294 * Makefile (tests): Add tst-locale1. If buid-static is yes link
10295 statically.
10296 * tst-locale1.c: New file.
10297
beb6aa41
UD
10298 * pthread_cond_timedwait.c: Include <stdlib.h>.
10299
91949a33
UD
10300 * Makefile (tests): Add tst-fork2 and tst-fork3.
10301 * tst-fork2.c: New file.
10302 * tst-fork3.c: New file.
10303
654dff90
UD
103042002-11-28 Ulrich Drepper <drepper@redhat.com>
10305
cb0e76b4
UD
10306 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
10307
10308 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
10309 require it to 200112L.
10310
10311 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
10312 instruction only if HAVE_CMOV is defined.
10313 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
10314
975aa229
UD
10315 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
10316
654dff90
UD
10317 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
10318
10319 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
10320
10321 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
10322
a3931336
UD
103232002-11-27 Ulrich Drepper <drepper@redhat.com>
10324
c10c099c
UD
10325 * sysdeps/x86_64/bits/atomic.h: New file.
10326
10327 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10328 16-bit operations.
10329
dca99d27
UD
10330 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10331 possible since gettid cannot fail.
10332
f78deea6
UD
10333 * sysdeps/x86_64/pthreaddef.h: New file.
10334
10335 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10336
10337 * sysdeps/x86_64/pthread_spin_init.c: New file.
10338 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10339 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10340 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10341
10342 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10343 Add missing lock prefix. Minute optimization.
10344
10345 * tst-spin2.c (main): Also check successful trylock call.
10346
10347 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10348 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10349
10350 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10351 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10352
10353 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10354 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10355 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10356
10357 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10358 value in case of an error.
10359
a3931336
UD
10360 * sysdeps/x86_64/tls.h: New file.
10361
76a50749
UD
103622002-11-26 Ulrich Drepper <drepper@redhat.com>
10363
117c452c
UD
10364 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10365 takes the array member name and the index as parameters.
10366 (THREAD_SETMEM_NC): Likewise.
10367 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10368 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10369 interfaces.
10370
10371 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10372 to decide which code to use.
10373 (THREAD_SETMEM_NC): Likewise.
10374
76a50749
UD
10375 * allocatestack.c (queue_stack): Don't remove stack from list here.
10376 Do it in the caller. Correct condition to prematurely terminate
10377 loop to free stacks.
10378 (__deallocate_stack): Remove stack from list here.
10379
103802002-11-26 Ulrich Drepper <drepper@redhat.com>
10381
10382 * Makefile (tests): Add tst-stack1.
10383 * tst-stack1.c: New file.
10384
10385 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10386 provided stack.
10387
10388 * pthread_attr_getstack.c: Return bottom of the thread area.
10389
103902002-11-25 Ulrich Drepper <drepper@redhat.com>
10391
10392 * Makefile (libpthread-routines): Add pt-allocrtsig and
10393 pthread_kill_other_threads.
10394 * pt-allocrtsig.c: New file.
10395 * pthread_kill_other_threads.c: New file.
10396 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10397 all three functions.
10398 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10399 allocrtsig.
10400 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10401 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10402 and __libc_allocate_rtsig_private.
10403 * Versions (libpthread): Export pthread_kill_other_threads_np,
10404 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10405
104062002-11-24 Ulrich Drepper <drepper@redhat.com>
10407
10408 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10409 the end of the stack. Adjust computations.
10410 When mprotect call fails dequeue stack and free it.
10411 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10412 attribute.
10413 * pthread_getattr_np.c: Likewise.
10414
10415 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10416 surprises.
10417
104182002-11-23 Ulrich Drepper <drepper@redhat.com>
10419
10420 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10421 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10422
104232002-11-22 Ulrich Drepper <drepper@redhat.com>
10424
10425 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10426 * pthread_setspecific.c: Likewise.
10427
104282002-11-21 Ulrich Drepper <drepper@redhat.com>
10429
10430 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10431 definitions. Get them from the official place.
10432 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10433
10434 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10435 Use new CLONE_ flags in clone() calls.
10436
10437 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10438 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10439
10440 * Versions: Add pthread_* functions for libc.
10441 * forward.c: New file.
10442
10443 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10444 errno-loc.
10445 * herrno.c: New file.
10446 * res.c: New file.
10447
10448 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10449 sem_trywait, and sem_timedwait. Add herrno and res.
10450 * sem_init.c: Don't initialize lock and waiters members.
10451 * sem_open.c: Likewise.
10452 * sem_post.c: Removed.
10453 * sem_wait.c: Removed.
10454 * sem_trywait.c: Removed.
10455 * sem_timedwait.c: Removed.
10456 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10457 Includes full implementations of sem_post, sem_wait, sem_trywait,
10458 and sem_timedwait.
10459 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10460 for new implementation.
10461 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10462 and waiters fields.
10463
10464 * tst-sem3.c: Improve error message.
10465 * tst-signal3.c: Likewise.
10466
10467 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10468 to tell the kernel about the termination futex and to initialize tid
10469 member. Don't initialize main_thread.
10470 * descr.h (struct pthread): Remove main_thread member.
10471 * cancelllation.c (__do_cancel): Remove code handling main thread.
10472 The main thread is not special anymore.
10473
10474 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10475 size of the stacks to stack_cache_actsize.
10476
10477 * pt-readv.c: Add missing "defined".
10478 * pt-sigwait.c: Likewise.
10479 * pt-writev.c: Likewise.
10480
104812002-11-09 Ulrich Drepper <drepper@redhat.com>
10482
10483 * Versions: Export __connect from libpthread.
10484 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10485
10486 * Makefile (libpthread-routines): Add pt-raise.
10487 * sysdeps/unix/sysv/linux/raise.c: New file.
10488 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10489 * sysdeps/generic/pt-raise.c: New file.
10490
10491 * pthread_cond_init.c: Initialize all data elements of the condvar
10492 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10493
10494 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10495 * pthread_create.c: Likewise.
10496
10497 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10498 * tst-key1.c: New file.
10499 * tst-key2.c: New file.
10500 * tst-key3.c: New file.
10501
10502 * Versions: Export pthread_detach for version GLIBC_2.0.
10503 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10504
105052002-11-08 Ulrich Drepper <drepper@redhat.com>
10506
10507 * pthread_key_create.c: Terminate search after an unused key was found.
10508 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10509
10510 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10511 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10512
105132002-10-10 Ulrich Drepper <drepper@redhat.com>
10514
10515 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10516 dynamic lookup for errno in PIC.
10517
10518 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10519 release the stack lock as soon as possible.
10520 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10521 the static TLS block.
10522 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10523
10524 * cancellation.c: Renamed from cancelation.c.
10525 * Makefile: Adjust accordingly.
10526 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10527 * cleanup_defer.c: Use CANCELLATION_P.
10528 * pthread_testcancel.c: Likewise.
10529 * descr.h: Fix spelling in comments.
10530 * init.c: Likewise.
10531 * pthread_getattr_np.c: Likewise.
10532 * pthread_getschedparam.c: Likewise.
10533 * pthread_setschedparam.c: Likewise.
10534 * Versions: Likewise.
10535
10536 * pt-pselect.c: New file.
10537 * Makefile (libpthread-routines): Add pt-pselect.
10538 * Versions: Add pselect.
10539
10540 * tst-cancel4.c: New file.
10541 * Makefile (tests): Add tst-cancel4.
10542
105432002-10-09 Ulrich Drepper <drepper@redhat.com>
10544
10545 * pthread_mutex_lock.c: Always record lock ownership.
10546 * pthread_mutex_timedlock.c: Likewise.
10547 * pthread_mutex_trylock.c: Likewise.
10548
10549 * pt-readv.c: New file.
10550 * pt-writev.c: New file.
10551 * pt-creat.c: New file.
10552 * pt-msgrcv.c: New file.
10553 * pt-msgsnd.c: New file.
10554 * pt-poll.c: New file.
10555 * pt-select.c: New file.
10556 * pt-sigpause.c: New file.
10557 * pt-sigsuspend.c: New file.
10558 * pt-sigwait.c: New file.
10559 * pt-sigwaitinfo.c: New file.
10560 * pt-waitid.c: New file.
10561 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10562 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10563 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10564 * Versions: Add all the new functions.
10565
10566 * tst-exit1.c: New file.
10567 * Makefile (tests): Add tst-exit1.
10568
10569 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10570
105712002-10-08 Ulrich Drepper <drepper@redhat.com>
10572
10573 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10574
10575 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10576 call. pthread_join is an official cancellation point.
10577 * pthread_timedjoin.c: Likewise.
10578
10579 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10580 and the condvar's mutex are retrieved.
10581 * pthread_cond_timedwait.c: Likewise.
10582 Reported by dice@saros.East.Sun.COM.
10583
105842002-10-07 Ulrich Drepper <drepper@redhat.com>
10585
10586 * pthreadP.h: Cut out all type definitions and move them...
10587 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10588 * pthreadP.h: Include <internaltypes.h>.
10589
10590 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10591 performance tweaks.
10592
10593 * sem_trywait.c: Shuffle #includes around to get right order.
10594 * sem_timedwait.c: Likewise.
10595 * sem_post.c: Likewise.
10596 * sem_wait.c: Likewise.
10597
10598 * nptl 0.3 released.
10599
10600 * Makefile (tests): Add tst-signal3.
10601 * tst-signal3.c: New file.
10602
106032002-10-05 Ulrich Drepper <drepper@redhat.com>
10604
10605 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10606 the asms modify the sem object.
10607 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10608
10609 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10610 the actual members.
10611 * pthreadP.h (struct sem): New type. Actual semaphore type.
10612 * semaphoreP.h: Include pthreadP.h.
10613 * sem_getvalue.c: Adjust to sem_t change.
10614 * sem_init.c: Likewise.
10615 * sem_open.c: Likewise.
10616 * sem_post.c: Likewise.
10617 * sem_timedwait.c: Likewise.
10618 * sem_trywait.c: Likewise.
10619 * sem_wait.c: Likewise.
10620
106212002-10-04 Ulrich Drepper <drepper@redhat.com>
10622
10623 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10624 * tst-basic2.c: New file.
10625 * tst-exec1.c: New file.
10626 * tst-exec2.c: New file.
10627 * tst-exec3.c: New file.
10628
10629 * tst-fork1.c: Remove extra */.
10630
10631 * nptl 0.2 released. The API for IA-32 is complete.