* sysdeps/sparc/sparc32/fpu/libm-test-ulps: Update.
[platform/upstream/glibc.git] / nptl / ChangeLog
1 2006-03-01  Jakub Jelinek  <jakub@redhat.com>
2
3         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
4         lll_robust_mutex_trylock, lll_robust_mutex_lock,
5         lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
6         lll_robust_mutex_unlock): Define.
7         (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
8
9 2006-02-28  H.J. Lu  <hongjiu.lu@intel.com>
10
11         * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
12         instead of <clone.S>.
13
14 2006-02-27  Jakub Jelinek  <jakub@redhat.com>
15
16         * Makefile (libpthread-routines): Add
17         pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
18         and pthread_mutex_[sg]etprioceiling.
19         * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
20         pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
21         pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
22         pthread_mutex_setprioceiling.
23         * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
24         PTHREAD_PRIO_PROTECT): New enum values.
25         (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
26         pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
27         pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
28         prototypes.
29         * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
30         PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
31         (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
32         Define.
33         (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
34         PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
35         PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
36         (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
37         and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
38         * pthread_mutex_init.c (__pthread_mutex_init): For the time being
39         return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
40         protocol mutexes.
41         * pthread_mutex_getprioceiling.c: New file.
42         * pthread_mutex_setprioceiling.c: New file.
43         * pthread_mutexattr_getprioceiling.c: New file.
44         * pthread_mutexattr_setprioceiling.c: New file.
45         * pthread_mutexattr_getprotocol.c: New file.
46         * pthread_mutexattr_setprotocol.c: New file.
47
48 2006-02-27  Daniel Jacobowitz  <dan@codesourcery.com>
49
50         * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
51
52 2006-02-27  Roland McGrath  <roland@redhat.com>
53
54         * sysdeps/pthread/Subdirs: List nptl here too.
55         * configure (libc_add_on_canonical): New variable.
56
57         * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
58
59         * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
60         self to get main source tree's file.
61         * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
62         * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
63         * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
64         * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
65         * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
66         * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
67         * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
68         * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
69         * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
70         * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
71         * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
72         * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
73         * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
74
75         * Makefile: Use $(sysdirs) in vpath directive.
76
77         * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
78         (CPPFLAGS-timer_routines.c): Likewise.
79
80         * Makeconfig (includes): Variable removed.
81
82 2006-02-26  Roland McGrath  <roland@redhat.com>
83
84         * sysdeps/generic/pt-raise.c: Moved to ...
85         * pt-raise.c: ... here.
86         * sysdeps/generic/lowlevellock.h: Moved to ...
87         * lowlevellock.h: ... here.
88
89 2006-02-23  Roland McGrath  <roland@redhat.com>
90
91         * descr.h (struct pthread): Add final member `end_padding'.
92         (PTHREAD_STRUCT_END_PADDING): Use it.
93
94 2006-02-20  Roland McGrath  <roland@redhat.com>
95
96         * sysdeps/mips: Directory removed, saved in ports repository.
97         * sysdeps/unix/sysv/linux/mips: Likewise.
98
99 2006-02-18  Ulrich Drepper  <drepper@redhat.com>
100
101         * tst-robust1.c: Add second mutex to check that the mutex list is
102         handled correctly.
103
104 2006-02-17  Jakub Jelinek  <jakub@redhat.com>
105
106         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
107         lll_robust_mutex_trylock, lll_robust_mutex_lock,
108         lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
109         lll_robust_mutex_unlock): New macros.
110         (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
111         * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
112         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
113         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
114         * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
115
116 2006-02-17  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
117
118         * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
119         definitions.
120         * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
121
122 2006-02-17  Ulrich Drepper  <drepper@redhat.com>
123
124         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
125         (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
126         * sysdeps/unix/sysv/linux/i386/lowlevellock.h
127         (lll_robust_mutex_unlock): Likewise.
128
129 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
130
131         * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
132         Set robust_list.__next rather than robust_list.
133         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
134         (__pthread_list_t): New typedef.
135         (pthread_mutex_t): Replace __next and __prev fields with __list.
136         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
137         (__pthread_list_t): New typedef.
138         (pthread_mutex_t): Replace __next and __prev fields with __list.
139         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
140         (__pthread_list_t, __pthread_slist_t): New typedefs.
141         (pthread_mutex_t): Replace __next and __prev fields with __list.
142         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
143         (__pthread_list_t, __pthread_slist_t): New typedefs.
144         (pthread_mutex_t): Replace __next and __prev fields with __list.
145         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
146         (__pthread_list_t, __pthread_slist_t): New typedefs.
147         (pthread_mutex_t): Replace __next and __prev fields with __list.
148         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
149         (__pthread_slist_t): New typedef.
150         (pthread_mutex_t): Replace __next field with __list.
151
152 2006-02-15  Ulrich Drepper  <drepper@redhat.com>
153
154         * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
155         PTHREAD_MUTEX_OWNERDEAD.
156         (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
157         Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
158         * Makefile (libpthread-routines): Add lowlevelrobustlock.
159         * pthread_create.c (start_thread): Very much simplify robust_list loop.
160         * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
161         to PTHREAD_MUTEX_INCONSISTENT.
162         * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
163         * pthread_mutex_lock.c: Reimplement robust mutex handling.
164         * pthread_mutex_trylock.c: Likewise.
165         * pthread_mutex_timedlock.c: Likewise.
166         * pthread_mutex_unlock.c: Likewise.
167         * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
168         * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
169         lowlevelrobustlock.sym.
170         * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
171         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
172         definitions.
173         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
174         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
175         * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
176         * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
177         * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
178
179 2006-02-12  Ulrich Drepper  <drepper@redhat.com>
180
181         * allocatestack.c (allocate_stack): Initialize robust_list.
182         * init.c (__pthread_initialize_minimal_internal): Likewise.
183         * descr.h (struct xid_command): Pretty printing.
184         (struct pthread): Use __pthread_list_t or __pthread_slist_t for
185         robust_list.  Adjust macros.
186         * pthread_create.c (start_thread): Adjust robust_list handling.
187         * phtread_mutex_unlock.c: Don't allow unlocking from any thread
188         but the owner for all robust mutex types.
189         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
190         __pthread_list_t and __pthread_slist_t.  Use them in pthread_mutex_t.
191         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
192         * sysdeps/pthread/pthread.h: Adjust mutex initializers.
193
194         * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
195         openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
196
197 2006-02-08  Jakub Jelinek  <jakub@redhat.com>
198
199         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
200         lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
201
202 2006-01-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
203
204         * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
205         Return status.
206         (lll_futex_timed_wait): Define.
207
208 2006-01-19  Ulrich Drepper  <drepper@redhat.com>
209
210         * tst-cancel4.c: Test ppoll.
211
212 2006-01-18  Andreas Jaeger  <aj@suse.de>
213
214         [BZ #2167]
215         * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
216         (pthread_mutex_t): Follow changes for other archs.  Based on patch
217         by Jim Gifford <patches@jg555.com>.
218
219 2006-01-13  Richard Henderson  <rth@redhat.com>
220
221         * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
222
223 2006-01-10  Roland McGrath  <roland@redhat.com>
224
225         * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
226         * sysdeps/i386/jmpbuf-unwind.h: Likewise.
227         * sysdeps/mips/jmpbuf-unwind.h: Likewise.
228         * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
229         * sysdeps/s390/jmpbuf-unwind.h: Likewise.
230         * sysdeps/sh/jmpbuf-unwind.h: Likewise.
231         * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
232         * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
233         * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
234         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
235
236 2006-01-09  Roland McGrath  <roland@redhat.com>
237
238         * tst-initializers1-c89.c: New file.
239         * tst-initializers1-c99.c: New file.
240         * tst-initializers1-gnu89.c: New file.
241         * tst-initializers1-gnu99.c: New file.
242         * Makefile (tests): Add them.
243         (CFLAGS-tst-initializers1-c89.c): New variable.
244         (CFLAGS-tst-initializers1-c99.c): New variable.
245         (CFLAGS-tst-initializers1-gnu89.c): New variable.
246         (CFLAGS-tst-initializers1-gnu99.c): New variable.
247
248         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
249         Use __extension__ on anonymous union definition.
250         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
251         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
252         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
253         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
254         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
255
256 2006-01-08  Jakub Jelinek  <jakub@redhat.com>
257
258         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
259         Don't give the union a name because it changes the mangled name.
260         Instead name the struct for __data.
261         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
262         Likewise.
263         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
264         Likewise.
265
266 2006-01-09  Jakub Jelinek  <jakub@redhat.com>
267
268         * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
269         stack bias to mc_ftp field.
270
271 2006-01-07  Ulrich Drepper  <drepper@redhat.com>
272
273         * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
274         being too clever and reloading the futex value where it shouldn't.
275
276 2006-01-06  Ulrich Drepper  <drepper@redhat.com>
277
278         * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
279         correct type.
280
281 2006-01-06  Jakub Jelinek  <jakub@redhat.com>
282
283         * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
284         Add cfi directives.
285
286 2006-01-06  Ulrich Drepper  <drepper@redhat.com>
287
288         * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
289         * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
290         rename in tcbhead_t.
291
292         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
293         Don't give the union a name because it changes the mangled name.
294         Instead name the struct for __data.
295         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
296         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
297         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
298         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
299         * pthread_create.c (start_thread): Adjust robust mutex free loop.
300         * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
301
302 2006-01-05  Ulrich Drepper  <drepper@redhat.com>
303
304         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
305         Return status.
306         (lll_futex_timed_wait): Define.
307         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
308         * sysdeps/pthread/aio_misc.h: New file.
309
310 2006-01-03  Joseph S. Myers  <joseph@codesourcery.com>
311
312         * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
313
314 2006-01-03  Steven Munroe  <sjmunroe@us.ibm.com>
315
316         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
317         (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
318         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
319
320 2006-01-04  Ulrich Drepper  <drepper@redhat.com>
321
322         * tst-cancel24.cc: Use C headers instead of C++ headers.
323
324 2006-01-03  Jakub Jelinek  <jakub@redhat.com>
325
326         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
327         sparc-linux configured glibc.
328         (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
329         (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
330         __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
331         atomic_compare_and_exchange_val_24_acq instead of
332         atomic_compare_and_exchange_val_acq.
333         (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
334         instead of atomic_exchange_rel.
335         * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
336         * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
337         file.
338         * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
339         file.
340         * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
341         * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
342         * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
343         * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
344         * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
345         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
346         New file.
347         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
348         New file.
349         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
350         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
351         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
352         file.
353         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
354         file.
355         * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
356
357 2006-01-03  Ulrich Drepper  <drepper@redhat.com>
358
359         * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
360         mutex initializers.
361
362 2006-01-02  Jakub Jelinek  <jakub@redhat.com>
363
364         * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
365         (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
366         THREAD_COPY_POINTER_GUARD): Define.
367         * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
368         * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
369
370 2006-01-01  Ulrich Drepper  <drepper@redhat.com>
371
372         * version.c: Update copyright year.
373
374 2005-12-29  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
375
376         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
377         .eh_frame section, use cfi_* directives.
378         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
379
380 2005-12-30  Ulrich Drepper  <drepper@redhat.com>
381
382         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
383         now.
384
385 2005-12-29  Ulrich Drepper  <drepper@redhat.com>
386
387         * sysdeps/pthread/sigaction.c: Removed.
388         * sigaction.c: New file.
389         * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
390
391 2005-12-28  Ulrich Drepper  <drepper@redhat.com>
392
393         * Makefile (tests): Add tst-signal7.
394         * tst-signal7.c: New file.
395
396 2005-12-27  Roland McGrath  <roland@redhat.com>
397
398         * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
399         (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
400         * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
401         * sysdeps/i386/jmpbuf-unwind.h: Likewise.
402         * sysdeps/mips/jmpbuf-unwind.h: Likewise.
403         * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
404         * sysdeps/s390/jmpbuf-unwind.h: Likewise.
405         * sysdeps/sh/jmpbuf-unwind.h: Likewise.
406         * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
407         * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
408         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
409
410 2005-12-27  Jakub Jelinek  <jakub@redhat.com>
411
412         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
413         and __prev field to pthread_mutex_t.
414         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
415         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
416         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
417         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
418         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
419         to pthread_mutex_t.
420
421 2005-12-26  Ulrich Drepper  <drepper@redhat.com>
422
423         * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
424         PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
425         PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
426         PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
427         PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
428         and PTHREAD_MUTEXATTR_FLAG_BITS.
429         * descr.h (struct pthread): Add robust_list field and define
430         ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
431         * pthread_mutexattr_getrobust.c: New file.
432         * pthread_mutexattr_setrobust.c: New file.
433         * pthread_mutex_consistent.c: New file.
434         * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
435         pthread_mutexattr_setrobust, and pthread_mutex_consistent.
436         Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
437         Adjust pthread_mutex_t initializers.
438         * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
439         field to pthread_mutex_t.
440         * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
441         and __prev field to pthread_mutex_t.
442         * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
443         pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
444         * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
445         and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
446         * pthread_mutexattr_gettype.c: Likewise.
447         * pthread_mutexattr_setpshared.c: Likewise.
448         * pthread_mutexattr_settype.c: Likewise.
449         * pthread_mutex_init.c: Reject robust+pshared attribute for now.
450         Initialize mutex kind according to robust flag.
451         * pthread_mutex_lock.c: Implement local robust mutex.
452         * pthread_mutex_timedlock.c: Likewise.
453         * pthread_mutex_trylock.c: Likewise.
454         * pthread_mutex_unlock.c: Likewise.
455         * pthread_create.c (start_thread): Mark robust mutexes which remained
456         locked as dead.
457         * tst-robust1.c: New file.
458         * tst-robust2.c: New file.
459         * tst-robust3.c: New file.
460         * tst-robust4.c: New file.
461         * tst-robust5.c: New file.
462         * tst-robust6.c: New file.
463         * tst-robust7.c: New file.
464         * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
465         pthread_mutexattr_setrobust, and pthread_mutex_consistent.
466         (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
467         tst-robust5, tst-robust6, and tst-robust7.
468
469         * tst-typesizes.c: New file.
470         * Makefile (tests): Add tst-typesizes.
471
472         * tst-once3.c: More debug output.
473
474 2005-12-24  Ulrich Drepper  <drepper@redhat.com>
475
476         * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
477         missing after last change.
478
479         * version.c: Update copyright year.
480
481 2005-12-23  Ulrich Drepper  <drepper@redhat.com>
482
483         * pthread_mutex_destroy.c: Set mutex type to an invalid value.
484         * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
485         * pthread_mutex_trylock.c: Likewise.
486         * pthread_mutex_timedlock.c: Likewise.
487         * pthread_mutex_unlock.c: Likewise.
488
489 2005-12-22  Roland McGrath  <roland@redhat.com>
490
491         * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
492         so that #include_next's search location is not reset to the -I..
493         directory where <nptl/...> can be found.
494
495 2005-12-22  Ulrich Drepper  <drepper@redhat.com>
496
497         [BZ #1913]
498         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
499         Fix unwind info.  Remove useless branch prediction prefix.
500         * tst-cancel24.cc: New file.
501         * Makefile: Add rules to build and run tst-cancel24.
502
503 2005-12-21  Roland McGrath  <roland@redhat.com>
504
505         * libc-cancellation.c: Use <> rather than "" #includes.
506         * pt-cleanup.c: Likewise.
507         * pthread_create.c: Likewise.
508         * pthread_join.c: Likewise.
509         * pthread_timedjoin.c: Likewise.
510         * pthread_tryjoin.c: Likewise.
511         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
512         * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
513         * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
514         * unwind.c: Likewise.
515
516 2005-12-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
517
518         * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
519         * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
520         (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
521         THREAD_COPY_POINTER_GUARD): Define.
522
523 2005-12-19  Jakub Jelinek  <jakub@redhat.com>
524
525         * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
526         rather than one.
527         (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
528         THREAD_COPY_POINTER_GUARD): Define.
529         * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
530         * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
531         (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
532         THREAD_COPY_POINTER_GUARD): Define.
533         * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
534         * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
535         THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
536         * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
537         Use PTR_DEMANGLE for B0 if defined.
538
539 2005-12-17  Ulrich Drepper  <drepper@redhat.com>
540
541         * pthread_create.c (__pthread_create_2_1): Use
542         THREAD_COPY_POINTER_GUARD if available.
543         * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
544         * sysdeps/x86_64/tcb-offsets.sym: Likewise.
545         * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
546         Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
547         * sysdeps/x86_64/tls.h: Likewise.
548
549 2005-12-15  Roland McGrath  <roland@redhat.com>
550
551         * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
552
553 2005-12-13  Ulrich Drepper  <drepper@redhat.com>
554
555         * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
556         sysdeps/generic.
557         * errno-loc.c: New file.
558
559 2005-12-12  Roland McGrath  <roland@redhat.com>
560
561         * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
562         adjustments before choosing stack size.  Update minimum stack size
563         calculation to match allocate_stack change.
564
565 2005-12-12  Ulrich Drepper  <drepper@redhat.com>
566
567         * allocatestack.c (allocate_stack): Don't demand that there is an
568         additional full page available on the stack beside guard, TLS, the
569         minimum stack.
570
571 2005-11-24  Ulrich Drepper  <drepper@redhat.com>
572
573         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
574         (__cleanup_fct_attribute): Use __regparm__ not regparm.
575
576         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
577         compiling 32-bit code we must define __cleanup_fct_attribute.
578
579 005-11-24  Jakub Jelinek  <jakub@redhat.com>
580
581         [BZ #1920]
582         * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
583         __attribute__ instead of __attribute.
584         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
585         (__cleanup_fct_attribute): Likewise.
586
587 2005-11-17  Jakub Jelinek  <jakub@redhat.com>
588
589         * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
590         a write barrier before writing libgcc_s_getcfa.
591
592 2005-11-06  Ulrich Drepper  <drepper@redhat.com>
593
594         * sysdeps/unix/sysv/linux/configure: Removed.
595
596 2005-11-05  Ulrich Drepper  <drepper@redhat.com>
597
598         * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
599         optional init_array/fini_array support.
600
601 2005-10-24  Roland McGrath  <roland@redhat.com>
602
603         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
604         versioned_symbol use.
605
606 2005-10-16  Roland McGrath  <roland@redhat.com>
607
608         * init.c (__pthread_initialize_minimal_internal): Even when using a
609         compile-time default stack size, apply the minimum that allocate_stack
610         will require, and round up to page size.
611
612 2005-10-10  Daniel Jacobowitz  <dan@codesourcery.com>
613
614         * Makefile ($(test-modules)): Remove static pattern rule.
615
616 2005-10-14  Jakub Jelinek  <jakub@redhat.com>
617             Ulrich Drepper  <drepper@redhat.com>
618
619         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
620         alignment in callback function.
621         * Makefile: Add rules to build and run tst-align3.
622         * tst-align3.c: New file.
623
624 2005-10-03  Jakub Jelinek  <jakub@redhat.com>
625
626         * allocatestack.c (setxid_signal_thread): Add
627         INTERNAL_SYSCALL_DECL (err).
628
629 2005-10-02  Jakub Jelinek  <jakub@redhat.com>
630
631         * allocatestack.c (setxid_signal_thread): Need to use
632         atomic_compare_and_exchange_bool_acq.
633
634 2005-10-01  Ulrich Drepper  <drepper@redhat.com>
635             Jakub Jelinek  <jakub@redhat.com>
636
637         * descr.h: Define SETXID_BIT and SETXID_BITMASK.  Adjust
638         CANCEL_RESTMASK.
639         (struct pthread): Move specific_used field to avoid padding.
640         Add setxid_futex field.
641         * init.c (sighandler_setxid): Reset setxid flag and release the
642         setxid futex.
643         * allocatestack.c (setxid_signal_thread): New function.  Broken
644         out of the bodies of the two loops in __nptl_setxid.  For undetached
645         threads check whether they are exiting and if yes, don't send a signal.
646         (__nptl_setxid): Simplify loops by using setxid_signal_thread.
647         * pthread_create.c (start_thread): For undetached threads, check
648         whether setxid bit is set.  If yes, wait until signal has been
649         processed.
650
651         * allocatestack.c (STACK_VARIABLES): Initialize them.
652         * pthread_create.c (__pthread_create_2_1): Initialize pd.
653
654 2004-09-02  Jakub Jelinek  <jakub@redhat.com>
655
656         * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
657         waiters, awake all waiters on the associated mutex.
658
659 2005-09-22  Roland McGrath  <roland@redhat.com>
660
661         * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
662         ../sysdeps/x86_64/hp-timing.h).
663
664 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
665
666         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
667         FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
668         (lll_futex_wake_unlock): Define.
669         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
670         FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
671         (lll_futex_wake_unlock): Define.
672         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
673         FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
674         (lll_futex_wake_unlock): Define.
675         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
676         FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
677         (lll_futex_wake_unlock): Define.
678         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
679         FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
680         (lll_futex_wake_unlock): Define.
681         * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
682         lll_futex_wake_unlock.
683         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
684         (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
685         (__pthread_cond_signal): Use FUTEX_WAKE_OP.
686         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
687         (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
688         (__pthread_cond_signal): Use FUTEX_WAKE_OP.
689
690 2005-09-05  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
691
692         * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
693         Fix typo in register name.
694
695 2005-08-23  Ulrich Drepper  <drepper@redhat.com>
696
697         * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
698         Use __sigfillset.  Document that sigfillset does the right thing wrt
699         to SIGSETXID.
700
701 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
702
703         [BZ #1102]
704         * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
705         PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
706         PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
707         PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
708         PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
709         PTHREAD_COND_INITIALIZER): Supply zeros for all fields
710         in the structure.
711         * Makefile (tests): Add tst-initializers1.
712         (CFLAGS-tst-initializers1.c): Set.
713         * tst-initializers1.c: New test.
714
715 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
716
717         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
718         Make sure __flags are located at offset 48 from the start of the
719         structure.
720
721 2005-07-02  Roland McGrath  <roland@redhat.com>
722
723         * Makeconfig: Comment fix.
724
725 2005-07-05  Jakub Jelinek  <jakub@redhat.com>
726
727         * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
728         * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
729         is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
730         (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
731         TLS_PRE_TCB_SIZE is sizeof (struct pthread).
732         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
733         * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
734         Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
735         * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
736         assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
737
738 2005-06-25  Jakub Jelinek  <jakub@redhat.com>
739
740         * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
741         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
742         * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
743         fields.
744         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
745         * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
746         field.  Put in sysinfo field unconditionally.
747         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
748         * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
749         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
750         * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
751         fields.
752         (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
753         * pthread_create.c (__pthread_create_2_1): Use
754         THREAD_COPY_STACK_GUARD macro.
755         * Makefile: Add rules to build and run tst-stackguard1{,-static}
756         tests.
757         * tst-stackguard1.c: New file.
758         * tst-stackguard1-static.c: New file.
759
760 2005-06-14  Alan Modra  <amodra@bigpond.net.au>
761
762         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
763         Invoke CGOTSETUP and CGOTRESTORE.
764         (CGOTSETUP, CGOTRESTORE): Define.
765
766 2005-05-29  Richard Henderson  <rth@redhat.com>
767
768         * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
769         (tf_write, tf_writev): Use it.
770         (do_test): Use socketpair instead of pipe.  Set SO_SNDBUF to
771         the system minimum.
772
773 2005-05-23  Jakub Jelinek  <jakub@redhat.com>
774
775         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
776         [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
777         __librt_*_asynccancel@local.
778
779 2005-05-17  Alan Modra  <amodra@bigpond.net.au>
780
781         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
782         all occurrences of JUMPTARGET.  Instead append @local to labels.
783
784 2005-05-20  Jakub Jelinek  <jakub@redhat.com>
785
786         * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
787         size/alignment of struct pthread rather than tcbhead_t.
788         * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
789         Likewise.
790         * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
791         Likewise.
792         * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
793         Likewise.
794
795 2005-05-19  Richard Henderson  <rth@redhat.com>
796
797         * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
798         __sync_val_compare_and_swap, not explicit _si variant.
799         * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
800
801 2005-05-03  Ulrich Drepper  <drepper@redhat.com>
802
803         [BZ #915]
804         * sysdeps/pthread/pthread.h: Avoid empty initializers.
805
806 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
807
808         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
809         .eh_frame section, use cfi_* directives.
810
811 2005-04-27  Jakub Jelinek  <jakub@redhat.com>
812
813         * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
814         of "" includes.
815
816 2005-04-27  Ulrich Drepper  <drepper@redhat.com>
817
818         [BZ #1075]
819         * tst-cancel17.c (do_test): Add arbitrary factor to make sure
820         aio_write blocks.
821
822 2005-04-27  Roland McGrath  <roland@redhat.com>
823
824         * Makefile (tests): Remove tst-clock2.
825
826         * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
827         CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
828         translating to the kernel clockid_t for our own process/thread clock.
829
830         * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
831
832 2005-04-15  Jakub Jelinek  <jakub@redhat.com>
833
834         * old_pthread_cond_init.c: Include <errno.h>.
835         (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
836         process shared or uses clock other than CLOCK_REALTIME.
837         * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
838
839 2005-04-13  David S. Miller  <davem@davemloft.net>
840
841         * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
842         * sysdeps/sparc/sparc64/clone.S: New file.
843
844 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
845
846         [BZ #1102]
847         * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
848         __inline instead of inline.
849         * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
850
851 2005-03-31  Jakub Jelinek  <jakub@redhat.com>
852
853         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
854         functionally equivalent, but shorter instructions.
855         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
856         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
857         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
858         Likewise.
859         * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
860         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
861         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
862         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
863         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
864         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
865         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
866         Likewise.
867         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
868         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
869         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
870         * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
871         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
872
873 2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
874
875         * sysdeps/mips/Makefile: New file.
876         * sysdeps/mips/nptl-sysdep.S: New file.
877         * sysdeps/mips/tcb-offsets.sym: New file.
878         * sysdeps/mips/pthread_spin_lock.S: New file.
879         * sysdeps/mips/pthread_spin_trylock.S: New file.
880         * sysdeps/mips/pthreaddef.h: New file.
881         * sysdeps/mips/tls.h: New file.
882         * sysdeps/mips/jmpbuf-unwind.h: New file.
883         * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
884         * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
885         * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
886         * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
887         * sysdeps/unix/sysv/linux/mips/fork.c: New file.
888         * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
889         * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
890         * sysdeps/unix/sysv/linux/mips/clone.S: New file.
891         * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
892         * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
893
894 2005-03-23  Ulrich Drepper  <drepper@redhat.com>
895
896         [BZ #1112]
897         * pthread_create.c (__pthread_create_2_1): Rename syscall error
898         variable to scerr.
899
900 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
901
902         * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
903
904 2005-02-25  Roland McGrath  <roland@redhat.com>
905
906         * alloca_cutoff.c: Correct license text.
907         * tst-unload.c: Likewise.
908         * sysdeps/pthread/allocalim.h: Likewise.
909         * sysdeps/pthread/pt-initfini.c: Likewise.
910         * sysdeps/pthread/bits/libc-lock.h: Likewise.
911         * sysdeps/pthread/bits/sigthread.h: Likewise.
912         * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
913         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
914
915 2005-02-16  Roland McGrath  <roland@redhat.com>
916
917         * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
918         Use unsigned int * for ptr_nthreads.
919
920 2005-02-14  Alan Modra  <amodra@bigpond.net.au>
921
922         [BZ #721]
923         * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
924         gcc4.
925
926 2005-02-07  Richard Henderson  <rth@redhat.com>
927
928         [BZ #787]
929         * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
930         argument.
931
932 2004-11-03  Marcus Brinkmann  <marcus@gnu.org>
933
934         * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
935         order of arguments in invocation of atomic_add_zero.
936
937 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
938
939         [BZ #737]
940         * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
941         Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
942         at least gotntpoff relocation and addition.
943         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
944         Likewise.
945         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
946         Likewise.
947         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
948         Likewise.
949
950 2005-01-06  Ulrich Drepper  <drepper@redhat.com>
951
952         * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
953         entry for static tls deallocation fix.
954         * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
955         also contains information whether the memory pointed to is static
956         TLS or not.
957         * sysdeps/i386/tls.h: Likewise.
958         * sysdeps/ia64/tls.h: Likewise.
959         * sysdeps/powerpc/tls.h: Likewise.
960         * sysdeps/s390/tls.h: Likewise.
961         * sysdeps/sh/tls.h: Likewise.
962         * sysdeps/sparc/tls.h: Likewise.
963         * sysdeps/x86_64/tls.h: Likewise.
964
965 2004-12-27  Ulrich Drepper  <drepper@redhat.com>
966
967         * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
968
969 2004-12-21  Jakub Jelinek  <jakub@redhat.com>
970
971         * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
972         %esp.
973         * Makefile (tests): Add tst-align2.
974         * tst-align2.c: New test.
975         * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
976         -mpreferred-stack-boundary=4.
977
978 2004-12-18  Roland McGrath  <roland@redhat.com>
979
980         * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
981         New file removed withdrawn for the moment.
982
983 2004-12-17  Richard Henderson  <rth@redhat.com>
984
985         * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
986         * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
987
988 2004-12-16  Ulrich Drepper  <drepper@redhat.com>
989
990         * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
991         Increased PTHREAD_STACK_MIN.
992
993         * tst-context1.c (stacks): Use bigger stack size.
994
995 2004-12-16  Jakub Jelinek  <jakub@redhat.com>
996
997         * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
998         * sysdeps/sparc/tcb-offsets.sym: Add TID.
999
1000 2004-12-15  Jakub Jelinek  <jakub@redhat.com>
1001
1002         * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
1003         * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
1004         * sysdeps/s390/tcb-offsets.sym (TID): Add.
1005
1006 2004-12-15  Ulrich Drepper  <drepper@redhat.com>
1007
1008         * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
1009
1010 2004-12-14  Ulrich Drepper  <drepper@redhat.com>
1011
1012         * sysdeps/powerpc/tcb-offsets.sym: Add TID.
1013         * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
1014
1015         * tst-getpid1.c: If child crashes, report this first.  Print which
1016         signal.
1017
1018 2004-12-09  Ulrich Drepper  <drepper@redhat.com>
1019
1020         * init.c (__pthread_initialize_minimal_internal): Also unblock
1021         SIGSETXID.
1022
1023 2004-12-01  Jakub Jelinek  <jakub@redhat.com>
1024
1025         * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
1026         _POSIX_THREAD_CPUTIME): Define to 0.
1027         * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
1028         handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
1029         * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
1030         __timer_signal_thread_tclk): Remove.
1031         (init_module): Remove their initialization.
1032         (thread_cleanup): Remove their cleanup assertions.
1033         * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
1034         __timer_signal_thread_tclk): Remove.
1035         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
1036         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
1037         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
1038
1039 2004-12-07  Jakub Jelinek  <jakub@redhat.com>
1040
1041         * sysdeps/ia64/tcb-offsets.sym (TID): Add.
1042         * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
1043
1044         * Makefile (tests): Add tst-getpid2.
1045         * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
1046         (do_test): Use it.  Use __clone2 instead of clone on ia64.
1047         * tst-getpid2.c: New test.
1048
1049 2004-12-07  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1050
1051         * sysdeps/unix/sysv/linux/sh/clone.S: New file.
1052
1053 2004-12-04  Ulrich Drepper  <drepper@redhat.com>
1054
1055         * Makefile (tests): Add tst-getpid1.
1056         * tst-getpid1.c: New file.
1057         * sysdeps/unix/sysv/linux/i386/clone.S: New file.
1058         * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
1059
1060 2004-12-02  Roland McGrath  <roland@redhat.com>
1061
1062         * Makefile (libpthread-nonshared): Variable removed.
1063         ($(objpfx)libpthread_nonshared.a): Target removed.
1064         ($(inst_libdir)/libpthread_nonshared.a): Likewise.
1065         These are now handled by generic magic from
1066         libpthread-static-only-routines being set.
1067
1068 2004-11-27  Ulrich Drepper  <drepper@redhat.com>
1069
1070         * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
1071         _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
1072         _POSIX_THREAD_PRIO_PROTECT): Define.
1073         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1074         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1075         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
1076
1077 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
1078
1079         * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
1080         _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
1081         _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
1082         _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
1083         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
1084         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1085         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
1086
1087 2004-11-24  Ulrich Drepper  <drepper@redhat.com>
1088
1089         * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
1090
1091         * Makefile (libpthread-routines): Add pthread_setschedprio.
1092         * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
1093         * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
1094         * pthread_setschedprio.c: New file.
1095
1096 2004-11-20  Jakub Jelinek  <jakub@redhat.com>
1097
1098         * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
1099         * pthread_cancel.c (pthread_create): Likewise.
1100
1101         * Makefile (libpthread-routines): Add vars.
1102         * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
1103         * init.c (__default_stacksize, __is_smp): Remove.
1104         * vars.c: New file.
1105         * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
1106         and define a wrapper macro.
1107         (PTHREAD_STATIC_FN_REQUIRE): Define.
1108         * allocatestack.c (__find_thread_by_id): Undefine.
1109         * pthread_create (__pthread_keys): Remove.
1110         (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
1111         pthread_key_create, pthread_setspecific, pthread_getspecific): Add
1112         PTHREAD_STATIC_FN_REQUIRE.
1113
1114 2004-11-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1115
1116         * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
1117         parameter to REGISTER macro.
1118
1119 2004-11-17  Roland McGrath  <roland@redhat.com>
1120
1121         * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
1122         Make sure SIGCANCEL is blocked as well.
1123
1124 2004-11-10  Jakub Jelinek  <jakub@redhat.com>
1125
1126         * sysdeps/pthread/setxid.h: New file.
1127         * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
1128         (struct xid_command): Add forward decl.
1129         (struct pthread_functions): Change return type of __nptl_setxid hook
1130         to int.
1131         * pthreadP.h (__nptl_setxid): Change return type to int.
1132         * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
1133         calling thread, return its return value and set errno on failure.
1134         * descr.h (struct xid_command): Change id type to long array.
1135
1136         * Makefile: Add rules to build and test tst-setuid1 and
1137         tst-setuid1-static.
1138         * tst-setuid1.c: New test.
1139         * tst-setuid1-static.c: New test.
1140
1141 2004-11-10  Jakub Jelinek  <jakub@redhat.com>
1142
1143         * Makefile (tests): Add tst-exit3.
1144         * tst-exit3.c: New test.
1145
1146 2004-11-09  Ulrich Drepper  <drepper@redhat.com>
1147
1148         * Makefile (tests): Add tst-exit2.
1149         * tst-exit2.c: New file.
1150
1151 2004-11-09  Roland McGrath  <roland@redhat.com>
1152
1153         [BZ #530]
1154         * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
1155         here, before calling clone.
1156         * pthread_create.c (start_thread): Don't do it here.
1157
1158 2004-11-02  Jakub Jelinek  <jakub@redhat.com>
1159
1160         * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
1161
1162 2004-10-29  Kaz  Kojima  <kkojima@rr.iij4u.or.jp>
1163
1164         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
1165         Set ETIMEDOUT to errno when time is up.  Tweak to avoid
1166         assembler warning.
1167
1168 2004-10-28  Jakub Jelinek  <jakub@redhat.com>
1169
1170         * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
1171         if sched_priority is not between minprio and maxprio.
1172
1173 2004-10-25  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1174
1175         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1176         (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
1177
1178         * sysdeps/unix/sysv/linux/sh/lowlevellock.S
1179         (__lll_mutex_timedlock_wait): Fix a bad branch condition.
1180
1181 2004-10-24  Ulrich Drepper  <drepper@redhat.com>
1182
1183         * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
1184         not-cancelable I/O functions.
1185
1186 2004-10-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1187
1188         * sysdeps/unix/sysv/linux/sh/lowlevellock.S
1189         (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
1190         make sure 2 is stored in the futex and we looked at the old value.
1191         Fix a few other problems to return the correct value.
1192
1193 2004-10-14  Richard Henderson  <rth@redhat.com>
1194
1195         * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
1196         make gcc4 happy.
1197
1198 2004-10-06  Jakub Jelinek  <jakub@redhat.com>
1199
1200         * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
1201         of pthread-functions.h and pthreaddef.h.
1202         * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
1203
1204         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1205         Change __data.__nwaiters from int to unsigned int.
1206
1207         * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
1208         sysconf (_SC_THREAD_CPUTIME) returns negative value.
1209
1210         * allocatestack.c (__find_thread_by_id): Move attribute_hidden
1211         before return type.
1212
1213         * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
1214         (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
1215
1216 2004-10-06  Ulrich Drepper  <drepper@redhat.com>
1217
1218         * tst-cancel4.c (tf_msgrcv): Check for failure in msgget.  If the
1219         test fails, remove message queue.
1220         (tf_msgsnd): Likewise.
1221
1222 2004-10-05  Jakub Jelinek  <jakub@redhat.com>
1223
1224         * tst-clock1.c: Change #ifdef to #if defined.
1225         * tst-clock2.c: Likewise.
1226         * tst-cond11.c: Likewise.
1227
1228         * sysdeps/pthread/timer_create.c (timer_create): Use
1229         defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
1230         defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
1231         THREAD_CPUTIME.
1232
1233 2004-10-05  Jakub Jelinek  <jakub@redhat.com>
1234
1235         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
1236         _POSIX_THREAD_CPUTIME): Define to 0.
1237
1238 2004-10-04  Ulrich Drepper  <drepper@redhat.com>
1239
1240         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
1241         and _POSIX_THREAD_CPUTIME to zero.
1242         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
1243         * tst-barrier2.c: Fix testing for POSIX feature.
1244         * tst-clock1.c: Likewise.
1245         * tst-clock2.c: Likewise.
1246         * tst-cond11.c: Likewise.
1247         * tst-cond4.c: Likewise.
1248         * tst-cond6.c: Likewise.
1249         * tst-flock2.c: Likewise.
1250         * tst-mutex4.c: Likewise.
1251         * tst-mutex9.c: Likewise.
1252         * tst-rwlock12.c: Likewise.
1253         * tst-rwlock4.c: Likewise.
1254         * tst-signal1.c: Likewise.
1255         * tst-spin2.c: Likewise.
1256         * sysdeps/pthread/posix-timer.h: Likewise.
1257         * sysdeps/pthread/timer_create.c: Likewise.
1258         * sysdeps/pthread/timer_routines.c: Likewise.
1259
1260 2004-10-01  Ulrich Drepper  <drepper@redhat.com>
1261
1262         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1263         (__lll_mutex_timedlock_wait): Address futex correctly.
1264
1265         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
1266         (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
1267         make sure 2 is stored in the futex and we looked at the old value.
1268         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1269         (__lll_mutex_timedlock_wait): Likewise.  Fix a few other problems
1270         which might very well made the code not working at all before.
1271         [BZ #417]
1272
1273 2004-09-28  Ulrich Drepper  <drepper@redhat.com>
1274
1275         * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
1276         allow SIGSETXID to be sent.
1277         * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
1278         for SIGSETXID to be defined.
1279         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
1280         SIGSETXID cannot be blocked.
1281
1282         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1283         Add __extension__ to long long types.
1284         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1285         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1286         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1287         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1288         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
1289         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1290         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1291
1292 2004-09-25  Ulrich Drepper  <drepper@redhat.com>
1293
1294         * descr.h (struct pthread): Add stopped_start field.
1295         * sysdeps/pthread/createthread.c (create_thread): Set
1296         start_stopped flag in descriptor for new thread appropriately.
1297         * pthread_create.c (start_thread): Only take lock to be stopped on
1298         startup if stopped_start flag says so.
1299
1300 2004-09-24  Ulrich Drepper  <drepper@redhat.com>
1301
1302         * pthread_create.c (__pthread_create_2_1): Remember whether thread
1303         is created detached and if yes, do not try to free the stack in case
1304         the thread creation failed.
1305         * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
1306         call fails.  Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
1307         case there has been no error.  [BZ #405]
1308
1309         * pthread_create.c (start_thread): Don't wait for scheduler data
1310         etc to be set at the beginning of the function.  The cancellation
1311         infrastructure must have been set up.  And enable async
1312         cancellation before potentially going to sleep.  [BZ #401]
1313
1314 2004-09-20  Ulrich Drepper  <drepper@redhat.com>
1315
1316         * Versions: Remove exports for pthread_set*id_np functions.
1317         * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
1318         for now.
1319         * Makefile: Don't build pthread_set*id code for now.
1320
1321 2004-09-19  Ulrich Drepper  <drepper@redhat.com>
1322
1323         * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
1324         internal use.
1325         * allocatestack.c (__nptl_setxid): New function.
1326         * descr.h (struct xid_command): Define type.
1327         * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
1328         (sighandler_setxid): New function.
1329         (__pthread_initialize_minimal): Register sighandler_setxid for
1330         SIGCANCEL.
1331         * pt-allocrtsig.c: Update comment.
1332         * pthreadP.h: Define SIGSETXID.  Declare __xidcmd variable.
1333         Declare __nptl_setxid.
1334         * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
1335         * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
1336         pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
1337         pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
1338         and pthread_setresuid_np.
1339         * pthread_setgid_np.c: New file.
1340         * pthread_setuid_np.c: New file.
1341         * pthread_setegid_np.c: New file.
1342         * pthread_seteuid_np.c: New file.
1343         * pthread_setregid_np.c: New file.
1344         * pthread_setreuid_np.c: New file.
1345         * pthread_setresgid_np.c: New file.
1346         * pthread_setresuid_np.c: New file.
1347         * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
1348         pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
1349         pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
1350         and pthread_setresuid_np.
1351         * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
1352         pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
1353         pthread_setregid, and pthread_setresgid.
1354
1355 2004-09-18  Ulrich Drepper  <drepper@redhat.com>
1356
1357         * allocatestack.c (allocate_stack): Return EAGAIN instead of
1358         ENOMEM when out of memory.
1359
1360 2004-09-10  Roland McGrath  <roland@redhat.com>
1361
1362         [BZ #379]
1363         * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
1364         code, since we don't try to use the broken CLONE_STOPPED any more.
1365         * pthread_create.c (start_thread): Likewise.
1366
1367 2004-09-15  Richard Henderson  <rth@redhat.com>
1368
1369         * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
1370
1371 2004-09-01  David Mosberger  <davidm@hpl.hp.com>
1372
1373         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
1374         (__libc_unwind_longjmp): Delete macro and declare as function.
1375         * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
1376         __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
1377         nptl directory.
1378         * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
1379         * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
1380         * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
1381
1382 2004-09-12  Ulrich Drepper  <drepper@redhat.com>
1383
1384         * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
1385         for __USE_XOPEN2K.
1386         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
1387         types also for __USE_XOPEN2K.
1388         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1389         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1390         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1391         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1392         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1393         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1394         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1395         [BZ #320]
1396
1397 2004-09-08  Ulrich Drepper  <drepper@redhat.com>
1398
1399         * sysdeps/pthread/pthread.h
1400         (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
1401         (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
1402         (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
1403         (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
1404         [BZ #375]
1405
1406 2004-09-07  Ulrich Drepper  <drepper@redhat.com>
1407
1408         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
1409         PSEUDO to be used with . prefix.
1410
1411         * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
1412         Use atomic_increment instead of atomic_exchange_and_add.
1413         * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
1414         Likewise.
1415         * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
1416         Likewise.
1417         * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1418         Likewise.
1419
1420         * allocatestack.c (allocate_stack): Use atomic_increment_val
1421         instead of atomic_exchange_and_add.
1422         * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
1423         * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1424         Likewise.
1425         * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
1426         Likewise.
1427
1428         * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
1429         the initialization function might throw.
1430
1431 2005-09-05  Richard Henderson  <rth@redhat.com>
1432
1433         * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
1434         Move definition inside libpthread, libc, librt check.  Provide
1435         definition for rtld.
1436
1437 2004-09-02  Ulrich Drepper  <drepper@redhat.com>
1438
1439         * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
1440         * sysdeps/i386/jmpbuf-unwind.h: Likewise
1441         * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
1442         * sysdeps/s390/jmpbuf-unwind.h: Likewise.
1443         * sysdeps/sh/jmpbuf-unwind.h: Likewise.
1444         * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
1445         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
1446         * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
1447         * unwind.c: Use it.
1448
1449         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1450         Rename __data.__clock to __data.__nwaiters, make it unsigned int.
1451         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1452         Likewise.
1453         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1454         Decrement __nwaiters.  If pthread_cond_destroy has been called and
1455         this is the last waiter, signal pthread_cond_destroy caller and
1456         avoid using the pthread_cond_t structure after unlock.
1457         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1458         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1459         Read clock type from the least significant bits of __nwaiters instead
1460         of __clock.
1461         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1462         * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
1463
1464 2004-08-31  Jakub Jelinek  <jakub@redhat.com>
1465
1466         [BZ #342]
1467         * Makefile (tests): Add tst-cond20 and tst-cond21.
1468         * tst-cond20.c: New test.
1469         * tst-cond21.c: New test.
1470         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
1471         (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
1472         it unsigned int.
1473         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
1474         Likewise.
1475         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
1476         (pthread_cond_t): Likewise.
1477         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
1478         Likewise.
1479         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1480         Likewise.
1481         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
1482         Likewise.
1483         * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
1484         (cond_nwaiters): New.
1485         (clock_bits): New.
1486         * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
1487         if there are waiters not signalled yet.
1488         Wait until all already signalled waiters wake up.
1489         * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
1490         __nwaiters.  If pthread_cond_destroy has been called and this is the
1491         last waiter, signal pthread_cond_destroy caller and avoid using
1492         the pthread_cond_t structure after unlock.
1493         (__pthread_cond_wait): Increment __nwaiters in the beginning,
1494         decrement it when leaving.  If pthread_cond_destroy has been called
1495         and this is the last waiter, signal pthread_cond_destroy caller.
1496         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1497         Likewise.  Read clock type from the least significant bits of
1498         __nwaiters instead of __clock.
1499         * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
1500         whether clock ID can be encoded in COND_CLOCK_BITS bits.
1501         * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
1502         clock type just from the last COND_CLOCK_BITS bits of value.
1503         * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
1504         instead of __clock, just from second bit of condattr's value.
1505
1506 2004-08-30  Jakub Jelinek  <jakub@redhat.com>
1507
1508         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
1509         bits/wordsize.h.  Make the header match i386 header when __WORDSIZE
1510         != 64.
1511         * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1512
1513 2004-08-15  Roland McGrath  <roland@frob.com>
1514
1515         * pthread_atfork.c: Update copyright terms including special exception
1516         for these trivial files, which are statically linked into executables
1517         that use dynamic linking for the significant library code.
1518
1519 2004-08-09  Jakub Jelinek  <jakub@redhat.com>
1520
1521         * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
1522         pthread_rwlock_rdlock.
1523         * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
1524         Decrease __nr_readers_queued after reacquiring lock.
1525         * sysdeps/pthread/pthread_rwlock_timedrdlock
1526         (pthread_rwlock_timedrdlock): Likewise.
1527         Reported by Bob Cook <bobcook47@hotmail.com>.
1528
1529 2004-08-11  Jakub Jelinek  <jakub@redhat.com>
1530
1531         * tst-rwlock14.c (tf): Read main thread handle from *ARG
1532         before pthread_barrier_wait.
1533
1534 2004-08-07  Ulrich Drepper  <drepper@redhat.com>
1535
1536         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1537         Remove unnecessary exception handling data.
1538
1539 2004-07-23  Jakub Jelinek  <jakub@redhat.com>
1540
1541         [BZ #284]
1542         * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
1543         instead of clockid_t.
1544
1545 2004-07-21  Roland McGrath  <roland@redhat.com>
1546
1547         * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
1548
1549 2004-07-19  Roland McGrath  <roland@redhat.com>
1550
1551         * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
1552
1553 2004-07-02  Roland McGrath  <roland@redhat.com>
1554
1555         * configure: Don't exit.
1556
1557 2004-07-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1558
1559         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1560         (__pthread_cond_timedwait): Check for invalid nanosecond in
1561         timeout value.
1562
1563 2004-07-07  Ulrich Drepper  <drepper@redhat.com>
1564
1565         * Makefile: Add rules to build and run tst-fini1.
1566         * tst-fini1.c: New file.
1567         * tst-fini1mod.c: New file.
1568
1569 2004-07-05  Ulrich Drepper  <drepper@redhat.com>
1570
1571         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
1572         if no cancellation support is needed.
1573         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1574         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
1575         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
1576         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
1577         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
1578         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
1579         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
1580         * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
1581         * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
1582
1583         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
1584         only if not already defined.
1585
1586 2004-07-05  Jakub Jelinek  <jakub@redhat.com>
1587
1588         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
1589         constraint "m" instead of "0" for futex.
1590
1591         * shlib-versions: Add powerpc64-.*-linux.*.
1592
1593 2004-07-04  Jakub Jelinek  <jakub@redhat.com>
1594
1595         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
1596         (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
1597         for valid tv_nsec.
1598         * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
1599         1 billion and 64-bit tv_nsec which is valid when truncated to 32
1600         bits.
1601
1602 2004-06-29  Roland McGrath  <roland@redhat.com>
1603
1604         * Banner: NPTL no longer has its own version number.
1605         * Makefile (nptl-version): Variable removed.
1606         * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
1607         using $(version), the glibc version number.
1608
1609 2004-06-29  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1610
1611         * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
1612         Fix branch offset for a PLT entry.
1613         * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
1614         Likewise.
1615         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
1616         Likewise.
1617         * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
1618         Likewise.
1619         * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
1620         Likewise.
1621
1622 2004-06-28  Jakub Jelinek  <jakub@redhat.com>
1623
1624         * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
1625         unconditionally.
1626
1627 2004-06-28  Jakub Jelinek  <jakub@redhat.com>
1628
1629         * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1630         (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
1631         instead of tv_sec.
1632         * sysdeps/pthread/pthread_rwlock_timedrdlock.c
1633         (pthread_rwlock_timedrdlock): Likewise.
1634
1635 2004-06-22  Jakub Jelinek  <jakub@redhat.com>
1636
1637         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1638         Set __r7 to val, not mutex.
1639
1640 2004-06-27  Ulrich Drepper  <drepper@redhat.com>
1641
1642         * Makefile: Add rules to build tst-rwlock14.
1643         * tst-rwlock14.c: New file.
1644
1645 2004-06-24  Boris Hu  <boris.hu@intel.com>
1646
1647         * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
1648         check.
1649         * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
1650
1651 2004-06-19  Andreas Jaeger  <aj@suse.de>
1652
1653         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
1654         assembler in last patch.
1655
1656 2004-06-17  Ulrich Drepper  <drepper@redhat.com>
1657
1658         * sysdeps/pthread/pthread_cond_timedwait.c
1659         (__pthread_cond_timedwait): Also check for negativ nanoseconds.
1660         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1661         (__pthread_cond_timedwait): Check for invalid nanosecond in
1662         timeout value.
1663         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1664         * tst-cond19.c: New file.
1665         * Makefile: Add rules to build and run tst-cond19.
1666
1667 2004-06-15  Steven Munroe  <sjmunroe@us.ibm.com>
1668
1669         * tst-context1.c (GUARD_PATTERN): Defined.
1670         (tst_context_t): Define struct containing ucontext_t & guard words.
1671         (ctx): Declare as an array of tst_context_t.
1672         (fct): Verify uc_link & guard words are still valid.
1673         (tf): Initialize guard words in ctx.  Adjust ctx refs for new struct.
1674
1675 2004-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1676
1677         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1678         Add __data.__futex field, reshuffle __data.__clock.
1679         * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
1680         (__pthread_cond_signal): Increment __futex at the same time as
1681         __wakeup_seq or __total_seq.  Pass address of __futex instead of
1682         address of low 32-bits of __wakeup_seq to futex syscall.
1683         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1684         (__pthread_cond_wait): Likewise.  Pass __futex value from before
1685         releasing internal lock to FUTEX_WAIT.
1686         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1687         (__pthread_cond_timedwait): Likewise.
1688         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
1689         (FUTEX_CMP_REQUEUE): Define.
1690         (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1691         Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1692         Pass __futex value from before the unlock and __futex address instead
1693         of address of low 32-bits of __wakeup_seq to futex syscall.
1694         Fallback to FUTEX_WAKE all on any errors.
1695
1696 2004-06-08  Jakub Jelinek  <jakub@redhat.com>
1697
1698         * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
1699         comment typo.
1700         * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
1701         * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
1702         * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
1703         * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
1704         Likewise.  Reported by Bob Cook <bobcook47@hotmail.com>.
1705
1706 2004-06-11  Martin Schwidefsky  <schwidefsky@de.ibm.com>
1707
1708         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
1709         Add memory clobber to inline assembly.
1710         (__lll_mutex_trylock): Likewise.
1711         (__lll_mutex_cond_trylock): Likewise.
1712
1713 2004-06-07  Martin Schwidefsky  <schwidefsky@de.ibm.com>
1714
1715         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1716         Pass val argument as 6th system call argument in %r7.
1717
1718 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1719
1720         * Makefile (tests): Add tst-cond16.
1721         * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
1722         * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
1723         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1724         Add __data.__futex field, reshuffle __data.__clock.
1725         * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
1726         (__pthread_cond_signal): Increment __futex at the same time as
1727         __wakeup_seq or __total_seq.  Pass address of __futex instead of
1728         address of low 32-bits of __wakeup_seq to futex syscall.
1729         * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
1730         (__pthread_cond_wait): Likewise.  Pass __futex value from before
1731         releasing internal lock to FUTEX_WAIT.
1732         * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
1733         (__pthread_cond_timedwait): Likewise.
1734         * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
1735         (FUTEX_CMP_REQUEUE): Define.
1736         (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1737         Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1738         Pass __futex value from before the unlock and __futex address instead
1739         of address of low 32-bits of __wakeup_seq to futex syscall.
1740         Fallback to FUTEX_WAKE all on any errors.
1741         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
1742         Define.
1743         (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1744         internally.  Return non-zero if error, zero if success.
1745         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1746         Add __data.__futex field, reshuffle __data.__clock.
1747         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
1748         Define.
1749         (lll_futex_requeue): Add val argument, return 1 unconditionally
1750         for the time being.
1751         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
1752         Add __data.__futex field, reshuffle __data.__clock.
1753         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1754         Define.
1755         (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1756         internally.  Return non-zero if error, zero if success.
1757         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
1758         (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
1759         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1760         Define.
1761         (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1762         internally.  Return non-zero if error, zero if success.
1763         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
1764         Add __data.__futex field, reshuffle __data.__clock.
1765         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
1766         Define.
1767         (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1768         internally.  Return non-zero if error, zero if success.
1769         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
1770         Add __data.__futex field, reshuffle __data.__clock.
1771         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1772         Add __data.__futex field, reshuffle __data.__clock.
1773         * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
1774         Increment __futex at the same time as __wakeup_seq or __total_seq.
1775         Pass address of __futex instead of address of low 32-bits of
1776         __wakeup_seq to futex syscall.
1777         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
1778         Pass __futex value from before releasing internal lock
1779         to FUTEX_WAIT.
1780         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1781         Likewise.  Avoid unnecessary shadowing of variables.
1782         * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
1783         Set __futex to 2 * __total_seq.  Pass __futex value from before the
1784         unlock and __futex address instead of address of low 32-bits of
1785         __wakeup_seq to futex_requeue macro, adjust for new return value
1786         meaning.
1787         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
1788         (__pthread_cond_signal): Increment __futex at the same time as
1789         __wakeup_seq or __total_seq.  Pass address of __futex instead of
1790         address of low 32-bits of __wakeup_seq to futex syscall.
1791         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
1792         (__pthread_cond_wait): Likewise.  Pass __futex value from before
1793         releasing internal lock to FUTEX_WAIT.
1794         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1795         (__pthread_cond_timedwait): Likewise.
1796         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1797         (FUTEX_CMP_REQUEUE): Define.
1798         (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1799         Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1800         Pass __futex value from before the unlock and __futex address instead
1801         of address of low 32-bits of __wakeup_seq to futex syscall.
1802         Fallback to FUTEX_WAKE all on any errors.
1803
1804 2004-06-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1805
1806         * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
1807         Add nop to align the end of critical section.
1808         (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
1809
1810 2004-06-01  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1811
1812         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1813         Add __broadcast_seq field.
1814         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
1815         all waiters as woken with woken_seq and bump broadcast counter.
1816         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
1817         __broadcast_seq.  Increment __woken_seq correctly when cleanuped.
1818         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1819         Comment typo fixes.  Avoid returning -ETIMEDOUT.
1820
1821 2004-06-01  Ulrich Drepper  <drepper@redhat.com>
1822
1823         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1824         (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
1825         Reported by Kaz Kojima.
1826
1827 2004-05-25  Jakub Jelinek  <jakub@redhat.com>
1828
1829         * sysdeps/unix/sysv/linux/aio_misc.h: New file.
1830
1831 2004-05-21  Jakub Jelinek  <jakub@redhat.com>
1832
1833         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
1834         __broadcast_seq with bc_seq after acquiring internal lock instead of
1835         before it.
1836
1837 2004-05-18  Jakub Jelinek  <jakub@redhat.com>
1838
1839         * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
1840         compilation.
1841         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1842         (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
1843         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
1844         (pthread_cond_t): Add __data.__broadcast_seq field.
1845         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1846         (FRAME_SIZE): Define.
1847         (__pthread_cond_timedwait): Use it.  Store/check broadcast_seq.
1848         Comment typo fixes.
1849         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
1850         Define.
1851         (__pthread_cond_wait): Use it.  Store/check broadcast_seq.  Comment
1852         typo fixes.
1853         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1854         (__pthread_cond_broadcast): Increment broadcast_seq.  Comment typo
1855         fixes.
1856
1857 2004-05-18  Ulrich Drepper  <drepper@redhat.com>
1858
1859         * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
1860         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1861         Add __broadcast_seq field.
1862         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1863         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1864         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1865         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1866         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1867         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
1868         all waiters as woken with woken_seq and bump broadcast counter.
1869         * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
1870         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
1871         __broadcast_seq field.
1872         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1873         * sysdeps/pthread/pthread_cond_wait.c: Likewise.
1874         * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
1875         * pthread_cond_init.c: Initialize __broadcast_seq field.
1876         * Makefile (tests): Add tst-cond17 and tst-cond18.
1877         Add .NOTPARALLEL goal.
1878         * tst-cond16.c: New file.  From Jakub.
1879         * tst-cond17.c: New file.  From Jakub.
1880         * tst-cond18.c: New file.  From Jakub.
1881
1882 2004-05-16  Ulrich Drepper  <drepper@redhat.com>
1883
1884         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
1885         unwind info.
1886
1887         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1888         Parametrize frame size.  Correct some unwind info.
1889         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1890
1891 2004-05-04  Jakub Jelinek  <jakub@redhat.com>
1892
1893         * tst-stack3.c: Note testing functionality beyond POSIX.
1894
1895 2004-05-04  Jakub Jelinek  <jakub@redhat.com>
1896
1897         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
1898         Change conditional from ifdef to if.
1899
1900 2004-04-23  Jakub Jelinek  <jakub@redhat.com>
1901
1902         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
1903         SYSDEP_CANCEL_ERROR): Define.
1904         (PSEUDO): Use it.
1905
1906 2004-05-01  Jakub Jelinek  <jakub@redhat.com>
1907
1908         * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
1909
1910 2004-04-20  Jakub Jelinek  <jakub@redhat.com>
1911
1912         * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
1913
1914 2004-04-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1915
1916         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
1917         Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
1918         * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
1919         info.  Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
1920
1921 2004-04-19  Ulrich Drepper  <drepper@redhat.com>
1922
1923         * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
1924         thread has all signals blocked.
1925
1926 2004-04-18  Andreas Jaeger  <aj@suse.de>
1927
1928         * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
1929         (SEM_VALUE_MAX): Add missing brace.
1930
1931 2004-04-17  Jakub Jelinek  <jakub@redhat.com>
1932
1933         * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
1934         in rt subdir.
1935         (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
1936         * sysdeps/pthread/tst-mqueue8x.c: New test.
1937         * tst-cancel4.c: Update comment about message queues.
1938
1939         * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
1940         return it_value { 0, 0 }.
1941         * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
1942         like SIGEV_SIGNAL.
1943         * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
1944         assertion for SIGEV_NONE.
1945         (thread_attr_compare): Compare all attributes, not just a partial
1946         subset.
1947
1948 2004-04-17  Jakub Jelinek  <jakub@redhat.com>
1949
1950         * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
1951
1952 2004-04-17  Ulrich Drepper  <drepper@redhat.com>
1953
1954         * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
1955         Just use a plain number.
1956         * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
1957         * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
1958         * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
1959         * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
1960         * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
1961         * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
1962         * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1963
1964 2004-04-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
1965
1966         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
1967         frame info.
1968         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1969
1970 2004-04-15  Jakub Jelinek  <jakub@redhat.com>
1971
1972         * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
1973         (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
1974         of calling sigwaitinfo.
1975
1976 2004-04-16  Ulrich Drepper  <drepper@redhat.com>
1977
1978         * allocatestack.c (allocate_stack): Set reported_guardsize
1979         unconditionally.
1980         * pthread_getattr_np.c (pthread_getattr_np): Use
1981         reported_guardsize instead of guardsize.
1982         * descr.h (struct pthread): Add reported_guardsize field.
1983
1984 2004-04-13  Jakub Jelinek  <jakub@redhat.com>
1985
1986         * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
1987
1988 2004-04-12  Ulrich Drepper  <drepper@redhat.com>
1989
1990         * sysdeps/unix/sysv/linux/mq-notify.c: New file.
1991
1992 2004-04-08  Jakub Jelinek  <jakub@redhat.com>
1993
1994         * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
1995         * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
1996         * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
1997         * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
1998         * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
1999         Define.
2000         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
2001         (_POSIX_MESSAGE_PASSING): Define.
2002         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
2003         (_POSIX_MESSAGE_PASSING): Define.
2004         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
2005         (_POSIX_MESSAGE_PASSING): Define.
2006
2007 2004-04-04  Ulrich Drepper  <drepper@redhat.com>
2008
2009         * tst-context1.c (fct): Check whether correct stack is used.
2010
2011 2004-04-03  Ulrich Drepper  <drepper@redhat.com>
2012
2013         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
2014         matching constraints for asm mem parameters.
2015
2016         * tst-clock2.c (tf): Don't define unless needed.
2017
2018 2004-03-30  H.J. Lu  <hongjiu.lu@intel.com>
2019
2020         * Makefile (link-libc-static): Use $(static-gnulib) instead of
2021         $(gnulib).
2022
2023 2004-03-30  Ulrich Drepper  <drepper@redhat.com>
2024
2025         * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
2026         * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
2027         * pthreadP.h: Declare __nptl_deallocate_tsd.
2028         * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
2029         Adjust caller.
2030
2031         * Makefile (tests): Add tst-tsd5.
2032         * tst-tsd5.c: New file.
2033
2034 2004-03-29  Ulrich Drepper  <drepper@redhat.com>
2035
2036         * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
2037         (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
2038         is SHLIB_COMPAT check.
2039         * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
2040         (__pthread_attr_getaffinity_old): Likewise.
2041         * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2042         (__pthread_getaffinity_old): Likewise.
2043         * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2044         (__pthread_setaffinity_old): Likewise.
2045
2046 2004-03-26  Ulrich Drepper  <drepper@redhat.com>
2047
2048         * allocatestack.c (_make_stacks_executable): Call
2049         _dl_make_stack_executable first.
2050
2051 2004-03-24  Roland McGrath  <roland@redhat.com>
2052
2053         * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
2054         constraint instead of "0".
2055
2056 2004-03-24  Ulrich Drepper  <drepper@redhat.com>
2057
2058         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2059         (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
2060
2061         * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
2062         code to avoid warning.
2063
2064 2004-03-24  Andreas Jaeger  <aj@suse.de>
2065
2066         * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
2067         (__pthread_attr_setaffinity_old): Remove const.
2068
2069 2004-03-23  Ulrich Drepper  <drepper@redhat.com>
2070
2071         * sysdeps/unix/sysv/linux/smp.h: New file.
2072         * sysdeps/unix/sysv/linux/sh/smp.h: New file.
2073         * init.c: Define __is_smp.
2074         (__pthread_initialize_minimal_internal): Call is_smp_system to
2075         initialize __is_smp.
2076         * pthreadP.h: Declare __is_smp.
2077         Define MAX_ADAPTIVE_COUNT is necessary.
2078         * pthread_mutex_init.c: Add comment regarding __spins field.
2079         * pthread_mutex_lock.c: Implement adaptive mutex type.
2080         * pthread_mutex_timedlock.c: Likewise.
2081         * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2082         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2083         Add __spins field.
2084         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
2085         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2086         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2087         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2088         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2089         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2090         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2091         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
2092         lll_mutex_cond_trylock.
2093         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2094         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2095         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2096         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2097         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
2098         Define BUSY_WAIT_NOP.
2099         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2100         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2101
2102         * tst-mutex5.c: Add support for testing adaptive mutexes.
2103         * tst-mutex7.c: Likewise.
2104         * tst-mutex5a.c: New file.
2105         * tst-mutex7a.c: New file.
2106         * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
2107
2108         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2109         (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
2110         vgettimeofday call might destroy the content.
2111
2112         * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
2113         @pause in the loop.
2114
2115         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
2116         No need to restrict type of ret.  Make it int.  Add comment.
2117
2118         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
2119         Remove unnecessary setne instruction.
2120
2121 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2122
2123         * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2124         (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
2125         * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
2126         If realloc fails, break out of the loop.
2127
2128 2004-03-20  Andreas Jaeger  <aj@suse.de>
2129
2130         * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2131         (__pthread_setaffinity_old): Fix interface.
2132         * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2133         (__pthread_getaffinity_old): Likewise.
2134
2135         * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2136         (__pthread_setaffinity_new): Remove duplicate declaration.
2137
2138 2004-03-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2139
2140         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
2141         the return value to a safe register.
2142         (CDISABLE): Set the function argument correctly.
2143
2144 2004-03-17  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2145
2146         * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
2147         * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
2148         Rewrite so that only one locked memory operation per round is needed.
2149         * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
2150         (pthread_barrier_wait): After wakeup, release lock only when the
2151         last thread stopped using the barrier object.
2152         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
2153         (__pthread_cond_wait): Don't store mutex address if the current
2154         value is ~0l.  Add correct cleanup support and unwind info.
2155         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2156         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
2157         (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
2158         * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
2159         * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
2160         Add correct cleanup support and unwind info.
2161         * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
2162         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
2163         information for syscall wrappers.
2164
2165 2004-03-18  Ulrich Drepper  <drepper@redhat.com>
2166
2167         * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
2168         cpusetsize field, remove next.
2169         * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
2170         parameter for size of the CPU set.
2171         (pthread_setaffinity_np): Likewise.
2172         (pthread_attr_getaffinity_np): Likewise.
2173         (pthread_attr_setaffinity_np): Likewise.
2174         * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
2175         interface change, keep compatibility code.
2176         * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2177         * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
2178         * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
2179         * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np.  Declare
2180         __pthread_getaffinity_np.
2181         * Versions: Add version for changed interfaces.
2182         * tst-attr3.c: Adjust test for interface change.
2183         * pthread_getattr_np.c: Query the kernel about the affinity mask with
2184         increasing buffer sizes.
2185         * pthread_attr_destroy.c: Remove unused list handling.
2186         * pthread_attr_init.c: Likewise.
2187
2188 2004-03-17  Roland McGrath  <roland@redhat.com>
2189
2190         * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
2191         first argument to clock_getres so we ever enable kernel timers.
2192
2193 2004-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
2194
2195         * init.c (nptl_version): Add __attribute_used__ to nptl_version.
2196
2197 2004-03-12  Richard Henderson  <rth@redhat.com>
2198
2199         * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
2200         oldvalue from CENABLE to CDISABLE.
2201
2202 2004-03-12  Ulrich Drepper  <drepper@redhat.com>
2203
2204         * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
2205         * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2206         * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2207         * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2208
2209 2004-03-11  Richard Henderson  <rth@redhat.com>
2210
2211         * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
2212         * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
2213         * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
2214
2215 2004-03-11  Jakub Jelinek  <jakub@redhat.com>
2216
2217         * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
2218         instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
2219         * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
2220
2221 2004-03-11  Jakub Jelinek  <jakub@redhat.com>
2222
2223         * forward.c (__pthread_cond_broadcast_2_0,
2224         __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
2225         __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
2226         __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
2227
2228 2004-03-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2229
2230         * sysdeps/sh/tcb-offsets.sym: Add PID.
2231         * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
2232         * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
2233
2234 2004-03-10  Ulrich Drepper  <drepper@redhat.com>
2235
2236         * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
2237         include <sysdep-cancel.h>, vfork is no cancellation point.
2238         * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
2239         * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
2240         * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
2241
2242 2004-03-10  Jakub Jelinek  <jakub@redhat.com>
2243
2244         * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
2245         libc_hidden_def.
2246         * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
2247         * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
2248         Likewise.
2249         * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
2250         Likewise.
2251         * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
2252         * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
2253         * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
2254         * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
2255         of DO_CALL_VIA_BREAK.  Work around a gas problem.
2256
2257         * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
2258         * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
2259         * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
2260         * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
2261         * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
2262         * sysdeps/powerpc/tcb-offsets.sym: Add PID.
2263
2264         * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
2265         a local register for saving old PID.  Negate PID in parent upon exit.
2266
2267         * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
2268         tcb-offsets.h.
2269         (__vfork): Negate PID if non-zero and set to INT_MIN if zero
2270         before syscall, set to the old value in the parent afterwards.
2271         * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
2272         * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
2273         tcb-offsets.h.
2274         (__vfork): Negate PID if non-zero and set to INT_MIN if zero
2275         before syscall, set to the old value in the parent afterwards.
2276         * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
2277         * sysdeps/s390/tcb-offsets.sym: Add PID.
2278
2279         * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
2280         * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
2281         * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
2282         * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
2283         * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
2284         * sysdeps/sparc/tcb-offsets.sym: Add PID.
2285
2286 2004-03-10  Andreas Schwab  <schwab@suse.de>
2287
2288         * sysdeps/ia64/tcb-offsets.sym: Add PID.
2289         * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
2290         * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
2291
2292 2004-03-09  Jakub Jelinek  <jakub@redhat.com>
2293
2294         * tst-cancel20.c (do_one_test): Clear in_sh_body first.
2295         * tst-cancel21.c (do_one_test): Likewise.
2296         Reported by Gordon Jin <gordon.jin@intel.com>.
2297
2298 2004-02-09  Jakub Jelinek  <jakub@redhat.com>
2299
2300         * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
2301         if non-zero and set to INT_MIN if zero.
2302         * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
2303         * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
2304         (SAVE_PID, RESTORE_PID): Define.
2305         (__vfork): Use it.
2306         * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
2307         Use relative path to avoid including NPTL i386/vfork.S.
2308         (SAVE_PID, RESTORE_PID): Define.
2309         * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
2310         (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
2311         * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
2312         tst-vfork2x.
2313         (tests-reverse): Add tst-vfork1x and tst-vfork2x.
2314         * tst-vfork1.c: New test.
2315         * tst-vfork2.c: New test.
2316         * tst-vfork1x.c: New test.
2317         * tst-vfork2x.c: New test.
2318
2319 2004-03-08  Ulrich Drepper  <drepper@redhat.com>
2320
2321         * sysdeps/i386/tcb-offsets.sym: Add PID.
2322         * sysdeps/x86_64/tcb-offsets.sym: Likewise.
2323         * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
2324         * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
2325
2326 2004-03-08  Steven Munroe  <sjmunroe@us.ibm.com>
2327
2328         * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
2329
2330 2004-03-08  H.J. Lu  <hongjiu.lu@intel.com>
2331
2332         * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
2333         _rtld_global_ro.
2334
2335 2004-03-07  Ulrich Drepper  <drepper@redhat.com>
2336
2337         * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
2338         _rtld_global_ro.
2339
2340         * tst-once4.c: Remove unnecessary macro definition.
2341
2342         * tst-mutex7.c (do_test): Limit thread stack size.
2343         * tst-once2.c (do_test): Likewise.
2344         * tst-tls3.c (do_test): Likewise.
2345         * tst-tls1.c (do_test): Likewise.
2346         * tst-signal3.c (do_test): Likewise.
2347         * tst-kill6.c (do_test): Likewise.
2348         * tst-key4.c (do_test): Likewise.
2349         * tst-join4.c (do_test): Likewise.
2350         * tst-fork1.c (do_test): Likewise.
2351         * tst-context1.c (do_test): Likewise.
2352         * tst-cond2.c (do_test): Likewise.
2353         * tst-cond10.c (do_test): Likewise.
2354         * tst-clock2.c (do_test): Likewise.
2355         * tst-cancel10.c (do_test): Likewise.
2356         * tst-basic2.c (do_test): Likewise.
2357         * tst-barrier4.c (do_test): Likewise.
2358
2359 2004-03-05  Ulrich Drepper  <drepper@redhat.com>
2360
2361         * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
2362
2363 2004-03-01  Ulrich Drepper  <drepper@redhat.com>
2364
2365         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2366         (__pthread_cond_timedwait): Optimize wakeup test.
2367         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2368         (__pthread_cond_wait): Likewise.
2369         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
2370         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
2371         Likewise.
2372
2373 2004-02-29  Ulrich Drepper  <drepper@redhat.com>
2374
2375         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2376         (__lll_mutex_lock_wait): Optimize a bit more.  Just one copy of
2377         the atomic instruction needed.
2378         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2379         (__lll_mutex_lock_wait): Likewise.
2380
2381 2004-02-28  Ulrich Drepper  <drepper@redhat.com>
2382
2383         * Makefile (tests): Add tst-cond14 and tst-cond15.
2384         * tst-cond14.c: New file.
2385         * tst-cond15.c: New file.
2386
2387 2004-02-27  Ulrich Drepper  <drepper@redhat.com>
2388
2389         * sysdeps/pthread/createthread.c (create_thread): Remove use of
2390         CLONE_STOPPED.  We cannot use SIGCONT which means CLONE_STOPPED
2391         needs to be implemented differently to be useful.
2392
2393 2004-02-26  Ulrich Drepper  <drepper@redhat.com>
2394
2395         * pthread_attr_setschedparam.c: Don't test priority against limits
2396         here.  Set ATTR_FLAG_SCHED_SET flag.
2397         * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
2398         * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
2399         from parent thread to child.  If attribute is used and scheduling
2400         parameters are not inherited, copy parameters from attribute or
2401         compute them.  Check priority value.
2402         * pthread_getschedparam.c: If the parameters aren't known yet get
2403         them from the kernel.
2404         * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
2405         ATTR_FLAG_POLICY_SET flag for thread.
2406         * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
2407         and ATTR_FLAG_POLICY_SET.
2408
2409         * sysdeps/pthread/createthread.c: Use tgkill if possible.
2410
2411         * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
2412         fail if stack address hasn't been set.  Just return 0.
2413
2414 2004-02-25  Ulrich Drepper  <drepper@redhat.com>
2415
2416         * Makefile (tests-nolibpthread): Add tst-unload.  Don't link with
2417         libpthread for the files in this list.
2418         (CFLAGS-tst-unload): Removed.
2419         * tst-unload.c (do_test): Don't use complete path for
2420         LIBPHREAD_SO.
2421
2422         * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
2423         tst-_res1mod2.
2424
2425 2004-02-22  Ulrich Drepper  <drepper@redhat.com>
2426
2427         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2428         (__lll_mutex_lock_wait): Rewrite so that only one locked memory
2429         operation per round is needed.
2430         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2431         (__lll_mutex_lock_wait): Likewise.
2432
2433 2004-02-20  Ulrich Drepper  <drepper@redhat.com>
2434
2435         * tst-cancel9.c (cleanup): Don't print to stderr.
2436
2437 2004-02-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2438
2439         * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
2440
2441 2004-02-20  Jakub Jelinek  <jakub@redhat.com>
2442
2443         * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2444         (__syscall_error_handler2): Call CDISABLE.
2445         * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2446         (__syscall_error_handler2): Call CDISABLE.
2447
2448         * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2449         Release lock before the loop, don't reacquire it.
2450
2451         * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
2452
2453 2004-02-19  Andreas Schwab  <schwab@suse.de>
2454
2455         * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2456         Fix last change.
2457
2458 2004-02-18  Ulrich Drepper  <drepper@redhat.com>
2459
2460         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
2461         (pthread_barrier_wait): After wakeup, release lock only when the
2462         last thread stopped using the barrier object.
2463         * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
2464         (pthread_barrier_wait): Likewise.
2465         * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
2466         Likewise.
2467         * Makefile (tests): Add tst-barrier4.
2468         * tst-barrier4.c: New file.
2469
2470         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2471         (__pthread_cond_timedwait): Perform timeout test while holding
2472         internal lock to prevent wakeup race.
2473         Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
2474         * sysdeps/pthread/pthread_cond_timedwait.c
2475         (__pthread_cond_timedwait): Likewise.
2476         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2477         (__pthread_cond_timedwait): Likewise.
2478
2479 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
2480
2481         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
2482         (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
2483         * Makefile (tests): Add tst-rwlock13.
2484         * tst-rwlock13.c: New test.
2485
2486 2004-02-16  Ulrich Drepper  <drepper@redhat.com>
2487
2488         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2489         (__condvar_tw_cleanup): Little optimization.
2490         Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
2491
2492 2004-02-16  Steven Munroe  <sjmunroe@us.ibm.com>
2493
2494         * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
2495         libpthread as "lib" parameter to SHLIB_COMPAT.
2496         (__novmx_siglongjmp): Fix typo in function name.
2497         (__novmx_longjmp): Fix typo in function name.
2498
2499 2004-02-13  Ulrich Drepper  <drepper@redhat.com>
2500
2501         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
2502         __builtin_expect.
2503
2504         * sysdeps/generic/pt-longjmp.c: Moved to...
2505         * sysdeps/pthread/pt-longjmp.c: ...here.  New file.
2506
2507 2004-01-29  Steven Munroe  <sjmunroe@us.ibm.com>
2508
2509         * Makefile (libpthread-routines): Add pt-cleanup.
2510         * pt-longjmp.c: Removed.
2511         * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
2512         * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
2513         * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
2514         Version longjmp, siglongjmp for GLIBC_2.3.4.
2515         * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
2516
2517 2004-02-13  Ulrich Drepper  <drepper@redhat.com>
2518
2519         * sysdeps/pthread/pthread_cond_timedwait.c
2520         (__pthread_cond_timedwait): Optimize.  Drop internal lock earlier.
2521         Reuse code.  Add __builtin_expects.
2522
2523         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2524         (__pthread_cond_timedwait): Get internal lock in case timeout has
2525         passed before the futex syscall.
2526         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2527
2528 2004-01-20  Ulrich Drepper  <drepper@redhat.com>
2529
2530         * allocatestack.c: Pretty printing.
2531
2532         * sysdeps/pthread/createthread.c (create_thread): Don't add
2533         CLONE_DETACHED bit if it is not necessary.
2534
2535 2004-01-16  Ulrich Drepper  <drepper@redhat.com>
2536
2537         * pthread_getattr_np.c: Include ldsodefs.h.
2538
2539 2004-01-16  Richard Henderson  <rth@redhat.com>
2540
2541         * allocatestack.c: Don't declare __libc_stack_end.
2542         * init.c (__pthread_initialize_minimal_internal): Likewise.
2543         * pthread_getattr_np.c (pthread_getattr_np): Likewise.
2544
2545 2004-01-15  Richard Henderson  <rth@redhat.com>
2546
2547         * sysdeps/alpha/tls.h (tcbhead_t): Add private.
2548         (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
2549         TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
2550         GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
2551         (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
2552         (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
2553         (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
2554         * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
2555
2556 2004-01-14  Ulrich Drepper  <drepper@redhat.com>
2557
2558         * init.c (pthread_functions): Make array const.
2559
2560 2004-01-13  Ulrich Drepper  <drepper@redhat.com>
2561
2562         * allocatestack.c (__make_stacks_executable): Change interface.
2563         Check parameters.  Pass parameter on to libc counterpart.
2564         * pthreadP.h: Change declaration.
2565
2566 2004-01-13  Richard Henderson  <rth@redhat.com>
2567
2568         * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
2569         prototype form.
2570         * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
2571         Likewise.
2572
2573         * sysdeps/alpha/Makefile: New file.
2574         * sysdeps/alpha/tcb-offsets.sym: New file.
2575         * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2576         Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
2577
2578         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
2579         on powerpc version.
2580
2581 2004-01-08  Jakub Jelinek  <jakub@redhat.com>
2582
2583         * Makefile (tests): Add tst-backtrace1.
2584         * tst-backtrace1.c: New test.
2585
2586 2003-12-11  Ulrich Weigand  <uweigand@de.ibm.com>
2587
2588         * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
2589         register as second parameter to the REGISTER macro.
2590         * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
2591         * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
2592         * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
2593         * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
2594         * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
2595         of thread register as second parameter to REGISTER macro in 64 case.
2596
2597 2004-01-03  Ulrich Drepper  <drepper@redhat.com>
2598
2599         * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
2600         (CFLAGS-getpid.o): Defined.
2601         (CFLAGS-getpid.os): Defined.
2602
2603 2003-12-31  Ulrich Drepper  <drepper@redhat.com>
2604
2605         * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
2606         returned for main thread does not overlap with any other VMA.
2607         Patch by Jakub Jelinek.
2608
2609 2003-12-29  Jakub Jelinek  <jakub@redhat.com>
2610
2611         * tst-raise1.c: Include stdio.h.
2612
2613 2003-12-23  Jakub Jelinek  <jakub@redhat.com>
2614
2615         * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
2616         setting with __ASSUME_TGKILL || defined __NR_tgkill.
2617         If pid is 0, set it to selftid.
2618         * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
2619         Don't set self->pid but self->tid.  If self->pid == 0 and self->tid
2620         != 0, return self->tid without doing a syscall.
2621         * descr.h (struct pthread): Move pid field after tid.
2622
2623         * Makefile (tests): Add tst-raise1.
2624         * tst-raise1.c: New file.
2625
2626 2003-12-23  Roland McGrath  <roland@redhat.com>
2627
2628         * tst-oddstacklimit.c: New file.
2629         * Makefile (tests): Add it.
2630         (tst-oddstacklimit-ENV): New variable.
2631
2632         * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
2633         value up to page size for __default_stacksize.
2634
2635 2003-12-21  Ulrich Drepper  <drepper@redhat.com>
2636
2637         * Makefile (tests): Add tst-eintr5.
2638         * tst-eintr5.c: New file.
2639
2640         * eintr.c (eintr_source): Prevent sending signal to self.
2641
2642         * tst-eintr2.c (tf1): Improve error message.
2643
2644 2003-12-20  Ulrich Drepper  <drepper@redhat.com>
2645
2646         * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
2647         * sysdeps/unix/sysv/linux/getpid.c: New file.
2648         * pthread_cancel.c: Add comment explaining use of PID field.
2649         * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
2650         * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
2651         * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
2652         temporarily to signal the field must not be relied on and updated
2653         by getpid().
2654         * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
2655         temporarily negative.
2656         * sysdeps/unix/sysv/linux/raise.c: Likewise.
2657
2658 2003-12-19  Ulrich Drepper  <drepper@redhat.com>
2659
2660         * eintr.c (setup_eintr): Add new parameter.  Pass to thread function.
2661         (eintr_source): If ARG != NULL, use pthread_kill.
2662         * tst-eintr1.c: Adjust for this change.
2663         * tst-eintr2.c: Likewise.
2664         * Makefile (tests): Add tst-eintr3 and tst-eintr4.
2665         * tst-eintr3.c: New file.
2666         * tst-eintr4.c: New file.
2667
2668 2003-12-19  Jakub Jelinek  <jakub@redhat.com>
2669
2670         * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
2671         if CANCELSTATE_BITMASK is set.
2672         * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
2673         Likewise.
2674
2675         * Makefile (tests): Add tst-cancel22 and tst-cancel23.
2676         (tests-reverse): Add tst-cancel23.
2677         * tst-cancel22.c: New test.
2678         * tst-cancel23.c: New test.
2679
2680 2003-12-18  Ulrich Drepper  <drepper@redhat.com>
2681
2682         * tst-eintr1.c: Better error messages.
2683
2684         * Makefile (tests): Add tst-eintr2.
2685         * tst-eintr2.c: New file.
2686
2687 2003-12-18  Jakub Jelinek  <jakub@redhat.com>
2688
2689         * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
2690         (CFLAGS-tst-cancelx21.c): Set.
2691         * tst-cancel21.c: New test.
2692         * tst-cancelx21.c: New test.
2693
2694         * unwind.c (FRAME_LEFT): Add adj argument.  Subtract it from each
2695         comparison operand.
2696         (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
2697         _JMPBUF_CFA_UNWINDS.  Adjust FRAME_LEFT invocations.
2698         * pt-longjmp.c: Include jmpbuf-unwind.h.
2699         (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
2700         _JMPBUF_UNWINDS.  Adjust compared pointers.
2701         * init.c (__pthread_initialize_minimal_internal): Initialize
2702         pd->stackblock_size.
2703         * sysdeps/pthread/jmpbuf-unwind.h: Removed.
2704         * sysdeps/alpha/jmpbuf-unwind.h: New file.
2705         * sysdeps/i386/jmpbuf-unwind.h: New file.
2706         * sysdeps/powerpc/jmpbuf-unwind.h: New file.
2707         * sysdeps/s390/jmpbuf-unwind.h: New file.
2708         * sysdeps/sh/jmpbuf-unwind.h: New file.
2709         * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
2710         * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2711         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
2712         (_JMPBUF_CFA_UNWINDS): Remove.
2713         (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
2714
2715 2003-12-12  Jakub Jelinek  <jakub@redhat.com>
2716
2717         * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
2718         (CFLAGS-tst-cancelx20.c): Set.
2719         * tst-cancel20.c: New test.
2720         * tst-cancelx20.c: New test.
2721
2722 2003-12-17  Ulrich Drepper  <drepper@redhat.com>
2723
2724         * init.c (__pthread_initialize_minimal_internal): Don't treat
2725         architectures with separate register stack special here when
2726         computing default stack size.
2727
2728 2003-12-17  Roland McGrath  <roland@redhat.com>
2729
2730         * Makefile (tst-cancelx7-ARGS): New variable.
2731         Reportd by Greg Schafer <gschafer@zip.com.au>.
2732
2733 2003-12-17  Jakub Jelinek  <jakub@redhat.com>
2734
2735         * Makefile (tests): Add tst-stack3.  Depend on $(objpfx)tst-stack3-mem.
2736         (generated): Add tst-stack3.mtrace and tst-stack3-mem.
2737         (tst-stack3-ENV): Set.
2738         ($(objpfx)tst-stack3-mem): New.
2739         * tst-stack3.c: New test.
2740
2741 2003-12-10  David Mosberger  <davidm@hpl.hp.com>
2742
2743         * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
2744         Add unwind directives.  Drop unused .regstk directive.
2745         (_fini_EPILOG_BEGINS): Add unwind directives.
2746
2747 2003-12-11  Ulrich Drepper  <drepper@redhat.com>
2748
2749         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2750         Assume parameter is a pointer.
2751         (lll_futex_wake): Likewise.
2752         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
2753         Likewise.
2754         (lll_futex_wake): Likewise.
2755         Reported by Boris Hu.
2756         * sysdeps/unix/sysv/linux/unregister-atfork.c
2757         (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
2758
2759         * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
2760
2761 2003-12-10  Ulrich Drepper  <drepper@redhat.com>
2762
2763         * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
2764         * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
2765         __rtld_lock_initialize for ld.so lock.
2766         Patch in part by Adam Li <adam.li@intel.com>.
2767
2768 2003-12-02  David Mosberger  <davidm@hpl.hp.com>
2769
2770         * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
2771         in $(gnulib).  Also, remove stale comment.
2772
2773 2003-11-12  David Mosberger  <davidm@hpl.hp.com>
2774
2775         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
2776         advantage of new syscall stub and optimize accordingly.
2777
2778         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
2779         from SYS_futex, to match expectations of
2780         sysdep.h:DO_INLINE_SYSCALL.
2781         (lll_futex_clobbers): Remove.
2782         (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
2783         (lll_futex_wake): Likewise.
2784         (lll_futex_requeue): Likewise.
2785         (__lll_mutex_trylock): Rewrite to a macro, so we can include this
2786         file before DO_INLINE_SYSCALL is defined (proposed by Jakub
2787         Jelinek).
2788         (__lll_mutex_lock): Likewise.
2789         (__lll_mutex_cond_lock): Likewise.
2790         (__lll_mutex_timed_lock): Likewise.
2791         (__lll_mutex_unlock): Likewise.
2792         (__lll_mutex_unlock_force): Likewise.
2793
2794         * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
2795         comes before the include of <sysdep.h>.
2796         (THREAD_SELF_SYSINFO): New macro.
2797         (THREAD_SYSINFO): Likewise.
2798         (INIT_SYSINFO): New macro.
2799         (TLS_INIT_TP): Call INIT_SYSINFO.
2800
2801         * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
2802
2803         * sysdeps/pthread/createthread.c (create_thread): Use
2804         THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
2805         * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
2806         THREAD_SELF_SYSINFO instead of open code.
2807         * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
2808         (THREAD_SYSINFO): Likewise.
2809
2810         * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
2811
2812         * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
2813
2814 2003-12-06  Ulrich Drepper  <drepper@redhat.com>
2815
2816         * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
2817         instead of .init.  Patch by David Mosberger.
2818
2819 2003-11-30  Thorsten Kukuk  <kukuk@suse.de>
2820
2821         * sysdeps/pthread/configure.in: Remove broken declaration in C
2822         cleanup handling check.
2823
2824 2003-11-30  Andreas Jaeger  <aj@suse.de>
2825
2826         * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
2827         * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
2828         Likewise.
2829
2830 2003-11-27  Jakub Jelinek  <jakub@redhat.com>
2831
2832         * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
2833         * pthread_attr_destroy.c: Include shlib-compat.h.
2834         (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
2835         is set in iattr->flags.
2836         * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
2837
2838 2003-11-21  Jakub Jelinek  <jakub@redhat.com>
2839
2840         * Makefile (distribute): Add tst-cleanup4aux.c.
2841
2842         * tst-cond12.c (prepare): Add prototype.  Move after test-skeleton.c
2843         include.
2844
2845 2003-11-21  Ulrich Drepper  <drepper@redhat.com>
2846
2847         * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
2848         pthread_cond_signal.
2849
2850         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
2851         store mutex address if the current value is ~0l.
2852         * sysdeps/pthread/pthread_cond_timedwait.c
2853         (__pthread_cond_timedwait): Likewise.
2854         * sysdeps/pthread/pthread_cond_broadcast.c
2855         (__pthread_cond_broadcast): Don't use requeue for pshared
2856         condvars.
2857
2858         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2859         (__pthread_cond_wait): Don't store mutex address if the current
2860         value is ~0l.
2861         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2862         (__pthread_cond_timedwait): Likewise.
2863         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
2864         (__pthread_cond_broadcast): Don't use requeue for pshared
2865         condvars.
2866
2867         * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
2868         element with ~0l for pshared condvars, with NULL otherwise.
2869
2870         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2871         (__pthread_cond_wait): Don't store mutex address if the current
2872         value is ~0l.
2873         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2874         (__pthread_cond_timedwait): Likewise.
2875         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
2876         (__pthread_cond_broadcast): Don't use requeue for pshared
2877         condvars.
2878
2879         * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
2880         * tst-cond12.c: New file.
2881         * tst-cond13.c: New file.
2882
2883 2003-11-17  Ulrich Drepper  <drepper@redhat.com>
2884
2885         * sysdeps/pthread/configure.in: Make missing forced unwind support
2886         fatal.
2887
2888 2003-11-11  Ulrich Drepper  <drepper@redhat.com>
2889
2890         * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
2891
2892 2003-11-06  Ulrich Drepper  <drepper@redhat.com>
2893
2894         * Makefile: Add magic to clean up correctly.
2895
2896 2003-11-05  Jakub Jelinek  <jakub@redhat.com>
2897
2898         * unwind.c (FRAME_LEFT): Define.
2899         (unwind_stop): Handle old style cleanups here.
2900         (__pthread_unwind): Handle old style cleanups only if
2901         !HAVE_FORCED_UNWIND.
2902         * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
2903         (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
2904         ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
2905         ($(objpfx)tst-cleanupx4): Likewise.
2906         * tst-cleanup4.c: New test.
2907         * tst-cleanup4aux.c: New.
2908         * tst-cleanupx4.c: New test.
2909
2910 2003-11-04  Ulrich Drepper  <drepper@redhat.com>
2911
2912         * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
2913         lll_mutex_*lock macros to skip atomic operations on some archs.
2914
2915 2003-11-03  Ulrich Drepper  <drepper@redhat.com>
2916
2917         * sysdeps/pthread/tst-timer.c (main): Initialize
2918         sigev2.sigev_value as well.
2919
2920 2003-10-15  Roland McGrath  <roland@redhat.com>
2921
2922         * sysdeps/pthread/configure.in: Barf if visibility attribute support
2923         is missing.
2924         * sysdeps/pthread/configure: Regenerated.
2925
2926 2003-10-09  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
2927
2928         * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
2929         locking macros.  No distinction between normal and mutex locking
2930         anymore.
2931         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
2932         Merge bits from lowlevelmutex.S we still need.
2933         * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
2934         * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
2935         * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
2936         * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
2937         new mutex implementation.
2938         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
2939         * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
2940         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2941         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
2942         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
2943         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2944         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2945         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
2946         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2947         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
2948         symbol for entry point to avoid cancellation.
2949
2950 2003-10-07  Jakub Jelinek  <jakub@redhat.com>
2951
2952         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
2953         changes.
2954         (SAVE_OLDTYPE_0): Fix a typo.
2955
2956 2003-10-03  Ulrich Drepper  <drepper@redhat.com>
2957
2958         * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
2959         Check __sigsetjmp return value.  Reported by Daniel Jacobowitz.
2960
2961 2003-10-02  Ulrich Drepper  <drepper@redhat.com>
2962
2963         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
2964         correct offset.
2965
2966 2003-10-02  Jakub Jelinek  <jakub@redhat.com>
2967
2968         * Makefile (tests): Add tst-cancel19.
2969         * tst-cancel19.c: New test.
2970
2971 2003-10-02  Ulrich Drepper  <drepper@redhat.com>
2972
2973         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
2974         restoring of the old cancellation type.
2975
2976 2003-09-30  Jakub Jelinek  <jakub@redhat.com>
2977
2978         * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
2979
2980 2003-09-27  Wolfram Gloger  <wg@malloc.de>
2981
2982         * sysdeps/pthread/malloc-machine.h: New file
2983
2984 2003-09-24  Roland McGrath  <roland@redhat.com>
2985
2986         * allocatestack.c (__make_stacks_executable): Don't ignore return
2987         value from _dl_make_stack_executable.
2988
2989 2003-09-24  Ulrich Drepper  <drepper@redhat.com>
2990
2991         * allocatestack.c (__make_stacks_executable): Also change
2992         permission of the currently unused stacks.
2993
2994         * allocatestack.c (change_stack_perm): Split out from
2995         __make_stacks_executable.
2996         (allocate_stack): If the required permission changed between the time
2997         we started preparing the stack and queueing it, change the permission.
2998         (__make_stacks_executable): Call change_stack_perm.
2999
3000         * Makefile: Build tst-execstack-mod locally.
3001         * tst-execstack-mod.c: New file.
3002
3003 2003-09-23  Jakub Jelinek  <jakub@redhat.com>
3004
3005         * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
3006
3007 2003-09-23  Roland McGrath  <roland@redhat.com>
3008
3009         * tst-execstack.c: New file.
3010         * Makefile (tests): Add it.
3011         ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
3012         (LDFLAGS-tst-execstack): New variable.
3013
3014         * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
3015         whether to use PROT_EXEC for stack mmap.
3016         (__make_stacks_executable): New function.
3017         * pthreadP.h: Declare it.
3018         * init.c (__pthread_initialize_minimal_internal): Set
3019         GL(dl_make_stack_executable_hook) to that.
3020
3021 2003-09-22  Ulrich Drepper  <drepper@redhat.com>
3022
3023         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
3024         recommendation from AMD re avoidance of lock prefix.
3025
3026 2003-09-22  Jakub Jelinek  <jakub@redhat.com>
3027
3028         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
3029         lll_futex_timed_wait instead of lll_futex_wait.
3030         * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
3031         * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
3032         * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
3033         * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
3034         * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
3035         * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
3036         * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
3037         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
3038         * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
3039         Completely revamp the locking macros.  No distinction between
3040         normal and mutex locking anymore.
3041         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3042         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
3043         __lll_lock_timedwait): Fix prototypes.
3044         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
3045         __lll_lock_timedwait): Likewise.
3046         (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
3047         macros, add __builtin_expect.
3048         (lll_mutex_timedlock): Likewise.  Fix return value.
3049         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
3050         * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
3051         * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
3052         * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
3053         * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
3054         * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
3055         * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
3056         * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
3057
3058 2003-09-22  Ulrich Drepper  <drepper@redhat.com>
3059
3060         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
3061         (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
3062         operation if possible.
3063
3064         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
3065         like jumping over the lock prefix.
3066
3067 2003-09-21  Ulrich Drepper  <drepper@redhat.com>
3068
3069         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
3070         locking macros.  No distinction between normal and mutex locking
3071         anymore.
3072         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3073         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3074         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3075         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
3076         locking.  Merge bits from lowlevelmutex.S we still need.
3077         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3078         * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
3079         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3080         * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
3081         * Makefile (routines): Remove libc-lowlevelmutex.
3082         (libpthread-rountines): Remove lowlevelmutex.
3083         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
3084         for new mutex implementation.
3085         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
3086         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3087         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3088         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3089         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3090         Likewise.
3091         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3092         Likewise.
3093         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3094         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3095         * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
3096         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3097         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3098         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3099         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3100         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3101         Likewise.
3102         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3103         Likewise.
3104         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
3105         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3106         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
3107         Don't use requeue.
3108         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3109         * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
3110
3111 2003-09-20  Ulrich Drepper  <drepper@redhat.com>
3112
3113         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
3114         in parameters of asm with output parameters.
3115
3116         * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
3117         type of DECR parameter to int.
3118         * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
3119
3120 2003-09-18  Jakub Jelinek  <jakub@redhat.com>
3121
3122         * tst-attr3.c (tf, do_test): Print stack start/end/size and
3123         guardsize for each thread.
3124
3125 2003-09-17  Jakub Jelinek  <jakub@redhat.com>
3126
3127         * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
3128         * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
3129         (pthread_attr_setaffinity_np): Handle cpuset == NULL.
3130
3131         * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
3132         (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
3133         NULL.
3134         * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
3135         * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
3136         * sysdeps/unix/sysv/linux/pthread_getaffinity.c
3137         (pthread_getaffinity_np): Add hidden_def.
3138
3139         * Makefile (tests): Add tst-attr3.
3140         * tst-attr3.c: New test.
3141
3142         * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
3143
3144 2003-09-15  Jakub Jelinek  <jakub@redhat.com>
3145
3146         * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
3147         CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
3148
3149 2003-09-17  Jakub Jelinek  <jakub@redhat.com>
3150
3151         * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
3152         * tst-align.c: Include tst-stack-align.h.
3153         (tf, do_test): Use TEST_STACK_ALIGN macro.
3154
3155 2003-09-17  Ulrich Drepper  <drepper@redhat.com>
3156
3157         * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
3158         variable.
3159
3160 2003-09-16  Ulrich Drepper  <drepper@redhat.com>
3161
3162         * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
3163         stack-related values for the initial thread.
3164
3165 2003-09-15  Jakub Jelinek  <jakub@redhat.com>
3166
3167         * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
3168
3169 2003-09-11  Ulrich Drepper  <drepper@redhat.com>
3170
3171         * pthread_mutex_lock.c: Minor code rearrangements.
3172
3173 2003-09-05  Roland McGrath  <roland@redhat.com>
3174
3175         * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
3176         Instead, include ../nptl_db/db_info.c to do its magic.
3177         * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
3178         (__pthread_pthread_key_2ndlevel_size): Likewise.
3179         * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
3180         * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
3181         * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
3182         * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
3183         * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
3184         * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
3185         * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
3186         * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
3187         * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
3188         * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
3189         * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
3190         * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
3191         * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
3192         * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
3193         * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
3194         * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
3195         * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
3196
3197 2003-09-08  Ulrich Drepper  <drepper@redhat.com>
3198
3199         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
3200         of pthread_t to be compatible with LT.
3201         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3202         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3203         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3204         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3205         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
3206         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3207         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
3208
3209 2003-09-04  Ulrich Drepper  <drepper@redhat.com>
3210
3211         * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
3212
3213 2003-09-04  Jakub Jelinek  <jakub@redhat.com>
3214
3215         * unwind-forcedunwind.c: Move to...
3216         * sysdeps/pthread/unwind-forcedunwind.c: ...here.
3217         (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
3218         * sysdeps/pthread/jmpbuf-unwind.h: New file.
3219         * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
3220         * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
3221         * unwind.c: Include jmpbuf-unwind.h.
3222         (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
3223
3224 2003-09-02  Jakub Jelinek  <jakub@redhat.com>
3225
3226         * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
3227         * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
3228         pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
3229         * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
3230         * sysdeps/unix/sysv/linux/alpha/Versions: New file.
3231         * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
3232         * sysdeps/unix/sysv/linux/sparc/Versions: New file.
3233         * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
3234         (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
3235         as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
3236         * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
3237         function.
3238         (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
3239         as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
3240         * Makefile (tests): Add tst-stack2.
3241         * tst-stack2.c: New test.
3242         * tst-stack1.c: Include limits.h and sys/param.h.
3243         (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
3244
3245         * pthread_condattr_setpshared.c: Include errno.h.
3246         (pthread_condattr_setpshared): Return EINVAL if pshared
3247         is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
3248
3249         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
3250         defined symbol for entry point to avoid cancellation.
3251         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
3252         Likewise.
3253         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3254         Likewise.
3255         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
3256         Likewise.
3257         * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
3258         Likewise.
3259         * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
3260         Likewise.
3261         * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
3262         __close_nocancel, __read_nocancel, __write_nocancel,
3263         __waitpid_nocancel): Add attribute_hidden.  If not in libc.so,
3264         libpthread.so or librt.so, define to corresponding function
3265         without _nocancel suffix.
3266         * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
3267         * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
3268         * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
3269
3270         * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
3271
3272 2003-09-02  Ulrich Drepper  <drepper@redhat.com>
3273
3274         * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
3275         * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
3276
3277         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
3278         in subsections has a symbol associated with it.
3279
3280         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
3281         defined symbol for entry point to avoid cancellation.
3282         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
3283
3284 2003-09-01  Jakub Jelinek  <jakub@redhat.com>
3285
3286         * Makefile (tests): Add tst-tls5.
3287         (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
3288         ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
3289         ($(objpfx)tst-tls5): New.
3290         ($(objpfx)tst-tls6.out): Likewise.
3291         (tests): Depend on $(objpfx)tst-tls6.out.
3292         * tst-tls3.c: Include stdint.h and pthreaddef.h.
3293         (do_test): Check pthread_self () return value alignment.
3294         * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
3295         (tf): Check pthread_self () return value alignment.
3296         * tst-tls5.c: New test.
3297         * tst-tls5.h: New.
3298         * tst-tls5mod.c: New.
3299         * tst-tls5moda.c: New.
3300         * tst-tls5modb.c: New.
3301         * tst-tls5modc.c: New.
3302         * tst-tls5modd.c: New.
3303         * tst-tls5mode.c: New.
3304         * tst-tls5modf.c: New.
3305         * tst-tls6.sh: New test.
3306
3307         * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
3308         ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
3309         * init.c (pthread_functions): Initialize them.
3310         * forward.c (pthread_cond_timedwait@GLIBC_2.0,
3311         pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
3312         * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
3313         pthread_cond_timedwait@@GLIBC_2.3.2.
3314
3315 2003-09-01  Jakub Jelinek  <jakub@redhat.com>
3316
3317         * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
3318         * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
3319         * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
3320         * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
3321         * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
3322         * sysdeps/unix/sysv/linux/alpha/Versions: New file.
3323
3324         * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
3325
3326         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
3327         _POSIX_THREAD_PRIORITY_SCHEDULING.
3328         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3329
3330 2003-08-31  Ulrich Drepper  <drepper@redhat.com>
3331
3332         * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
3333         nested function, use static inline function from libio.h.
3334         Code by Richard Henderson.
3335
3336         * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
3337         weak.
3338
3339 2003-08-30  Jakub Jelinek  <jakub@redhat.com>
3340
3341         * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
3342         * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
3343         * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
3344         * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
3345         * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
3346         * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
3347         * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
3348         * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
3349         * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
3350         * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
3351         * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
3352         * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
3353         * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
3354         * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
3355         * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
3356         * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
3357         * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
3358         * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
3359         * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
3360         * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
3361         * sysdeps/sparc/sparc32/pthreaddef.h: New file.
3362         * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
3363         * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
3364         * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
3365         * sysdeps/sparc/sparc64/pthreaddef.h: New file.
3366         * sysdeps/sparc/tls.h: New file.
3367         * sysdeps/sparc/tcb-offsets.sym: New file.
3368         * sysdeps/sparc/Makefile: New file.
3369         * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
3370         * init.c [__sparc__] (__NR_set_tid_address): Define.
3371
3372 2003-08-29  Jakub Jelinek  <jakub@redhat.com>
3373
3374         * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
3375         _IO_release_lock): Define.
3376
3377 2003-08-29  Jakub Jelinek  <jakuB@redhat.com>
3378
3379         * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
3380         sigemptyset before sigaddset.  Reported by jreiser@BitWagon.com.
3381
3382 2003-08-27  Ulrich Drepper  <drepper@redhat.com>
3383
3384         * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
3385         (__pthread_cleanup_class): Add missing return types of member
3386         functions.
3387
3388 2003-08-26  Steven Munroe <sjmunroe@us.ibm.com>
3389
3390         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3391         (lll_mutex_unlock_force): Add memory barrier between store and futex
3392         syscall.
3393
3394 2003-08-25  Ulrich Drepper  <drepper@redhat.com>
3395
3396         * tst-cancel4.c (do_test): Also unlink tempfname and remove
3397         tempmsg in first loop.
3398
3399 2003-08-18  Ulrich Drepper  <drepper@redhat.com>
3400
3401         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
3402         _POSIX_THREAD_PRIORITY_SCHEDULING.
3403         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3404
3405 2003-08-07  Jakub Jelinek  <jakub@redhat.com>
3406
3407         * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
3408         (__rtld_lock_default_lock_recursive,
3409         __rtld_lock_default_unlock_recursive): Define.
3410         [_LIBC && SHARED] (__rtld_lock_lock_recursive,
3411         __rtld_lock_unlock_recursive): Define using
3412         GL(_dl_rtld_*lock_recursive).
3413         * init.c (__pthread_initialize_minimal_internal): Initialize
3414         _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
3415         Lock GL(_dl_load_lock) the same number of times as
3416         GL(_dl_load_lock) using non-mt implementation was nested.
3417
3418         * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
3419         * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
3420
3421 2003-08-06  Jakub Jelinek  <jakub@redhat.com>
3422
3423         * tst-cancel17.c (do_test): Make len2 maximum of page size and
3424         PIPE_BUF.
3425
3426 2003-08-07  Jakub Jelinek  <jakub@redhat.com>
3427
3428         * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
3429
3430 2003-08-03  Jakub Jelinek  <jakub@redhat.com>
3431
3432         * sysdeps/pthread/createthread.c (do_clone): Move error handling
3433         to first syscall error check.  Move syscall error check for tkill
3434         into __ASSUME_CLONE_STOPPED #ifdef.
3435
3436 2003-08-02  Ulrich Drepper  <drepper@redhat.com>
3437
3438         * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
3439         is not defined, do explicit synchronization.
3440         (create_thread): Do not lock pd->lock here.  If __ASSUME_CLONE_STOPPED
3441         is not defined also unlock pd->lock for non-debugging case in case
3442         it is necessary.
3443         * pthread_create.c (start_thread): Always get and release pd->lock
3444         if __ASSUME_CLONE_STOPPED is not defined.
3445         (start_thread_debug): Removed.  Adjust users.
3446         * allocatestack.c (allocate_stack): Always initialize lock if
3447         __ASSUME_CLONE_STOPPED is not defined.
3448         * Makefile (tests): Add tst-sched1.
3449         * tst-sched1.c: New file.
3450
3451         * sysdeps/pthread/createthread.c (do_clone): Only use
3452         sched_setschduler and pass correct parameters.
3453
3454 2003-07-31  Jakub Jelinek  <jakub@redhat.com>
3455
3456         * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
3457         pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
3458         PTHREAD_STACK_MIN in comments.
3459
3460 2003-07-31  Jakub Jelinek  <jakub@redhat.com>
3461
3462         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
3463         Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
3464         argument.
3465         * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
3466         * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
3467         * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
3468         (__pthread_cleanup_upto): Fix prototype.
3469         (_longjmp_unwind): Adjust caller.
3470         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
3471         Change second argument to const struct pointer.
3472         * tst-sem8.c (main): Remove unused s2 and s3 variables.
3473         * tst-sem9.c (main): Likewise.
3474         * unwind.c: Include string.h for strlen prototype.
3475
3476 2003-07-31  Ulrich Drepper  <drepper@redhat.com>
3477
3478         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
3479         (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
3480         * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
3481         Define HAVE_CMOV.
3482         Patch by Nicholas Miell <nmiell@attbi.com>.
3483
3484 2003-07-30  Jakub Jelinek  <jakub@redhat.com>
3485
3486         * init.c (__pthread_initialize_minimal_internal): Initialize
3487         GL(dl_init_static_tls).
3488         * pthreadP.h (__pthread_init_static_tls): New prototype.
3489         * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
3490         New functions.
3491         * Makefile (tests): Add tst-tls4.
3492         (modules-names): Add tst-tls4moda and tst-tls4modb.
3493         ($(objpfx)tst-tls4): Link against libdl and libpthread.
3494         ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
3495         tst-tls4modb.so.
3496         * tst-tls4.c: New file.
3497         * tst-tls4moda.c: New file.
3498         * tst-tls4modb.c: New file.
3499
3500 2003-06-19  Daniel Jacobowitz  <drow@mvista.com>
3501
3502         * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
3503         before __timer_dealloc.
3504         * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
3505         Don't call list_unlink.
3506
3507 2003-07-29  Roland McGrath  <roland@redhat.com>
3508
3509         * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
3510
3511 2003-07-25  Jakub Jelinek  <jakub@redhat.com>
3512
3513         * tst-cancel17.c (do_test): Check if aio_cancel failed.
3514         Don't reuse struct aiocb A if it failed.
3515         Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
3516         not just one byte, as that does not block.
3517
3518 2003-07-22  Jakub Jelinek  <jakub@redhat.com>
3519
3520         * sysdeps/pthread/unwind-resume.c: New file.
3521         * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
3522         unwind-resume in csu subdir.
3523         (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
3524         exceptions.
3525         (librt-sysdep_routines, librt-shared-only-routines): Add
3526         rt-unwind-resume.
3527         * sysdeps/pthread/rt-unwind-resume.c: New file.
3528         * unwind-forcedunwind.c: New file.
3529         * Makefile (libpthread-routines): Add unwind-forcedunwind.
3530         (libpthread-shared-only-routines): Likewise.
3531         (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
3532         * pthreadP.h (pthread_cancel_init): New prototype.
3533         * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
3534
3535         * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
3536         attr argument const struct pthread_attr *.
3537
3538         * res.c (__res_state): Return __resp.
3539         * descr.h: Include resolv.h.
3540         (struct pthread): Add res field.
3541         * pthread_create.c: Include resolv.h.
3542         (start_thread): Initialize __resp.
3543         * Makefile (tests): Add tst-_res1.
3544         (module-names): Add tst-_res1mod1, tst-_res1mod2.
3545         ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
3546         ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
3547         libpthread.
3548         * tst-_res1.c: New file.
3549         * tst-_res1mod1.c: New file.
3550         * tst-_res1mod2.c: New file.
3551
3552 2003-07-21  Ulrich Drepper  <drepper@redhat.com>
3553
3554         * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
3555
3556         * Makefile: Define various *-no-z-defs variables for test DSOs
3557         which has undefined symbols.
3558
3559 2003-07-21  Steven Munroe  <sjmunroe@us.ibm.com>
3560
3561         * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3562         Retry if the stwcx fails to store once_control.
3563
3564 2003-07-20  Ulrich Drepper  <drepper@redhat.com>
3565
3566         * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
3567         pthread_attr_setaffinity.
3568         * Versions [libpthread] (GLIBC_2.3.3): Likewise.
3569         * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
3570         * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
3571         * pthread_attr_destroy.c: Free cpuset element if allocated.
3572         * pthread_create.c: Pass iattr as additional parameter to
3573         create_thread.
3574         * sysdeps/pthread/createthread.c: If attribute is provided and
3575         a new thread is created with affinity set or scheduling parameters,
3576         start thread with CLONE_STOPPED.
3577         * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
3578         pthread_attr_setaffinity.
3579         * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
3580         cpuset element.
3581
3582 2003-07-15  Ulrich Drepper  <drepper@redhat.com>
3583
3584         * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
3585
3586 2003-07-14  Ulrich Drepper  <drepper@redhat.com>
3587
3588         * sysdeps/pthread/configure.in: Require CFI directives also for
3589         ppc and s390.
3590
3591 2003-07-15  Jakub Jelinek  <jakub@redhat.com>
3592
3593         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
3594         Add cfi directives.
3595
3596 2003-07-12  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
3597
3598         * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
3599         CLEANUP_JMP_BUF.
3600         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
3601         registers as variables.  Call __pthread_mutex_unlock_usercnt.
3602         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
3603         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
3604         not self pointer in __writer.  Compare with TID to determine
3605         deadlocks.
3606         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3607         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
3608         Likewise.
3609         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
3610         Likewise.
3611         * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
3612         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
3613         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
3614         macros also when compiling librt.
3615
3616 2003-07-11  Jakub Jelinek  <jakub@redhat.com>
3617
3618         * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
3619         -fasynchronous-unwind-tables.
3620         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3621         (PSEUDO): Add cfi directives.
3622         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
3623         Likewise.
3624         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
3625         Likewise.
3626
3627 2003-07-08  Jakub Jelinek  <jakub@redhat.com>
3628
3629         * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
3630         __pthread_unregister_cancel): Add prototypes and hidden_proto.
3631         * unwind.c (__pthread_unwind_next): Add hidden_def.
3632         * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
3633         Likewise.
3634         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3635         Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
3636         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3637         Likewise.
3638         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
3639         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
3640         Likewise.
3641         * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
3642         HIDDEN_JUMPTARGET to call __pthread_register_cancel,
3643         __pthread_unregister_cancel and __pthread_unwind_next.
3644
3645 2003-07-04  Jakub Jelinek  <jakub@redhat.com>
3646
3647         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
3648         different symbol for the cancellation syscall wrapper and
3649         non-cancellation syscall wrapper.
3650         (PSEUDO_END): Define.
3651
3652 2003-07-05  Richard Henderson  <rth@redhat.com>
3653
3654         * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
3655         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
3656         lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3657         return actual return value from the syscall, not 0.
3658
3659 2003-07-07  Ulrich Drepper  <drepper@redhat.com>
3660
3661         * descr.h (struct pthread): Add pid field.
3662         * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
3663         (__reclaim_stacks): Likewise.
3664         * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
3665         also check for PID of the signal source.
3666         (__pthread_initialize_minimal_internal): Also initialize pid field
3667         of initial thread's descriptor.
3668         * pthread_cancel.c: Use tgkill instead of tkill if possible.
3669         * sysdeps/unix/sysv/linux/fork.c: Likewise.
3670         * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
3671         * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
3672         * sysdeps/unix/sysv/linux/raise.c: Likewise.
3673
3674 2003-07-05  Ulrich Drepper  <drepper@redhat.com>
3675
3676         * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
3677         Fix use of parameter.
3678         (__libc_cleanup_pop): Likewise.
3679
3680 2003-07-04  Ulrich Drepper  <drepper@redhat.com>
3681
3682         * init.c (sigcancel_handler): Change parameters to match handler
3683         for SA_SIGACTION.  Check signal number and code to recognize
3684         invalid invocations.
3685
3686 2003-07-03  Roland McGrath  <roland@redhat.com>
3687
3688         * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
3689         Apply sizeof (struct pthread) bias to r13 value.
3690
3691 2003-07-03  Ulrich Drepper  <drepper@redhat.com>
3692
3693         * sysdeps/pthread/configure.in: Require CFI directives.
3694
3695         * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
3696         definition.
3697         * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
3698         libpthread compilation.
3699         * unwind.c (__pthread_unwind): Add hidden_def.
3700         * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
3701
3702 2003-07-01  Ulrich Drepper  <drepper@redhat.com>
3703
3704         * libc-cancellation.c (__libc_cleanup_routine): Define.
3705         * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
3706         (__pthread_cleanup_pop): Define.
3707
3708 2003-07-01  Richard Henderson  <rth@redhat.com>
3709
3710         * sysdeps/alpha/elf/pt-initfini.c: New file.
3711         * sysdeps/alpha/pthread_spin_lock.S: New file.
3712         * sysdeps/alpha/pthread_spin_trylock.S: New file.
3713         * sysdeps/alpha/pthreaddef.h: New file.
3714         * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
3715         * sysdeps/alpha/tls.h: New file.
3716         * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
3717         * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
3718         * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
3719         * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
3720         * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
3721         * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
3722         * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
3723         * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
3724         * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
3725         * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
3726
3727 2003-07-01  Ulrich Drepper  <drepper@redhat.com>
3728
3729         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
3730         cleanup support and unwind info.
3731
3732 2003-06-30  Ulrich Drepper  <drepper@redhat.com>
3733
3734         * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
3735         Use correct cleanup handler registration.  Add unwind info.
3736         * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
3737         * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3738         * tst-once3.c: Add cleanup handler and check it is called.
3739         * tst-once4.c: Likewise.
3740         * tst-oncex3.c: New file.
3741         * tst-oncex4.c: New file.
3742         * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
3743
3744 2003-06-29  Ulrich Drepper  <drepper@redhat.com>
3745
3746         * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
3747
3748 2003-06-27  Ulrich Drepper  <drepper@redhat.com>
3749
3750         * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
3751         (tf_msgsnd): Likewise.
3752
3753         * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
3754         premature returns a bit more.
3755
3756 2003-06-26  Ulrich Drepper  <drepper@redhat.com>
3757
3758         * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
3759         definition to the front.
3760
3761         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
3762         the cleanup functions to make the names unique.  Fix dwarf opcode
3763         un unwind table.
3764         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
3765         functions to make the names unique.  Fix CFA offset for two blocks.
3766
3767 2003-06-25  Ulrich Drepper  <drepper@redhat.com>
3768
3769         * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
3770         missing closing braces.
3771         Patch by Christophe Saout <christophe@saout.de>.
3772
3773 2003-06-24  Roland McGrath  <roland@redhat.com>
3774
3775         * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
3776
3777 2003-06-24  Ulrich Drepper  <drepper@redhat.com>
3778
3779         * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
3780         * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
3781
3782         * pthreadP.h: Declare __find_thread_by_id.
3783         * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
3784         * pthread_clock_gettime.c: Allow using other thread's clock.
3785         * pthread_clock_settime.c: Likewise.
3786         * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
3787         * Makefile: Add rules to build and run tst-clock2.
3788         * tst-clock2.c: New file.
3789
3790 2003-06-23  Ulrich Drepper  <drepper@redhat.com>
3791
3792         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
3793         to use exception-based cleanup handler.
3794         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3795
3796         * tst-cond8.c (ch): Announce that we are done.
3797
3798         * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
3799
3800         * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
3801         Also test aio_suspend with timeout value.
3802
3803 2003-06-22  Ulrich Drepper  <drepper@redhat.com>
3804
3805         * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
3806         * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
3807         attribute_hidden.
3808
3809         * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
3810         (__pthread_mutex_lock_internal): Likewise.
3811         (__pthread_mutex_unlock_internal): Likewise.
3812         (__pthread_mutex_unlock_usercnt): Declare.
3813         * pthread_mutex_destroy.c: Always fail if used in any way.
3814         * pthread_mutex_init.c: Update comment.
3815         * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
3816         * pthread_mutex_timedlock.c: Adjust __nusers.
3817         * pthread_mutex_trylock.c: Adjust __nusers.
3818         * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
3819         and public interfaces are wrapper with pass additional parameter.
3820         __pthread_mutex_unlock_usercnt does not adjust __nusers if second
3821         parameter zero.
3822         * tst-mutex8.c: New file.
3823         * Makefile (tests): Add tst-mutex8.
3824         * sysdeps/pthread/pthread_cond_timedwait.c: Call
3825         __pthread_mutex_unlock_usercnt.
3826         * sysdeps/pthread/pthread_cond_wait.c: Likewise.
3827         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3828         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3829         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3830         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3831         * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
3832         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3833         Add __nusers.
3834         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3835         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3836         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3837         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3838         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3839
3840         * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
3841         * pthread_mutex_timedlock.c: Likewise.
3842         * pthread_mutex_trylock.c: Adjust __nusers.
3843         * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
3844         * tst-mutex9.c: New file.
3845         * Makefile (tests): Add tst-mutex9.
3846         * sysdeps/i386/tls.h: Remove THREAD_ID definition.
3847         * sysdeps/ia64/tls.h: Likewise.
3848         * sysdeps/powerpc/tls.h: Likewise.
3849         * sysdeps/s390/tls.h: Likewise.
3850         * sysdeps/sh/tls.h: Likewise.
3851         * sysdeps/x86_64/tls.h: Likewise.
3852         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3853         Change type of __owner.
3854         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3855         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3856         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3857         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3858         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3859
3860 2003-06-19  Jakub Jelinek  <jakub@redhat.com>
3861
3862         * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
3863         * sysdeps/unix/sysv/linux/sem_post.c: ...here.
3864
3865         * sysdeps/unix/sysv/linux/sem_post.c: Move to...
3866         * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here.  Pass nr + 1
3867         instead of nr to lll_futex_wake.  Only set errno and return -1
3868         if err < 0.
3869
3870         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
3871         lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3872         return actual return value from the syscall, not 0.
3873
3874 2003-06-18  Ulrich Drepper  <drepper@redhat.com>
3875
3876         * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
3877         find a random value.
3878         (tf_msgrcv): Likewise.  Also don't report msgrcv returns if
3879         errno==EIDRM.
3880
3881         * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
3882         compat_timer_settime.
3883         * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
3884         compat_timer_gettime.
3885         * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
3886         compat_timer_getoverrun.
3887         * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
3888         compat_timer_delete.
3889
3890         * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
3891         error-checking mutex detect busy mutexes.
3892
3893 2003-06-17  Ulrich Drepper  <drepper@redhat.com>
3894
3895         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
3896         Add ax to clobber list.
3897         (lll_mutex_cond_lock): Likewise.
3898         (lll_mutex_unlock): Likewise.
3899         (lll_lock): Likewise.
3900         (lll_unlock): Likewise.
3901
3902         * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
3903         * tst-cancel18.c: New file.
3904         * tst-cancelx18.c: New file.
3905
3906         * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
3907         and tcdrain.
3908
3909         * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
3910         * tst-cancel17.c: New file.
3911         * tst-cancelx17.c: New file.
3912
3913         * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
3914         * sysdeps/unix/sysv/linux/sigwait.c: New file.
3915         * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
3916
3917         * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
3918
3919 2003-06-16  Jakub Jelinek  <jakub@redhat.com>
3920
3921         * sysdeps/pthread/createthread.c (create_thread): Set
3922         header.multiple_threads unconditionally.
3923         * allocatestack.c (allocate_stack): Likewise.
3924         * descr.h (struct pthread): Add header.multiple_threads
3925         unconditionally.
3926         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
3927         Define for librt.  #error if neither libpthread, libc nor librt.
3928         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
3929         Likewise.
3930         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
3931         CDISABLE): Likewise.
3932         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
3933         CDISABLE): Likewise.
3934         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
3935         CDISABLE): Likewise.
3936         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
3937         CDISABLE): Likewise.  Access header.multiple_threads outside of
3938         libc and libpthread.
3939         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
3940         Likewise.
3941         * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
3942         * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
3943
3944 2003-06-17  Ulrich Drepper  <drepper@redhat.com>
3945
3946         * tst-cancel4.c: Add tests for the socket and signal functions, pause.
3947         Also test early cancellation before the thread reaches the cancellation
3948         point.
3949
3950         * Makefile: Compile forward.c with exceptions.
3951
3952         * sysdeps/unix/sysv/linux/sleep.c: New file.
3953
3954 2003-06-16  Ulrich Drepper  <drepper@redhat.com>
3955
3956         * Makefile: Add CFLAGS definition to compile function wrappers
3957         duplicated from libc with exceptions.
3958         * tst-cancel4.c: Also check cancellation handlers.
3959
3960         * Makefile: Add rules to build and run tst-cancel16 and
3961         tst-cancelx16.  Add missing CFLAGS definitions.
3962         * tst-cancel16.c: New file.
3963         * tst-cancelx16.c: New file.
3964
3965 2003-06-15  Ulrich Drepper  <drepper@redhat.com>
3966
3967         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
3968         (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
3969         * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
3970         (DL_SYSINFO_IMPLEMENTATION): Likewise.
3971
3972         * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
3973         (LIBC_CANCEL_RESET): Likewise.
3974         Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
3975         * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
3976         librt-cancellation.
3977         (CFLAGS-libcrt-cancellation.c): Define.
3978         * sysdeps/pthread/librt-cancellation.c: New file.
3979         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
3980         macros also when compiling librt.
3981         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
3982         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
3983         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3984         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
3985         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
3986         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
3987         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3988
3989         * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
3990         compat_timer_create.
3991
3992 2003-06-14  Ulrich Drepper  <drepper@redhat.com>
3993
3994         * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
3995
3996         * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
3997         __register_atfork.
3998         * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
3999         Add libc_hidden_def.
4000
4001 2003-06-13  Roland McGrath  <roland@redhat.com>
4002
4003         * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
4004         constant from <sys/reg.h> to ps_get_thread_area, not register contents.
4005
4006 2003-06-11  Ulrich Drepper  <drepper@redhat.com>
4007
4008         * allocatestack.c (queue_stack): Always inline.
4009         * ptreadhP.h (__do_cancel): Likewise.
4010
4011 2003-06-10  Jakub Jelinek  <jakub@redhat.com>
4012
4013         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
4014         a typo.
4015
4016 2003-06-10  Ulrich Drepper  <drepper@redhat.com>
4017
4018         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4019         (__pthread_cond_signal): Remove incorrect second addition for
4020         cond_lock!=0.
4021
4022 2003-06-09  Ulrich Drepper  <drepper@redhat.com>
4023
4024         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4025         (__pthread_cond_signal): Use correct futex pointer in
4026         __lll_mutex_lock_wait call.
4027
4028         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4029         (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
4030
4031 2003-06-08  Ulrich Drepper  <drepper@redhat.com>
4032
4033         * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
4034         cancelable.
4035         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
4036         Likewise.
4037
4038         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
4039         hand-written CFI generation code.  Since ENTRY/END also initiated
4040         CFI frames this caused two CFI sets to be generated.
4041
4042 2003-06-07  Ulrich Drepper  <drepper@redhat.com>
4043
4044         * cleanup_routine.c: New file.
4045         * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
4046         * sysdeps/pthread/pthread.h: Add support for fully exception-based
4047         cleanup handling.
4048         * Makefile (libpthread-routines): Add cleanup_routine.
4049         Add more CFLAGS variables to compile with exceptions.  Add comments
4050         why which file needs unwind tables.
4051         (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
4052         tests.
4053         * tst-cancelx1.c: New file.
4054         * tst-cancelx2.c: New file.
4055         * tst-cancelx3.c: New file.
4056         * tst-cancelx4.c: New file.
4057         * tst-cancelx5.c: New file.
4058         * tst-cancelx6.c: New file.
4059         * tst-cancelx7.c: New file.
4060         * tst-cancelx8.c: New file.
4061         * tst-cancelx9.c: New file.
4062         * tst-cancelx10.c: New file.
4063         * tst-cancelx11.c: New file.
4064         * tst-cancelx12.c: New file.
4065         * tst-cancelx13.c: New file.
4066         * tst-cancelx14.c: New file.
4067         * tst-cancelx15.c: New file.
4068         * tst-cleanupx0.c: New file.
4069         * tst-cleanupx0.expect: New file.
4070         * tst-cleanupx1.c: New file.
4071         * tst-cleanupx2.c: New file.
4072         * tst-cleanupx3.c: New file.
4073
4074         * tst-cleanup0.c: Make standard compliant.
4075         * tst-cleanup1.c: Likewise.
4076
4077         * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
4078         * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
4079         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4080         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4081         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4082         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4083         * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
4084         CLEANUP_JMP_BUF.
4085         * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4086         * tst-cancel12.c: New file.
4087         * tst-cancel13.c: New file.
4088         * tst-cancel14.c: New file.
4089         * tst-cancel15.c: New file.
4090         * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
4091         and tst-cancel15.
4092
4093         * tst-cancel1.c: Add some comments.
4094
4095         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
4096         timeout correctly.
4097
4098 2003-06-06  Ulrich Drepper  <drepper@redhat.com>
4099
4100         * Makefile (CFLAGS-pthread_cancel.c): Define.
4101
4102 2003-06-05  Ulrich Drepper  <drepper@redhat.com>
4103
4104         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
4105         Change type of __writer element to int.
4106         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4107         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4108         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4109         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4110         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4111         * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
4112         * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4113         * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
4114         Compare with TID to determine deadlocks.
4115         * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
4116         * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
4117         * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
4118         * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
4119         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
4120         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4121         Likewise.
4122         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4123         Likewise.
4124         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
4125         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
4126         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
4127         Likewise.
4128         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
4129         Likewise.
4130         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
4131         * Makefile (tests): Add tst-rwlock12.
4132         * tst-rwlock12.c: New file.
4133
4134 2003-06-05  Jakub Jelinek  <jakub@redhat.com>
4135
4136         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
4137         __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
4138         Remove bogus hidden_proto.
4139         * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
4140         Likewise.
4141         * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
4142         lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
4143         * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
4144         ___lll_mutex_timedlock): Likewise.
4145
4146 2003-06-04  Ulrich Drepper  <drepper@redhat.com>
4147
4148         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
4149         (__pthread_cond_signal): Add some code to eventually handle
4150         cond_lock!=0.
4151
4152 2003-06-01  Ulrich Drepper  <drepper@redhat.com>
4153
4154         * Makefile (tests): Add tst-exec4.
4155         (tst-exec4-ARGS): Define.
4156         * tst-exec4.c: New file.
4157
4158 2003-05-31  Ulrich Drepper  <drepper@redhat.com>
4159
4160         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
4161         Also fail if tv_nsec < 0.
4162         (__lll_timedwait_tid): Likewise.
4163         * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
4164         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
4165         Likewise.
4166         * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
4167         Likewise.
4168         * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
4169         Likewise.
4170         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
4171         Likewise.
4172         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
4173         Likewise.
4174         * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
4175         Likewise.
4176
4177         * Makefile (tests): Add tst-sem8 and tst-sem9.
4178         * tst-sem8.c: New file.
4179         * tst-sem9.c: New file.
4180         * sem_open.c: Fix creation of in_use record if the file exists but
4181         no internal record.
4182
4183         * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
4184         definitions.
4185
4186         * sysdeps/pthread/timer_create.c (timer_create): In case
4187         evp==NULL, assign timer ID to sival_ptr.
4188
4189         * descr.h (struct pthread_unwind_buf): Change type of prev element to
4190         struct pthread_unwind_buf *.
4191         (struct pthread): Likewise for cleanup_jmp_buf element.
4192
4193         * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
4194         * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
4195         * unwind.c (__pthread_unwind_next): Likewise.
4196
4197 2003-05-30  Ulrich Drepper  <drepper@redhat.com>
4198
4199         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4200         (lll_futex_timed_wait): Use int for futex value parameter.
4201         (lll_futex_wake): Likewise.
4202         (lll_futex_requeue): Likewise.
4203
4204         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
4205         Replace one memory operation with one register operation.
4206
4207         * tst-join4.c (do_test): Fix error message.
4208
4209         * tst-rwlock6.c (do_test): Use correct format specifier.
4210
4211         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
4212         (__lll_mutex_lock_wait): Replace one memory operation with one
4213         register operation.
4214         * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
4215         (__lll_mutex_lock_wait): Likewise.
4216
4217         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4218         (__lll_mutex_cond_lock): Add one to value parameter of
4219         __lll_lock_wait to reflect reality in the futex syscall.
4220         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4221         (lll_mutex_cond_lock): Likewise.
4222
4223 2003-05-30  Jakub Jelinek  <jakub@redhat.com>
4224
4225         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
4226         New function.
4227         (lll_mutex_cond_lock): Define.
4228
4229 2003-05-29  Ulrich Drepper  <drepper@redhat.com>
4230
4231         * Makefile (tests): Add tst-signal6.
4232         * tst-signal6.c: New file.
4233
4234         * sysdeps/unix/sysv/linux/s390/lowlevellock.h
4235         (__lll_mutex_unlock_force): New function
4236         (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
4237
4238         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4239         (__lll_mutex_unlock_force): New function.
4240         (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
4241
4242         * tst-rwlock7.c (do_test): Use correct format specifier.
4243
4244         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
4245         Find break parameter in correct asm argument.
4246
4247 2003-05-27  Jakub Jelinek  <jakub@redhat.com>
4248
4249         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
4250         Remove out4.
4251         (lll_futex_requeue): Fix __o3 constraint, return negative errno if
4252         error occured.
4253         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4254         Add __mutex.
4255         * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
4256         lll_futex_requeue, lll_mutex_unlock_force): Define.
4257
4258 2003-05-30  Jakub Jelinek  <jakub@redhat.com>
4259
4260         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4261         (pthread_cond_t): Add __mutex.
4262         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
4263         lll_futex_requeue, lll_mutex_unlock_force): Define.
4264
4265 2003-05-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
4266
4267         * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
4268         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4269         Add __mutex field.
4270         * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
4271         Define.
4272         (lll_futex_wait, lll_futex_wake): Define.
4273         * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
4274         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
4275         FUTEX_REQUEUE instead of FUTEX_WAIT.
4276         * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
4277         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
4278         mutex which was used in condvar structure.  Call
4279         __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
4280         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
4281
4282         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
4283         include tcb-offsets.h.  Read wakeup value in locked region.
4284         Use the value of gbr register as THREAD_ID.
4285         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4286         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4287         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4288
4289         * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
4290         macros.
4291
4292 2003-05-28  Ulrich Drepper  <drepper@redhat.com>
4293
4294         * sysdeps/pthread/pthread_cond_broadcast.c
4295         (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
4296
4297 2003-05-26  Ulrich Drepper  <drepper@redhat.com>
4298
4299         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
4300         typo in register name.
4301         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
4302         correctly.  Actually use requeue.  Little optimization.
4303         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
4304         mutex address early.  Handle cancellation state as 32-bit value.
4305         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4306         Remove unnecessary label.
4307
4308 2003-05-25  Ulrich Drepper  <drepper@redhat.com>
4309
4310         * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
4311         instead of FUTEX_WAIT.
4312         * sysdeps/pthread/pthread_cond_signal.c: Likewise.
4313         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
4314         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
4315         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
4316         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
4317         * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
4318         used in condvar structure.  Call __pthread_mutex_cond_lock instead
4319         of __pthread_mutex_lock_internal.
4320         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4321         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4322         * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4323         (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
4324         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4325         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4326         * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
4327         Add pthread_mutex_cond_lock.
4328         * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
4329         * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
4330         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
4331         lll_mutex_cond_lock.
4332         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4333         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
4334         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4335         Add __mutex field.
4336         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4337         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4338
4339         * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
4340         * sysdeps/x86_64/tcb-offsets.sym: Likewise.
4341
4342         * pthreadP.h: Declare __pthread_mutex_cond_lock.
4343         * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
4344         Use it instead of lll_mutex_lock.  If __pthread_mutex_lock is a
4345         macro don't define aliases.
4346
4347         * cancellation.c: Remove __pthread_enable_asynccancel_2.
4348         * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
4349         * sysdeps/pthread/pthread_cond_timedwait.c: Use
4350         __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
4351         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4352         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4353         * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4354         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4355         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4356
4357 2003-05-17  Ulrich Drepper  <drepper@redhat.com>
4358
4359         * sem_open.c: Fix one endless loop.  Implement correct semantics
4360         wrt opening the same semaphore more then once.
4361         * sem_close.c: Adjust for sem_open change.
4362         * semaphoreP.h: Include <semaphore.h>.  Define struct inuse_sem.
4363         Declare __sem_mappings, __sem_mappings_lock, __sem_search.
4364         * Makefile (tests): Add tst-sem7.
4365         * tst-sem7.c: New file.
4366
4367 2003-05-16  Roland McGrath  <roland@redhat.com>
4368
4369         * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
4370         uninitialized variable braino.
4371
4372 2003-05-16  Ulrich Drepper  <drepper@redhat.com>
4373
4374         * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
4375         test for syscall availability.
4376
4377         * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
4378         __no_posix_timers to -1 if the syscalls don't exist.
4379
4380         * pthread_join.c (pthread_join): Set tid field of the joined
4381         thread to -1.  This isn't necessary but helps to recognize some
4382         error conditions with almost no cost.
4383
4384         * allocatestack.c (FREE_P): Also negative values indicate an
4385         unused stack.
4386
4387         * unwind.c: Include <unistd.h>.
4388
4389 2003-05-14  Ulrich Drepper  <drepper@redhat.com>
4390
4391         * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
4392
4393 2003-05-14  Jakub Jelinek  <jakub@redhat.com>
4394
4395         * Makefile (crti-objs, crtn-objs): New variables.
4396         (omit-deps, extra-objs): Add crtn.
4397         ($(objpfx)libpthread.so): Depend on both crti and crtn
4398         and links to them in multidir.
4399         ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
4400
4401 2003-05-12  Steven Munroe  <sjmunroe@us.ibm.com>
4402
4403         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4404         (lll_mutex_unlock): Use atomic_exchange_rel.
4405
4406 2003-05-11  Ulrich Drepper  <drepper@redhat.com>
4407
4408         * cond-perf.c (cons): Add missing locking around setting of alldone.
4409
4410 2003-05-10  Ulrich Drepper  <drepper@redhat.com>
4411
4412         * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
4413         related macros.
4414         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
4415
4416 2003-05-09  Ulrich Drepper  <drepper@redhat.com>
4417
4418         * tst-sem6.c: New file.
4419         * Makefile (tests): Add tst-sem6.
4420
4421         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
4422         Use atomic_exchange_rel instead of atomic_exchange.
4423         * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
4424         Likewise.
4425
4426         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
4427         code for lll_futex_wait and lll_futex_wake in static apps.  Use
4428         vsyscall is possible.
4429
4430         * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
4431         * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
4432         * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
4433         pthread_setaffinity_np.
4434         * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
4435         and pthread_setaffinity_np.
4436         * Makefile (libpthread-routines): Add pthread_getaffinity and
4437         pthread_setaffinity.
4438
4439         * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
4440         use it in case mmap to allocate the stack fails.
4441         * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
4442         ARCH_MAP_FLAGS here.
4443         * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
4444         ARCH_RETRY_MMAP.
4445
4446 2003-05-08  Ulrich Drepper  <drepper@redhat.com>
4447
4448         * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
4449         handler implementation.  It is now lockless in fork().
4450         * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
4451         * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
4452         * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>.  Don't
4453         declare the __fork_*_lists.
4454         (struct fork_handler): Include pointers to all three functions.
4455         Add next, refcntr and need_signal elements.
4456         (__fork_handlers): New declaration.
4457         (__register_atfork_malloc): Remove declaration.
4458         (HAVE_register_atfork_malloc): Remove definition.
4459         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
4460         __pthread_child_handler variable.
4461         (__libc_pthread_init): Use __register_atfork instead of explicitly
4462         adding to the list.
4463         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
4464         and lll_futex_wake.
4465         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
4466
4467         * unwind.c (unwind_cleanup): Print error message and then abort.  This
4468         function must never be reached.
4469
4470         * cond-perf.c: New file.
4471
4472 2003-05-05  Ulrich Drepper  <drepper@redhat.com>
4473
4474         * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
4475
4476 2003-05-04  Roland McGrath  <roland@redhat.com>
4477
4478         * Makefile ($(objpfx)../libc.so): New target.
4479
4480 2003-05-02  Ulrich Drepper  <drepper@redhat.com>
4481
4482         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4483         (pthread_condattr_t): Size is only an int, don't use long for
4484         alignment.
4485         (pthread_mutexattr_t): Likewise.
4486         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4487         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4488         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4489
4490 2003-05-01  Ulrich Drepper  <drepper@redhat.com>
4491
4492         * sysdeps/i386/tls.h: Define THREAD_ID.
4493         * sysdeps/ia64/tls.h: Likewise.
4494         * sysdeps/powerpc/tls.h: Likewise.
4495         * sysdeps/s390/tls.h: Likewise.
4496         * sysdeps/sh/tls.h: Likewise.
4497         * sysdeps/x86_64/tls.h: Likewise.
4498         * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
4499         record ownership.
4500         * pthread_mutex_timedlock.c: Likewise.
4501         * pthread_mutex_trylock.c: Likewise.
4502         * pthread_mutex_unlock.c: Likewise.
4503         * pthread_rwlock_trywrlock.c: Likewise.
4504         * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
4505         * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
4506         * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4507         * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
4508
4509         * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
4510         flag.
4511
4512 2003-04-29  Jakub Jelinek  <jakub@redhat.com>
4513
4514         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4515         (__SIZEOF_PTHREAD_COND_T): Define to 48.
4516         (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
4517         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4518         Make __align long long instead of long.
4519         (pthread_rwlock_t): Formatting.
4520         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
4521         (pthread_rwlock_t): Formatting.
4522         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4523         (pthread_cond_t): Make __align long long instead of long.
4524         (pthread_rwlock_t): Move __flags field to the same position as in
4525         linuxthreads.
4526
4527 2003-04-30  Ulrich Drepper  <drepper@redhat.com>
4528
4529         * tst-rwlock6.c (do_test): Use correct printf format specifiers.
4530         * tst-rwlock7.c (do_test): Likewise.
4531
4532 2003-04-26  Roland McGrath  <roland@redhat.com>
4533
4534         * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
4535
4536 2003-04-22  Jakub Jelinek  <jakub@redhat.com>
4537
4538         * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
4539         sizeof (struct pthread).
4540         (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
4541         1 struct pthread.
4542         * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
4543         to 0.
4544         (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
4545         struct pthread.
4546         (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
4547         to 32-bit bytes.
4548         (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
4549         tcbp.
4550         (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
4551         unneccessarily.
4552         (NO_TLS_OFFSET): Define.
4553         * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
4554         add TLS_TCB_SIZE unnecessarily.
4555
4556 2003-04-22  Roland McGrath  <roland@redhat.com>
4557
4558         * Makeconfig (shared-thread-library): Reverse link order to work
4559         around linker bug.
4560
4561 2003-04-22  Ulrich Drepper  <drepper@redhat.com>
4562
4563         * semaphore.h: Fix typo in comment.
4564
4565 2003-04-21  Ulrich Drepper  <drepper@redhat.com>
4566
4567         * sysdeps/pthread/sigfillset.c: New file.
4568
4569         * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
4570         * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
4571         * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
4572         * sysdeps/pthread/sigaction.c: Likewise.
4573         * sysdeps/pthread/sigprocmask.c: New file.
4574         * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
4575         __SIGRTMIN+1.
4576         * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4577         Block SIGTIMER.  Also handle SI_TKILL events and terminate thread
4578         in this case.
4579
4580 2003-04-19  Ulrich Drepper  <drepper@redhat.com>
4581
4582         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
4583         (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
4584
4585         * sysdeps/unix/sysv/linux/unregister-atfork.c
4586         (__unregister_atfork): Don't free memory not allocated dynamically.
4587
4588         * semaphore.h: Remove __THROW marker from cancellation points.
4589         * nptl/sysdeps/pthread/pthread.h: Likewise.
4590
4591 2003-04-18  Ulrich Drepper  <drepper@redhat.com>
4592
4593         * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
4594         pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
4595         __THROW.
4596
4597 2003-04-16  Jakub Jelinek  <jakub@redhat.com>
4598
4599         * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
4600
4601 2003-04-15  Roland McGrath  <roland@redhat.com>
4602
4603         * forward.c (__pthread_unwind): Tweak to avoid warning.
4604
4605 2003-04-15  Ulrich Drepper  <drepper@redhat.com>
4606
4607         * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
4608
4609 2003-04-14  Ulrich Drepper  <drepper@redhat.com>
4610
4611         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
4612         overflow CFA advance instructions.
4613         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4614
4615 2003-04-14  Jakub Jelinek  <jakub@redhat.com>
4616
4617         * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
4618         * sysdeps/i386/pthread_spin_lock.c: Likewise.
4619         * sysdeps/x86_64/tls.h: Likewise.  Define LOCK_PREFIX if not already
4620         defined.
4621
4622         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
4623         DW_CFA_advance_loc2 for .Laddl-.Lsubl.
4624         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
4625         DW_CFA_advance_loc for .Laddl-.Lsubl.
4626
4627 2003-04-13  Ulrich Drepper  <drepper@redhat.com>
4628
4629         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
4630         position-independent unwind data for static libraries.
4631         Add missing unwind info.  Add comments.
4632
4633         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
4634         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4635         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4636         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4637
4638 2003-04-12  Ulrich Drepper  <drepper@redhat.com>
4639
4640         * Makefile: Make sure all cancellation points are compiled with
4641         exception and asynchronous unwind tables.
4642
4643         * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
4644         which mishandles loading of global object addresses in PIC.
4645         (THREAD_SETMEM_NC): Likewise.
4646
4647 2003-04-11  Ulrich Drepper  <drepper@redhat.com>
4648
4649         * pthread.h: Define new data structure for cleanup buffer.  Declare
4650         new cleanup handler interfaces.
4651         * descr.h: Include <unwind.h> if necessary.  Define pthread_unwind_buf.
4652         (struct pthread): Add cleanup_jmp_buf pointer.  Define
4653         HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
4654         * pthreadP.h: Declare __pthread_unwind.  Define __do_cancel to use
4655         it.  Declare old cleanup handler installation functions.
4656         * cleanup.c: Rewrite.  Install handler for unwind-based cleanup
4657         handling.
4658         * cleanup_defer.c: Likewise.
4659         * cleanup_compat.c: New file.  Old cleanup code.
4660         * cleanup_def_compat.c: New file.  Old cleanup code.
4661         * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
4662         if own thread descriptor.
4663         * unwind.c: New file.
4664         * forward.c: Add __pthread_unwind.
4665         * init.c (pthread_functions): Add __pthread_unwind.
4666         * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
4667         Add ptr___pthread_unwind.
4668         * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
4669         and unwind function.
4670         * Makefile (libpthread-routines): Add cleanup_compat,
4671         cleanup_def_compat, and unwind.  Define CFLAGS to enable unwind
4672         table generation if necessary.
4673         * version.c: Record whether unwind support is compiled in.
4674         * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
4675         * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
4676         handler interfaces.
4677         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
4678         complication to generate unwind information for syscall wrappers.
4679         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4680         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
4681         __cleanup_fct_attribute.
4682
4683         * Makefile: Add rules to build and run tst-cleanup0.
4684         * tst-cleanup0.c: New file.
4685         * tst-cleanup0.expect: New file.
4686
4687         * pthread_create.c (deallocate_tsd): Don't take parameter.  Adjust
4688         caller.  Optimize to avoid often unecessary local variable.
4689
4690 2003-04-11  Roland McGrath  <roland@redhat.com>
4691
4692         * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
4693         sets variable `multidir'; include that.
4694         (generated): Add it.
4695         ($(objpfx)$(multidir)/crti.o): New target.
4696         [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
4697
4698 2003-04-11  Ulrich Drepper  <drepper@redhat.com>
4699
4700         * tst-attr2.c (do_test): Add cast to avoid warning.
4701         * tst-mutex4.c (do_test): Likewise.
4702
4703 2003-04-10  Ulrich Drepper  <drepper@redhat.com>
4704
4705         * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
4706         in child.
4707
4708 2003-04-09  Ulrich Drepper  <drepper@redhat.com>
4709
4710         * Makefile (tests): Add tst-detach1.
4711         * tst-detach1.c: New file.
4712
4713 2003-04-08  Ulrich Drepper  <drepper@redhat.com>
4714
4715         * sysdeps/pthread/pthread.h: Remove duplicate
4716         pthread_cleanup_{push,pop} definitions.
4717
4718         * tst-barrier2.c: Eliminate warnings.
4719         * tst-cancel4.c: Likewise.
4720         * tst-cond4.c: Likewise.
4721         * tst-cond6.c: Likewise.
4722         * tst-detach1.c: Likewise.
4723         * tst-rwlock4.c: Likewise.
4724         * tst-rwlock6.c: Likewise.
4725         * tst-rwlock7.c: Likewise.
4726         * tst-sem3.c: Likewise.
4727         * tst-spin2.c: Likewise.
4728         * tst-umask1.c: Likewise.
4729
4730 2003-04-07  Ulrich Drepper  <drepper@redhat.com>
4731
4732         * pthread_detach.c (pthread_detach): Fix test for invalid TID.
4733
4734 2003-04-06  Ulrich Drepper  <drepper@redhat.com>
4735
4736         * descr.h (struct pthread): Move cancelhandling member to the front.
4737
4738 2003-04-05  Ulrich Drepper  <drepper@redhat.com>
4739
4740         * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
4741         malloc_parent, and malloc_child statically.
4742         (__register_atfork_malloc): New function.
4743         (free_mem): Don't free any of the malloc_* variables on the list.
4744         * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
4745         Define HAVE_register_atfork_malloc.
4746
4747 2003-04-04  Ulrich Drepper  <drepper@redhat.com>
4748
4749         * sysdeps/pthread/createthread.c (create_thread): Add some more
4750         comments explaining when to set multiple_threads and when not.
4751
4752         * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4753         THREAD_ATOMIC_BIT_SET if not already defined.
4754         * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4755         THREAD_ATOMIC_BIT_SET:
4756         * sysdeps/x86_64/tls.h: Likewise.
4757         * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
4758         THREAD_ATOMIC_CMPXCHG_VAL.
4759         (_pthread_cleanup_pop_restore): Likewise.
4760         * cancellation.c (__pthread_enable_asynccancel): Likewise.
4761         (__pthread_enable_asynccancel_2): Likewise.
4762         (__pthread_disable_asynccancel): Likewise.
4763         * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4764         (__libc_disable_asynccancel): Likewise.
4765         * init.c (sigcancel_handler): Likewise.
4766         * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
4767         * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
4768
4769 2003-04-03  Ulrich Drepper  <drepper@redhat.com>
4770
4771         * init.c (sigcancel_handler): Don't set EXITING_BIT here.
4772         * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4773         * pthreadP.h (__do_cancel): Set EXITING_BIT here.
4774         * Makefile (tests): Add tst-cancel11.
4775         * tst-cancel11.c: New file.
4776
4777 2003-04-01  Ulrich Drepper  <drepper@redhat.com>
4778
4779         * pthread_create.c (deallocate_tsd): Clear/free memory after the last
4780         round, not the first.  Use specific_used flag instead of local
4781         found_nonzero variable.  Use THREAD_[SG]ETMEM where possible.
4782         (__free_tcb): Don't call deallocate_tsd here.
4783         (start_thread): Call deallocate_tsd here.
4784         * pthread_setspecific.c: Set specific_used flag really only when
4785         needed.
4786         * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
4787         * tst-tsd3.c: New file.
4788         * tst-tsd4.c: New file.
4789
4790 2003-03-31  Ulrich Drepper  <drepper@redhat.com>
4791
4792         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
4793         Use atomic_exchange_and_add instead of __lll_add.
4794         (__lll_mutex_timedlock): Likewise.
4795         Patch by Ian Wienand.
4796
4797 2003-03-24  Steven Munroe  <sjmunroe@us.ibm.com>
4798
4799         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4800         (SINGLE_THREAD_P): Fix typo.
4801         * tst-cancel-wrappers.sh: Handle '.'ed symbols.
4802
4803 2003-03-31  Ulrich Drepper  <drepper@redhat.com>
4804
4805         * Makefile (tests): Add tst-align.
4806         * tst-align.c: New file.
4807         * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
4808
4809         * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
4810         function correctly.
4811
4812         * tst-tsd2.c: Add casts to avoid warnings.
4813
4814 2003-03-30  Ulrich Drepper  <drepper@redhat.com>
4815
4816         * descr.h (struct pthread): Move most often used elements to the front.
4817
4818 2003-03-29  Ulrich Drepper  <drepper@redhat.com>
4819
4820         * Makefile (libpthread-routines): Add pthread_atfork.
4821         (libpthread-static-only-routines): Add pthread_atfork.
4822
4823 2003-03-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
4824
4825         * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
4826         of TLS_DTV_AT_TP.
4827         (INSTALL_DTV): Add parens.
4828         (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
4829         Use passed descr instead of THREAD_SELF.
4830         * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
4831         (__lll_mutex_timedlock_wait): Correct expected value after
4832         spurious wakeup.
4833         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
4834         Release lock before waking up the waiters.
4835         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
4836         criteria.  Reorderstruct passed to cleanup handler.  Fix
4837         handling of cancellation and failung pthread_mutex_unlock call.
4838         Use __pthread_enable_asynccancel_2 instead of
4839         __pthread_enable_asynccancel.
4840         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4841         Return result of lock re-get if it fails.
4842         * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
4843         for __pthread_cleanup_push.
4844         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
4845         completely broken rwlock implementation.
4846         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4847         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4848         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4849         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
4850         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4851         * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value.  Use
4852         versioned_symbol macro.
4853         * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
4854         * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
4855
4856 2003-03-27  Ulrich Drepper  <drepper@redhat.com>
4857
4858         * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
4859         __timer_helper_thread.  Declare __start_helper_thread, __helper_once,
4860         and __helper_tid.
4861         (struct timer): Remove th and bar field.
4862         * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
4863         debugging code.  Create only one helper thread.
4864         * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
4865         helper thread.
4866         * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4867         Renamed.  Define statically.  Use thread info from siginfo.
4868         (__helper_once): New variable.
4869         (__helper_tid): New variable.
4870         (__reset_helper_control): New function.
4871         (__start_helper_thread): New function.
4872
4873         * pthread_create.c (start_thread): Don't use setjmp inside
4874         __builtin_expect to work around gcc bug.
4875
4876         * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
4877         timer_delete syscall fails, but not with ENOSYS, set
4878         __no_posix_timers.
4879
4880         * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
4881         (timer_settime): Fix typo.
4882         * sysdeps/unix/sysv/linux/timer_getoverr.c
4883         [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
4884
4885 2003-03-27  Jakub Jelinek  <jakub@redhat.com>
4886
4887         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
4888         offset of cleanupbuf.__prev.
4889
4890 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
4891
4892         * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
4893         of included file.
4894
4895 2003-03-26  Ulrich Drepper  <drepper@redhat.com>
4896
4897         * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
4898         NULL provide default definition to syscall.
4899
4900 2003-03-25  Roland McGrath  <roland@redhat.com>
4901
4902         * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
4903         (timer_id2ptr): Fix typo.
4904
4905 2003-03-25  Ulrich Drepper  <drepper@redhat.com>
4906
4907         * pthreadP.h: Define SIGCANCEL and SIGTIMER.
4908         * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
4909         * sysdeps/ia64/pthreaddef.h: Likewise.
4910         * sysdeps/powerpc/pthreaddef.h: Likewise.
4911         * sysdeps/s390/pthreaddef.h: Likewise.
4912         * sysdeps/sh/pthreaddef.h: Likewise.
4913         * sysdeps/x86_64/pthreaddef.h: Likewise.
4914         * init.c (__pthread_initialize_minimal): Block SIGTIMER.
4915         * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
4916         being changed.
4917         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
4918         SIGTIMER is not unblocked.
4919         * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
4920         RT signal taken.
4921         * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
4922         be send.
4923         * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
4924         pass pointer through as ID.
4925         * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
4926         * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
4927         * sysdeps/unix/sysv/linux/timer_create.c: New file.
4928         * sysdeps/unix/sysv/linux/timer_delete.c: New file.
4929         * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
4930         * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
4931         * sysdeps/unix/sysv/linux/timer_routines.c: New file.
4932         * sysdeps/unix/sysv/linux/timer_settime.c: New file.
4933         * sysdeps/unix/sysv/linux/ia64/Versions: New file.
4934         * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
4935         * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
4936         * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
4937         * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
4938         * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
4939         * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
4940         * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
4941         * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
4942         * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
4943         * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
4944         * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
4945         * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
4946         * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
4947         * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
4948         * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
4949         * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
4950         * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
4951         * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
4952         * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
4953         * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
4954         * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
4955         * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
4956         * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
4957         * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
4958
4959         * pthreadP.h: Remove FRAME_LEFT definition.
4960         * cleanup.c (_pthread_cleanup_push): Don't check for reference to
4961         already left frame.  Programs which have this problem are not POSIX
4962         compliant.
4963         * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
4964
4965 2003-03-24  Ulrich Drepper  <drepper@redhat.com>
4966
4967         * sysdeps/pthread/tst-timer.c: Check return values of the
4968         functions we test.
4969
4970 2003-03-23  Roland McGrath  <roland@redhat.com>
4971
4972         * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
4973         * tst-tls3mod.c: Likewise.
4974         * tst-tls1.c: Likewise.
4975         * tst-tls2.c: Likewise.
4976
4977         * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
4978         undefined behavior.
4979
4980         * tst-join5.c (tf1, tf2): Add a cast.
4981
4982         * Makeconfig (includes): Append -I$(..)nptl to this variable.
4983
4984         * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
4985         Don't test anything.
4986         * tst-cond4.c: Likewise.
4987         * tst-cond6.c: Likewise.
4988         * tst-flock2.c: Likewise.
4989         * tst-mutex4.c: Likewise.
4990         * tst-rwlock4.c: Likewise.
4991         * tst-signal1.c: Likewise.
4992         * tst-spin2.c: Likewise.
4993         * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
4994
4995         * tst-mutex4.c: Use test-skeleton.c.
4996         * tst-spin2.c: Likewise.
4997         * tst-sysconf.c: Likewise.
4998         * tst-barrier2.c: Likewise.
4999         * tst-cond4.c: Likewise.
5000         * tst-cond6.c: Likewise.
5001         * tst-rwlock4.c: Likewise.
5002         * tst-unload.c: Likewise.
5003         * tst-flock2.c (do_test): Use return instead of exit.
5004
5005 2003-03-22  Jakub Jelinek  <jakub@redhat.com>
5006
5007         * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
5008
5009 2003-03-21  Ulrich Drepper  <drepper@redhat.com>
5010
5011         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
5012         (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
5013         instead of __lll_compare_and_swap.
5014         * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
5015         Likewise.
5016         Removed definition if __lll_compare_and_swap.
5017
5018         * cancellation.c: Adjust for new form of compare&exchange macros.
5019         * cleanup_defer.c: Likewise.
5020         * init.c: Likewise.
5021         * libc-cancellation.c: Likewise.
5022         * old_pthread_cond_broadcast.c: Likewise.
5023         * old_pthread_cond_signal.c: Likewise.
5024         * old_pthread_cond_timedwait.c: Likewise.
5025         * old_pthread_cond_wait.c: Likewise.
5026         * pthread_cancel.c: Likewise.
5027         * pthread_create.c: Likewise.
5028         * pthread_detach.c: Likewise.
5029         * pthread_join.c: Likewise.
5030         * pthread_key_delete.c: Likewise.
5031         * pthread_setcancelstate.c: Likewise.
5032         * pthread_setcanceltype.c: Likewise.
5033         * pthread_timedjoin.c: Likewise.
5034         * pthread_tryjoin.c: Likewise.
5035         * sysdeps/pthread/createthread.c: Likewise.
5036
5037 2003-03-20  Ulrich Drepper  <drepper@redhat.com>
5038
5039         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
5040         Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
5041         definitions.  Replace uses with calls to atomic_* functions.
5042         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
5043         * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
5044         __lll_test_and_set calls with atomic_exchange_and_add and
5045         atomic_exchange calls respectively.
5046         * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
5047         * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
5048         * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
5049         * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
5050         * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
5051         * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
5052         * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
5053
5054         * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
5055         returns the old value.
5056
5057 2003-03-20  Martin Schwidefsky  <sky@mschwid3.boeblingen.de.ibm.com>
5058
5059         * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
5060         int for variable OLDVAL and correct inline assembler contraint.
5061         * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
5062         type int for variable OLD.
5063
5064         * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
5065         only for s390-32.
5066         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
5067         (SINGLE_THREAD_P): Use global variable __local_multiple_threads
5068         instead of multiple_threads field in the TCB.
5069
5070 2003-03-19  Ulrich Drepper  <drepper@redhat.com>
5071
5072         * sysdeps/i386/i686/bits/atomic.h: Removed.
5073         * sysdeps/i386/i586/bits/atomic.h: Removed.
5074         * sysdeps/i386/i486/bits/atomic.h: Removed.  Moved to glibc.
5075         * sysdeps/x86_64/bits/atomic.h: Removed.  Moved to glibc.
5076         * sysdeps/s390/bits/atomic.h: Removed.  Moved to glibc.
5077         * sysdeps/sh/bits/atomic.h: Removed.  Moved to glibc.
5078         * sysdeps/ia64/bits/atomic.h: Removed.  Moved to glibc.
5079         * sysdeps/powerpc/bits/atomic.h: Removed.  Moved to glibc.
5080         * atomic.h: Removed.  Moved to glibc.
5081
5082         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
5083         support for clock selection.
5084
5085         * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
5086         signalling waiters.
5087
5088 2003-03-18  Roland McGrath  <roland@redhat.com>
5089
5090         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
5091         Add __lll_rel_instr first.  Add memory clobber.
5092         (lll_mutex_unlock): Use __lll_test_and_set.
5093         From Paul Mackerras <paulus@samba.org>.
5094
5095         * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
5096         unconditionally.
5097         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
5098         (SINGLE_THREAD_P):  Add `header.' prefix.
5099         From Paul Mackerras <paulus@samba.org>.
5100
5101         * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
5102         pthread_timedjoin_np to ...
5103         (libpthread: GLIBC_2.3.3): ... here.
5104         (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
5105
5106         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5107         Avoid shadowing VAL variable.
5108
5109         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
5110         New macro.
5111
5112 2003-03-18  Ulrich Drepper  <drepper@redhat.com>
5113
5114         * Makefile (tests): Add tst-cond11.
5115         * tst-cond11.c: New file.
5116
5117         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
5118         struct passed to cleanup handler to eliminate one more
5119         instruction.
5120         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5121
5122         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
5123         (pthrad_cond_t): Replace __unused field with __clock.
5124
5125         * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
5126         waken all waiters in cleanup handler.
5127         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5128         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5129
5130         * pthread_condattr_getclock.c: New file.
5131         * pthread_condattr_setclock.c: New file.
5132         * sysdeps/pthread/pthread.h: Declare these new functions.
5133         * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
5134         * Makefile (libpthread-routines): Add the new functions.
5135         * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
5136         Renamed field to value.  Document use of the bits.
5137         * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
5138         change.
5139         * pthread_condattr_setpshared.c: Likewise.
5140         * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
5141         * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
5142         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
5143         Add __clock field.
5144         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5145         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5146         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5147         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5148         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
5149         Implement clock selection.
5150         * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
5151         * pthread-errnos.sym: Add ENOSYS.
5152         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5153         _POSIX_CLOCK_SELECTION.
5154         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5155
5156         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
5157         invalid .size directive.
5158
5159 2003-03-17  Roland McGrath  <roland@redhat.com>
5160
5161         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
5162         Formatting tweaks.
5163
5164 2003-03-17  Ulrich Drepper  <drepper@redhat.com>
5165
5166         * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
5167         Use __lll_add instead of spelling it out.  Use protected symbol names.
5168         * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
5169         Use __lll_add.
5170         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
5171         Renamed from lll_compare_and_swap.  Use new name where necessary.
5172         (__lll_add): Defined.
5173         (__lll_dec_if_positive): Defined.
5174         (__lll_test_and_set): Defined.
5175         * sysdeps/ia64/pthread_spin_init.c: Removed.
5176         * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
5177         * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
5178         * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
5179         * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
5180         * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
5181         * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
5182         * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
5183         * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
5184         * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
5185         __sync_lock_release_si.
5186         Patch by Jakub Jelinek.
5187
5188         * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
5189         Fix timeout handling.
5190         (__lll_timedwait_tid): Likewise.
5191         (lll_unlock_wake_cb): Wake up other waiters if necessary.
5192         Patch by Jakub Jelinek.
5193
5194         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
5195
5196 2003-03-17  Roland McGrath  <roland@redhat.com>
5197
5198         PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
5199         * sysdeps/pthread/pthread_spin_init.c: New file.
5200         * sysdeps/pthread/pthread_spin_unlock.c: New file.
5201         * sysdeps/powerpc/Makefile: New file.
5202         * sysdeps/powerpc/pthread_spin_lock.c: New file.
5203         * sysdeps/powerpc/pthread_spin_trylock.c: New file.
5204         * sysdeps/powerpc/pthreaddef.h: New file.
5205         * sysdeps/powerpc/tcb-offsets.sym: New file.
5206         * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
5207         * sysdeps/powerpc/tls.h: New file.
5208         * sysdeps/powerpc/bits/atomic.h: New file.
5209         * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
5210         * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
5211         * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
5212
5213         * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
5214         * sysdeps/unix/sysv/linux/sem_post.c: New file.
5215         * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
5216         * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
5217         * sysdeps/unix/sysv/linux/sem_wait.c: New file.
5218         * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
5219         * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
5220         * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
5221         * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
5222         * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
5223         * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
5224         * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
5225         * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
5226         * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
5227         * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
5228
5229         * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
5230         not gettimeofday.
5231         * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
5232         * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
5233         * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
5234         * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
5235         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5236
5237 2003-03-17  Ulrich Drepper  <drepper@redhat.com>
5238
5239         * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
5240         * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
5241         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5242         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5243         Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
5244
5245 2003-03-16  Roland McGrath  <roland@redhat.com>
5246
5247         * tst-fork4.c: Include <string.h>.
5248         * tst-signal2.c: Likewise.
5249         * tst-mutex5.c (do_test): exit -> return.
5250         * tst-mutex2.c: Include <stdlib.h>.
5251
5252 2003-03-16  Ulrich Drepper  <drepper@redhat.com>
5253
5254         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
5255         (__lll_mutex_timedlock_wait): Correct expected value after
5256         spurious wakeup.  Otherwise we would never wait again.
5257
5258         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
5259         zone versus inline asm stupidity.  Use correct instructions.
5260
5261         * tst-rwlock6.c: Add some more status output.
5262
5263 2003-03-15  Roland McGrath  <roland@redhat.com>
5264
5265         * sysdeps/pthread/configure.in: New file.
5266         * sysdeps/pthread/configure: New file (generated).
5267
5268 2003-03-15  Ulrich Drepper  <drepper@redhat.com>
5269
5270         * allocatestack.c (allocate_stack): Store the exact stack size of
5271         user allocated stacks.
5272
5273 2003-03-15  Jakub Jelinek  <jakub@redhat.com>
5274
5275         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
5276         (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
5277         * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
5278         * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
5279         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
5280         Use `header.' prefix.
5281         * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
5282
5283 2003-03-15  Ulrich Drepper  <drepper@redhat.com>
5284
5285         * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
5286         __builtin_frame_address, use stack pointer.
5287
5288         * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
5289         instead of __builtin_frame_pointer.
5290
5291 2003-03-14  Ulrich Drepper  <drepper@redhat.com>
5292
5293         * tst-basic1.c (do_test): Add cast to avoid warning.
5294         * tst-basic2.c (do_test): Likewise.
5295
5296         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
5297         amount of stack correction.
5298
5299         * tst-fork4.c: Use test-skeleton.c.
5300
5301 2003-03-14  Roland McGrath  <roland@redhat.com>
5302
5303         * init.c: Fix typo "#eli" for "#else".
5304
5305 2003-03-14  Steven Munroe  <sjmunroe@us.ibm.com>
5306
5307         * allocatestack.c (__stack_user): Use hidden_data_def.
5308         * pthread_create.c (__pthread_keys): Likewise.
5309
5310         * init.c [__powerpc__] (__NR_set_tid_address): Define it.
5311
5312 2003-03-14  Roland McGrath  <roland@redhat.com>
5313
5314         * tst-fork4.c: New file.
5315         * Makefile (tests): Add it.
5316
5317         * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
5318         we always define the padding space.
5319         [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
5320         stopped supporting its own extensions fully.
5321         [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
5322         struct also called `header', so `header.multiple_threads' is the field
5323         name to use on all machines.
5324         * allocatestack.c (allocate_stack): Use `header.' prefix.
5325         * sysdeps/pthread/createthread.c (create_thread): Likewise.
5326         * pthread_create.c (__pthread_create_2_1): Likewise.
5327         * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
5328         (THREAD_SELF): Likewise.
5329         * sysdeps/x86_64/tls.h: Likewise.
5330         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
5331         (SINGLE_THREAD_P): Likewise.
5332         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
5333         (SINGLE_THREAD_P): Likewise.
5334         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
5335         (SINGLE_THREAD_P): Likewise.
5336
5337         * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
5338         value directly.
5339
5340 2003-03-14  Ulrich Drepper  <drepper@redhat.com>
5341
5342         * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
5343         * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
5344
5345         * pthread_create.c (start_thread): setjmp is expected to return 0.
5346
5347         * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
5348         (THREAD_GETMEM_NC): Likewise.
5349
5350 2003-03-13  Ulrich Drepper  <drepper@redhat.com>
5351
5352         * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
5353         and the size of the stack which must be allocated is a multiple,
5354         allocate one more page.
5355         * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
5356         MULTI_PAGE_ALIASING.
5357
5358 2003-03-13  Roland McGrath  <roland@redhat.com>
5359
5360         * pthread_create.c (start_thread): Set EXITING_BIT after the
5361         event-reporting (and destructors), not before.
5362
5363 2003-03-13  Jakub Jelinek  <jakub@redhat.com>
5364
5365         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
5366         lll_futex_wake): Declare register variables as long int instead of
5367         unsigned long int.  Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
5368         Make syscall arguments clobbered by the syscall.
5369         (lll_futex_wait): Define using lll_futex_timed_wait.
5370
5371         * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
5372         to void *.
5373
5374         * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
5375         PPID if [! NDEBUG].
5376
5377         * allocatestack.c (nptl_ncreated): Only declare if
5378         COLORING_INCREMENT != 0.
5379
5380         * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
5381         (__libc_enable_asynccancel_2): Remove prototype.
5382
5383         * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
5384         ctid to match kernel.
5385
5386 2003-03-12  Ulrich Drepper  <drepper@redhat.com>
5387
5388         * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
5389         libc_multiple_threads.
5390         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
5391         __libc_multiple_threads to...
5392         * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here.  New file.
5393
5394         * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
5395         versioning.
5396         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5397         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5398
5399         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
5400         (__pthread_once_internal): Define.
5401
5402         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
5403         macros instead of .symver directly.
5404         * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
5405         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
5406
5407         * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
5408         * sysdeps/x86_64/tcb-offsets.sym: New file.
5409         * sysdeps/x86_64/Makefile: New file.
5410
5411         * sysdeps/i386/tcb-offsets.sym: Add SELF.
5412         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
5413         to access own pthread_t in TCB.
5414         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5415         Likewise.
5416         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5417         Likewise.
5418         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5419
5420 2003-03-12  Roland McGrath  <roland@redhat.com>
5421
5422         * pthread-errnos.sym: New file.
5423         * Makefile (gen-as-const-headers): New variable, list that file.
5424         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
5425         header <pthread-errnos.h> instead of defining errno values here.
5426         * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
5427         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5428         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
5429         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5430         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5431         Likewise.
5432         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5433         Likewise.
5434         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5435         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5436         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
5437         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5438         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5439         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5440         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5441         * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5442         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5443         * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
5444         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
5445         * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
5446         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
5447         * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
5448         * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
5449         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5450         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5451         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5452         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5453         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5454         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
5455         * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5456         * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
5457         * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
5458         * sysdeps/sh/pthread_spin_trylock.S: Likewise.
5459         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5460         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5461
5462         * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
5463         CLONE_CHILD_SETTID worked.
5464
5465 2003-03-12  Ulrich Drepper  <drepper@redhat.com>
5466
5467         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
5468         file.
5469         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
5470         file.
5471
5472         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
5473         (pthread_cond_t): Add padding.
5474
5475         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
5476         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
5477         * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
5478
5479         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
5480         (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
5481         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
5482         (__pthread_rwlock_timedrdlock): Likewise.
5483         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
5484         (__pthread_rwlock_wrlock): Likewise.
5485         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
5486         (__pthread_rwlock_rdlock): Likewise.
5487
5488         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
5489
5490         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
5491         result of lock re-get if it fails.
5492
5493 2003-03-11  Ulrich Drepper  <drepper@redhat.com>
5494
5495         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
5496         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5497         * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
5498         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
5499         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5500         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
5501         * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5502         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5503         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
5504         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5505
5506         * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
5507         THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
5508
5509         * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
5510         Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
5511         * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
5512         (create_thread): Likewise.
5513         Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
5514         * init.c (__pthread_initialize_minimal_internal): Initialize
5515         __libc_multiple_threads_ptr if necessary.
5516         * pthreadP.h: Adjust prototype for __libc_pthread_init.  Declare
5517         __pthread_multiple_threads and __libc_multiple_threads_ptr.
5518         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
5519         __libc_multiple_threads.
5520         (__libc_pthread_init): Return pointer to __libc_pthread_init if
5521         necessary.
5522
5523         * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
5524         (THREAD_SETMEM_NC): Likewise.
5525
5526         * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
5527         * sysdeps/x86_64/pthread_spin_trylock.S: New file.
5528         * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
5529         * sysdeps/x86_64/pthread_spin_unlock.S: New file.
5530
5531         * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
5532         Eliminate one entire instruction.
5533
5534         * cancellation.c (__pthread_enable_asynccancel_2): New function.
5535         * pthreadP.h: Declare __pthread_enable_asynccancel_2.
5536         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5537         (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
5538         instead of __pthread_enable_asynccancel.
5539         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5540         (__pthread_cond_wait): Likewise.
5541         * sysdeps/pthread/pthread_cond_timedwait.c
5542         (__pthread_cond_timedwait): Likewise.
5543         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5544
5545         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5546         (__condvar_cleanup): Wake up all waiters in case we got signaled
5547         after being woken up but before disabling asynchronous
5548         cancellation.
5549         * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
5550         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5551         (__condvar_cleanup): Likewise.
5552
5553         * init.c (__NR_set_tid_address): If already defined, don't redefine.
5554         Make it an error if architecture has no #if case.  Add x86-64.
5555
5556         * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
5557         pt-initfini.s generation.
5558
5559         * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
5560         (TLS_INIT_TP): Fix typo.
5561
5562 2003-03-11  Jakub Jelinek  <jakub@redhat.com>
5563
5564         * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
5565         3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
5566
5567         * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
5568         * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
5569         * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
5570         * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
5571         * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
5572         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5573         * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
5574         * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
5575
5576 2003-03-11  Ulrich Drepper  <drepper@redhat.com>
5577
5578         * sysdeps/pthread/pthread_cond_timedwait.c
5579         (__pthread_cond_timedwait): Return the result of the final
5580         locking.  If it succeeds, the regular function return value.
5581
5582         * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
5583         Return result of the final locking.
5584         * version.c (__nptl_main): Work around problems with the strange
5585         INTERNAL_SYSCALL macro on ppc32.
5586         * init.c (__pthread_initialize_minimal_internal): Unblock
5587         SIGCANCEL in case the parent blocked it.
5588         Reported by Paul Mackerras <paulus@samba.org>.
5589
5590         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
5591         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
5592         * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
5593
5594 2003-03-11  Jakub Jelinek  <jakub@redhat.com>
5595
5596         * sysdeps/pthread/pthread_cond_timedwait.c
5597         (__pthread_cond_timedwait): Unlock and fail if
5598         __pthread_mutex_unlock_internal failed.
5599
5600         * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
5601         (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
5602         Use ARCH_CLONE.
5603         * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
5604         [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
5605         STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
5606         ALLOCATE_STACK): New macros.
5607         (TLS_TPADJ): New macro.
5608         (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
5609         (allocate_stack): Handle TLS_DTV_AT_TP and
5610         NEED_SEPARATE_REGISTER_STACK.  Use TLS_TPADJ.
5611         * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
5612         Don't set PD->self.
5613         * init.c [__ia64__] (__NR_set_tid_address): Define.
5614
5615         * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
5616         * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
5617         * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
5618         * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
5619         * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
5620         * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
5621         * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
5622         * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
5623         * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
5624         * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
5625         * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
5626         * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
5627         * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
5628         * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
5629         * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
5630         * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
5631         * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
5632         * sysdeps/ia64/bits/atomic.h: New file.
5633         * sysdeps/ia64/Makefile: New file.
5634         * sysdeps/ia64/pthread_spin_init.c: New file.
5635         * sysdeps/ia64/pthread_spin_lock.c: New file.
5636         * sysdeps/ia64/pthread_spin_trylock.c: New file.
5637         * sysdeps/ia64/pthread_spin_unlock.c: New file.
5638         * sysdeps/ia64/pthreaddef.h: New file.
5639         * sysdeps/ia64/tcb-offsets.sym: New file.
5640         * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
5641         * sysdeps/ia64/tls.h: New file.
5642
5643         * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
5644         to syscall instead of no arguments.
5645
5646 2003-03-10  Ulrich Drepper  <drepper@redhat.com>
5647
5648         * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
5649         * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
5650         * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
5651         * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
5652
5653         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
5654         unused code.
5655
5656         * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
5657
5658         * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5659         lowlevelbarrier.sym.
5660         * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
5661         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
5662         Include lowlevelbarrier.h and don't define offsets locally.
5663         * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
5664
5665         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
5666         (__lll_mutex_lock_wait): Reverse order of first two parameters.
5667         (__lll_mutex_timedlock_wait): Likewise.
5668         (lll_mutex_lock): Adjust asm for that.
5669         (lll_mutex_timedlock): Likewise.  Mark cx, cc, r10 as clobbered.
5670         (lll_lock): Adjust asm for operand order change.
5671         * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
5672         * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
5673
5674         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
5675         Reverse order of parameters.
5676         (__lll_timedwait_tid): Remove regparms attribute.
5677         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
5678         * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
5679
5680         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5681         (__lll_timedwait_tid): Remove one unnecessary instruction.
5682
5683         * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
5684         __lll_mutex_timedlock_wait only for NOT_IN_libc.
5685         * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
5686         lowlevelmutex.S.
5687
5688         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
5689         lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
5690         for NOT_IN_libc.
5691         * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
5692         lowlevellock.S.
5693
5694         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
5695         LOCK is already defined.  Don't define __lll_mutex_timedlock_wait
5696         for libc.so.
5697         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
5698         define LOCK here (if UP is not defined).  The actual code is in
5699         lowlevelmutex.S.
5700
5701         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
5702         LOCK is already defined.  Don't define lll_unlock_wake_cb and
5703         __lll_timedwait_tid for libc.so.
5704         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
5705         define LOCK here (if UP is not defined).  The actual code is in
5706         lowlevellock.S.
5707
5708         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
5709         * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
5710         * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
5711         instead of lowlevelsem.h.
5712         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5713         * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
5714         * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
5715
5716         * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5717         lowlevelrwlock.sym.
5718         * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
5719         * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
5720         * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
5721
5722         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
5723         register loading.
5724         * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
5725         last changed.  D'oh.
5726
5727         * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
5728
5729         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
5730         of __libc_locking_needed.
5731         (lll_trylock): Initialize %eax to zero.
5732
5733         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
5734         pthread_cond_t definition.
5735
5736 2003-03-10  Roland McGrath  <roland@redhat.com>
5737
5738         * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
5739         * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
5740         * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
5741         * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
5742         * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
5743
5744         * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
5745         Instead of setting PD->multiple_threads, set globals
5746         __pthread_multiple_threads and __libc_multiple_threads.
5747         * sysdeps/pthread/createthread.c (create_thread): Likewise.
5748         * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
5749         * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
5750
5751         * descr.h (struct pthread): Conditionalize first member on
5752         [!TLS_DTV_AT_TP].  Replace the `header' member with an anonymous union
5753         containing an anonymous tcbhead_t.  Move `list' member out.
5754         [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
5755         * allocatestack.c: Remove use of `header.data.' prefix.
5756         * pthread_create.c: Likewise.
5757         * init.c (__pthread_initialize_minimal_internal): Likewise.
5758         * sysdeps/pthread/createthread.c (create_thread): Likewise.
5759         * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
5760         (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
5761         * sysdeps/x86_64/tls.h: Likewise.
5762         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
5763         (SINGLE_THREAD_P): Likewise.
5764         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
5765         (SINGLE_THREAD_P): Likewise.
5766         * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
5767         * sysdeps/s390/tls.h (tcbhead_t): Likewise.
5768
5769 2003-03-09  Ulrich Drepper  <drepper@redhat.com>
5770
5771         * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
5772
5773         * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
5774         * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
5775
5776         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
5777         leftovers from the ia32 code.
5778
5779         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
5780         memory load.
5781         (clear_once_control): Don't load %esi.
5782
5783         * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
5784         handling.
5785
5786         * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
5787
5788         * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
5789         * sysdeps/unix/sysv/linux/createthread.c: ...here.
5790
5791         * Makefile (tests): Add tst-cond10.
5792         * tst-cond10.c: New file.
5793
5794 2003-03-08  Ulrich Drepper  <drepper@redhat.com>
5795
5796         * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
5797         * tst-signal3.c (do_test): Likewise.
5798         * tst-sem5.c (do_test): Likewise.
5799         * tst-kill6.c (do_test): Likewise.
5800         * tst-tls3.c (do_test): Likewise.  Include <errno.h>.
5801
5802         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
5803         of inc/dec.
5804         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
5805         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
5806         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5807         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
5808         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5809         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5810         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5811         Likewise.
5812         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5813         Likewise.
5814         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5815         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5816         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5817         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5818         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5819         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
5820         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
5821         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5822
5823         * allocatestack.c (allocate_stack): If mprotect() fails free the
5824         TLS memory.
5825
5826 2003-03-07  Ulrich Drepper  <drepper@redhat.com>
5827
5828         * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
5829
5830         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
5831         lll_wake_tid.  This was used only to work around kernel limits in
5832         the early days.
5833         * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
5834         * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
5835         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
5836         * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
5837
5838         * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
5839         (__pthread_initialize_minimal_internal): Change initialization of
5840         __static_tls_align_m1 appropriately.
5841         * pthreadP.h (__static_tls_align_m1): Renamed from
5842         __static_tls_align.
5843         * allocatestack.c (allocate_stack): Use __static_tls_align_m1
5844         instead of __static_tls_align-1.
5845
5846 2003-03-04  Ulrich Drepper  <drepper@redhat.com>
5847
5848         * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
5849
5850         * pthread_create.c: Define __pthread_keys using nocommon
5851         attribute, not by placing it explicitly in bss.
5852         Remove DEFINE_DEALLOC definition.  Not needed anymore.
5853
5854         * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
5855         Use it in mmap call to allocate stacks.
5856
5857         * sysdeps/pthread/createthread.c (create_thread): Fix comment.
5858
5859         * pthread_create.c (start_thread): Use THREAD_SETMEM to store
5860         result of the thread function.
5861
5862 2003-03-03  Ulrich Drepper  <drepper@redhat.com>
5863
5864         * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed.  The generic
5865         version is just fine.
5866
5867         * sysdeps/unix/sysv/linux/libc_pthread_init.c
5868         (__pthread_child_handler): Renamed from pthread_child_handler,
5869         exported, and marked hidden.  Change all users.
5870         * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
5871         free __pthread_child_handler from child list.
5872
5873 2003-03-03  Martin Schwidefsky  <schwidefsky@de.ibm.com>
5874
5875         * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
5876
5877         * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5878         Fix handling of cancellation and failing pthread_mutex_unlock call.
5879         * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
5880         (__pthread_cond_wait): Likewise.
5881
5882         * sysdeps/pthread/pthread_rwlock_timedrdlock.c
5883         (pthread_rwlock_timedrdlock): Fix clobber of result variable by
5884         lll_futex_timed_wait call.
5885         * sysdeps/pthread/pthread_rwlock_timedwrlock.c
5886         (pthread_rwlock_timedwrlock): Likewise.
5887
5888         * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
5889         Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
5890         * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
5891
5892         * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
5893         check of lll_futex_wake return value.
5894
5895 2003-03-03  Roland McGrath  <roland@redhat.com>
5896
5897         * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
5898
5899         * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5900         Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
5901         * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
5902
5903 2003-03-02  Ulrich Drepper  <drepper@redhat.com>
5904
5905         * sysdeps/pthread/timer_create.c (timer_create): Return correct
5906         error for CPU clocks.
5907
5908         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5909         _POSIX_MONOTONIC_CLOCK.
5910         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5911
5912         * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
5913         recent kernels.
5914
5915 2003-03-01  Ulrich Drepper  <drepper@redhat.com>
5916
5917         * descr.h (struct pthread): Move cleanup field to the front.
5918
5919 2003-03-01  Roland McGrath  <roland@redhat.com>
5920
5921         * sem_open.c (sem_open): Braino fix.
5922
5923 2003-03-01  Ulrich Drepper  <drepper@redhat.com>
5924
5925         * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
5926         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
5927         __pthread_cleanup_pop functionality.
5928         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5929
5930         * descr.h (struct pthread): Move tid field to the front now that
5931         it is often used.
5932
5933         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
5934         (__lll_mutex_timedlock_wait): Remove.
5935         (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
5936         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
5937         (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
5938         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5939         (lll_unlock_wake_cb): Don't save and restore %esi.
5940         (__lll_unlock_wake): Add alignment.  Don't save, load, and restore
5941         %esi.
5942         (__lll_timedwait_tid): Add alignment.
5943         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
5944         (__lll_unlock_wake): Add alignment.  Don't save, load, and restore
5945         %esi.
5946         (__lll_timedwait_tid): Removed.
5947         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5948         (__pthread_cond_broadcast): Don't save, load, and restore %esi.
5949         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5950         (pthread_barrier_wait): Don't save, load, and restore %esi for
5951         last thread.
5952         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
5953         (__pthread_cond_signal): Don't save, load, and restore %esi.
5954         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
5955         (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
5956         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
5957         Don't save, load, and restore %esi.
5958
5959 2003-02-27  Ulrich Drepper  <drepper@redhat.com>
5960
5961         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
5962         Release lock before waking up the waiters.
5963
5964         * tst-exit1.c (do_test): Don't start more than one thread in parallel.
5965
5966         * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
5967         (reader_thread): Likewise.
5968
5969         * sysdeps/pthread/pthread_rwlock_unlock.c
5970         (__pthread_rwlock_unlock): Release internal lock early.  Don't try
5971         to wake up readers if there are none.
5972
5973         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
5974         Release internal lock before wake threads.
5975
5976 2003-02-26  Ulrich Drepper  <drepper@redhat.com>
5977
5978         * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
5979         * tst-rwlock8.c: Initialize lock with INIT.  Allow INIT to be
5980         predefined.
5981         * tst-rwlock9.c: Likewise.
5982         * tst-rwlock10.c: New file.
5983         * tst-rwlock11.c: New file.
5984
5985         * Makefile (tests): Add tst-dlsym1.
5986         * tst-dlsym1.c: New file.
5987
5988         * init.c (__pthread_initialize_minimal_internal): Set
5989         GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
5990         * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
5991
5992 2003-02-24  Ulrich Drepper  <drepper@redhat.com>
5993
5994         * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
5995
5996         * tst-cond2.c: Fix sychronization with child.
5997
5998         * tst-rwlock8.c (reader_thread): Remove unused variable.
5999
6000         * Makefile: Add rules to build and run tst-tls3.
6001         * tst-tls3.c: New file.
6002         * tst-tls3mod.c: New file.
6003
6004         * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
6005         * tst-rwlock8.c: New file.
6006         * tst-rwlock9.c: New file.
6007         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
6008         complete broken rwlock implementation.
6009         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6010         Likewise.
6011         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6012         Likewise.
6013         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
6014         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6015         * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6016         * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6017         * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6018         * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
6019         * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6020
6021 2003-02-23  Roland McGrath  <roland@redhat.com>
6022
6023         * Makefile (nptl-version): Change regexp so case sensitivity is ok.
6024
6025 2003-02-23  Ulrich Drepper  <drepper@redhat.com>
6026
6027         * Makefile (tests): Add tst-context1.
6028         * tst-context1.c: New file.
6029
6030         * Makefile (tests): Add tst-tls1 and tst-tls2.
6031         * tst-tls1.c: New file.
6032         * tst-tls2.c: New file.
6033
6034         * libc-cancellation.c (__libc_enable_asynccancel): Correct test
6035         for failed cmpxchg.
6036
6037         * pthread_create.c (start_thread): Set EXITING_BIT early.
6038
6039         * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
6040         (THREAD_GETMEM_NC): Likewise.
6041
6042 2003-02-22  Ulrich Drepper  <drepper@redhat.com>
6043
6044         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
6045         off 3 more bytes by using offset-less instructions when possible.
6046
6047         * Makefile: Add dependency for $(objpfx)version.d.
6048
6049         * eintr.c (eintr_source): Add unnecessary return but the compiler
6050         insists.
6051
6052         * tst-kill3.c: Include <unistd.h>.
6053
6054 2003-02-21  Roland McGrath  <roland@redhat.com>
6055
6056         * pthread_create.c (start_thread): Call __libc_thread_freeres.
6057
6058 2003-02-21  Ulrich Drepper  <drepper@redhat.com>
6059
6060         * Makefile (tests): Add tst-eintr1.
6061         (distribute): Add eintr.c.
6062         * tst-eintr1.c: New file.
6063         * eintr.c: New file.
6064
6065         * pthread_cancel.c (pthread_cancel): Use tkill directly.
6066
6067         * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
6068         Disallow sending SIGCANCEL.
6069
6070         * Makefile (tests): Remove tst-basic7.  Add tst-kill1, tst-kill2,
6071         tst-kill3, tst-kill4, tst-kill5, tst-kill6.
6072         * tst-kill1.c: New file.
6073         * tst-kill2.c: New file.
6074         * tst-kill3.c: New file.
6075         * tst-kill5.c: New file.
6076         * tst-kill6.c: New file.
6077         * tst-basic7.c: Renamed to...
6078         * tst-kill4.c: ...this.
6079
6080 2003-02-21  Roland McGrath  <roland@redhat.com>
6081
6082         * Makefile (install-lib-ldscripts): New variable.
6083
6084 2003-02-21  Ulrich Drepper  <drepper@redhat.com>
6085
6086         * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
6087         * pthread_cancel.c: Use INVALID_TD_P.
6088         * pthread_detach.c: Likewise.
6089         * pthread_getschedparam.c: Likewise.
6090         * pthread_setschedparam.c: Likewise.
6091         * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6092         * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6093         * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
6094         * pthread_timedjoin.c: Likewise.
6095
6096         * tst-basic7.c: Include <signal.h>.
6097
6098         * pthread_join.c (pthread_join): Limited checking for invalid
6099         descriptors.
6100         * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
6101
6102 2003-02-20  Ulrich Drepper  <drepper@redhat.com>
6103
6104         * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
6105         beginning of the loop.  Clear the entire first block of TSD.
6106         * Makefile (tests): Add tst-key4.
6107         * tst-key4.c: New file.
6108
6109 2003-02-18  Ulrich Drepper  <drepper@redhat.com>
6110
6111         * Makefile (tests): Add tst-basic7.
6112         * tst-basic7.c: New file.
6113
6114         * pthread_create.c (deallocate_tsd): Mark as internal_function.
6115         Add some more __builtin_expect.
6116
6117         * pthreadP.h: Define dummy version of DEBUGGING_P.
6118
6119 2003-02-17  Ulrich Drepper  <drepper@redhat.com>
6120
6121         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
6122         _POSIX_THREAD_PRIORITY_SCHEDULING.
6123         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
6124         _XOPEN_REALTIME_THREADS.
6125         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
6126
6127         * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
6128         kernel returns EINVAL for PID <= 0, work around it.
6129
6130         * Makefile (tests): Add tst-signal5.
6131         * tst-signal5.c: New file.
6132
6133         * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
6134         and LOGIN_NAME_MAX.
6135
6136         * tst-cancel1.c (tf): Block all signals.
6137
6138         * Makefile (tests): Add tst-basic6.
6139         * tst-basic6.c: New file.
6140
6141         * tst-basic1.c: Add test for process ID.
6142
6143         * Makefile (tests): Add tst-cancel10.
6144         * tst-cancel10.c: New file.
6145
6146         * Makefile (tests): Add tst-signal4.
6147         * tst-signal4.c: New file.
6148
6149         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
6150         __sigismember instead of sigismember.  Add __builtin_expect.
6151
6152 2003-02-16  Ulrich Drepper  <drepper@redhat.com>
6153
6154         * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
6155         pthread_setcancelstate, and pthread_rwlock_setpshared.
6156
6157         * tst-cancel7.c (do_test): Make sure the pid file exists before
6158         canceling the thread.
6159
6160         * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
6161         pthread_rwlock_timedrdlock tests.
6162         * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
6163         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6164         Check for invalid tv_nsec field.
6165         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6166         Likewise.
6167
6168         * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
6169         recursive mutex of overflow.
6170
6171         * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
6172
6173         * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
6174         going into an endless loop.
6175         * Makefile (tests): Add tst-cancel9.
6176         * tst-cancel9.c: New file.
6177
6178         * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
6179
6180 2003-02-15  Ulrich Drepper  <drepper@redhat.com>
6181
6182         * tst-mutex5.c (do_test): Add more timedlock tests.
6183
6184         * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
6185         * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
6186
6187         * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
6188         use INLINE_SYSCALL.  Error number is returned, not -1.
6189
6190         * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
6191         and __deallocate_stack with internal_function.
6192         * pthread_create.c: Adjust definitions appropriately.
6193         * allocatestack.c: Likewise.
6194
6195         * pthread_join.c: Add one more __builtin_expect.
6196         * pthread_timedjoin.c: Likewise.
6197
6198         * pthread_getspecific.c (__pthread_getspecific): Clear data->data
6199         not data of sequence number does not match.
6200         Add one __builtin_expect.
6201
6202         * Makefile (tests): Add tst-clock1.
6203         * tst-clock1.c: New file.
6204
6205         * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
6206         negative arguments.
6207         * Makefile (tests): Add tst-basic5.
6208         * tst-basic5.c: New file.
6209
6210 2003-02-14  Ulrich Drepper  <drepper@redhat.com>
6211
6212         * Makefile (tests): Add tst-basic4.
6213         * tst-basic4.c: New file.
6214
6215         * pthreadP.h: Add declaraction for __nptl_nthreads.
6216         * pthread_create.c: Define __nptl_nthreads
6217         (start_thread): Increment __nptl_nthreads at beginning.  Decrement
6218         after thread is done.  If then zero, call exit(0).
6219         * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
6220         Add ptr_nthreads.  Define HAVE_PTR_NTHREADS.
6221         * init.c (pthread_functions): Initialize ptr_nthreads.
6222         * allocatestack.c (nptl_nthreads): Remove definition and all uses.
6223         (__reclaim_stacks): Decrement __nptl_nthreads.
6224         * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
6225         Define.
6226         * Makefile (tests): Add tst-basic3.
6227         * tst-basic3.c: New file.
6228
6229         * descr.h: Define CANCELING_BIT and CANCELING_BITMASK.  Introduce
6230         after CANCELTYPE_BIT, move the other bits up.  Update CANCEL_RESTMASK.
6231         * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
6232         * pthread_cancel.c (pthread_cancel): Likewise.  Also set CANCELING_BIT
6233         if asynchronous canceling is enabled.
6234         * pthread_join.c (pthread_join): When recognizing circular joins,
6235         take into account the other thread might be already canceled.
6236         * Makefile (tests): Add tst-join5.
6237         * tst-join5.c: New file.
6238
6239         * Makefile (tests): Add tst-join4.
6240         * tst-join4.c: New file.
6241
6242 2003-02-13  Ulrich Drepper  <drepper@redhat.com>
6243
6244         * tst-cond4.c (main): Add test of pthread_attr_getpshared.
6245
6246 2003-02-13  Martin Schwidefsky  <schwidefsky@de.ibm.com>
6247
6248         * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
6249         THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
6250         * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
6251         warning.
6252         * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
6253         to avoid warning.
6254         * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
6255         error if lll_futex_wake failed.
6256
6257 2003-02-13  Ulrich Drepper  <drepper@redhat.com>
6258
6259         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
6260         handling of cancellation and failung pthread_mutex_unlock call.
6261         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6262         * Makefile (tests): Add tst-cond8 and tst-cond9.
6263         * tst-cond8.c: New file.
6264         * tst-cond9.c: New file.
6265
6266         * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
6267
6268         * sysdeps/pthread/pthread.h: Add missing initializers.  Protect
6269         non-standard initializers with __USE_GNU.
6270
6271         * Makefile (tests): Add tst-cleanup3.
6272         * tst-cleanup3.c: New file.
6273
6274 2003-02-12  Ulrich Drepper  <drepper@redhat.com>
6275
6276         * Makefile (tests): Add tst-attr1 and tst-attr2.
6277         * tst-attr1.c: New file.
6278         * tst-attr2.c: New file.
6279
6280         * Makefile: Add rules to build and run tst-atfork2 test.
6281         * tst-atfork2.c: New file.
6282         * tst-atfork2mod.c: New file.
6283
6284         * sysdeps/unix/sysv/linux/unregister-atfork.c
6285         (__unregister_atfork): Free the memory allocated for the handlers
6286         after removing them from the lists.
6287
6288         * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
6289         cleanup function.
6290
6291         * tst-atfork1.c (do_test): Wait for the child we forked.
6292         Report error in child.
6293
6294         * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
6295
6296         * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
6297
6298 2003-02-10  Ulrich Drepper  <drepper@redhat.com>
6299
6300         * Makefile (tests): Add tst-cancel8.
6301         * tst-cancel8.c: New file.
6302
6303         * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
6304         clearing of control variable.
6305         * Makefile (tests): Add tst-once3 and tst-once4.
6306         * tst-once3.c: New file.
6307         * tst-once4.c: New file.
6308
6309 2003-02-08  kaz Kojima  <kkojima@rr.iij4u.or.jp>
6310
6311         * sysdeps/sh/Makefile: New file.
6312         * sysdeps/sh/bits/atomic.h: New file.
6313         * sysdeps/sh/pthread_spin_init.c: New file.
6314         * sysdeps/sh/pthread_spin_lock.c: New file.
6315         * sysdeps/sh/pthread_spin_trylock.S: New file.
6316         * sysdeps/sh/pthread_spin_unlock.S: New file.
6317         * sysdeps/sh/pthreaddef.h: New file.
6318         * sysdeps/sh/tcb-offsets.sym: New file.
6319         * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
6320         * sysdeps/sh/tls.h: New file.
6321         * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
6322         * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
6323         * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
6324         * sysdeps/unix/sysv/linux/sh/fork.c: New file.
6325         * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
6326         * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
6327         * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
6328         * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
6329         * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
6330         * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
6331         * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
6332         * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
6333         * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
6334         * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
6335         * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
6336         * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
6337         * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
6338         * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
6339         * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
6340         * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
6341         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
6342         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
6343         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
6344         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
6345         * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
6346         * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
6347         * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
6348         * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
6349         * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
6350         * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
6351
6352 2003-02-08  Ulrich Drepper  <drepper@redhat.com>
6353
6354         * tst-cond2.c: Rearrange code to not rely on behavior undefined
6355         according to POSIX.
6356
6357         * tst-basic2.c (do_test): Lock mutex before creating the thread.
6358
6359 2003-02-07  Ulrich Drepper  <drepper@redhat.com>
6360
6361         * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
6362         (TLS_GET_FS): New #define.
6363         (TLS_SET_FS): New #define.
6364         Correct value of __NR_set_thread_area.
6365
6366         * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
6367
6368 2003-02-06  Ulrich Drepper  <drepper@redhat.com>
6369
6370         * Makefile (tests): Add tst-popen1.
6371         * tst-popen1.c: New file.
6372
6373         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
6374         but inactive generalization.
6375         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6376         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
6377         Minor optimization, remove one instruction.
6378         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
6379
6380 2003-02-04  Martin Schwidefsky  <schwidefsky@de.ibm.com>
6381
6382         * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
6383
6384 2003-01-31  Martin Schwidefsky  <schwidefsky@de.ibm.com>
6385
6386         * init.c (__NR_set_tid_address): Add #ifdef for s390.
6387         * sysdeps/pthread/pthread_barrier_wait.c: New file.
6388         * sysdeps/pthread/pthread_cond_broadcast.c: New file.
6389         * sysdeps/pthread/pthread_cond_signal.c: New file.
6390         * sysdeps/pthread/pthread_cond_timedwait.c: New file.
6391         * sysdeps/pthread/pthread_cond_wait.c: New file.
6392         * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
6393         * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
6394         * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
6395         * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
6396         * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
6397         * sysdeps/s390/Makefile: New file.
6398         * sysdeps/s390/bits/atomic.h: New file.
6399         * sysdeps/s390/pthread_spin_init.c: New file.
6400         * sysdeps/s390/pthread_spin_lock.c: New file.
6401         * sysdeps/s390/pthread_spin_trylock.c: New file.
6402         * sysdeps/s390/pthread_spin_unlock.c: New file.
6403         * sysdeps/s390/pthreaddef.h: New file.
6404         * sysdeps/s390/tcb-offsets.sym: New file.
6405         * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
6406         * sysdeps/s390/tls.h: New file.
6407         * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
6408         * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
6409         * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
6410         * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
6411         * sysdeps/unix/sysv/linux/s390/fork.c: New file.
6412         * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
6413         * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
6414         * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
6415         * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
6416         * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
6417         * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
6418         * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
6419         * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
6420         * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
6421         * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
6422         * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
6423         * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
6424         * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
6425         * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
6426         * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
6427         * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
6428         * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
6429         * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
6430
6431 2003-02-04  Ulrich Drepper  <drepper@redhat.com>
6432
6433         * atomic.h: Add a couple more default implementations.
6434         (atomic_compare_and_exchange_acq): Use
6435         __arch_compare_and_exchange_32_acq in return value definition.  It
6436         always exists.
6437         (atomic_bit_set): Renamed from atomic_set_bit.
6438         Add missing atomic_ prefixes.
6439
6440         * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
6441         thread library is available, use correct value to mark initialized
6442         once variable.
6443
6444 2003-02-03  Ulrich Drepper  <drepper@redhat.com>
6445
6446         * allocatestack.c (allocate_stack): Use __getpagesize instead of
6447         __sysconf to determine pagesize.
6448
6449         * pthread_create.c: Include <atomic.h>.
6450         * allocatestack.c (allocate_stack): Implement coloring of the
6451         allocated stack memory.  Rename pagesize to pagesize_m1.  It's the
6452         size minus one.  Adjust users.
6453         * sysdeps/i386/i686/Makefile: New file.
6454
6455 2003-02-02  Ulrich Drepper  <drepper@redhat.com>
6456
6457         * allocatestack.c: Improve comment throughout the file.
6458
6459         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
6460         (__lll_lock_wait): Add branch prediction.
6461         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
6462         (__lll_lock_wait): Likewise.
6463         (lll_unlock_wake_cb): Removed.
6464
6465 2003-01-31  Ulrich Drepper  <drepper@redhat.com>
6466
6467         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
6468         _POSIX_THREAD_PRIORITY_SCHEDULING.
6469
6470 2003-01-30  Jakub Jelinek  <jakub@redhat.com>
6471
6472         * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
6473         Fix return type of ptr___pthread_getspecific.
6474
6475 2003-01-29  Ulrich Drepper  <drepper@redhat.com>
6476
6477         * Makefile (tests): Add tst-umask1.
6478         (tst-umask1-ARGS): Define.
6479         * tst-umask1.c: New file.
6480
6481 2003-01-28  Ulrich Drepper  <drepper@redhat.com>
6482
6483         * Makefile (libpthread-routines): Remove lowlevelrwlock.  Add
6484         pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
6485         pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
6486         pthread_rwlock_unlock.
6487         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
6488         * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
6489         * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
6490         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
6491         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6492         New file.
6493         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
6494         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6495         New file.
6496         * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
6497         * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
6498         * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
6499         New file.
6500         * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
6501         * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
6502         New file.
6503         * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
6504         * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
6505         * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
6506         New file.
6507         * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
6508         * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
6509         New file.
6510         * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
6511
6512         * Makefile (libpthread-routines): Remove lowlevelcond and
6513         lowlevelsem.  Add sem_wait, sem_trywait, sem_timedwait, sem_post,
6514         pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
6515         and pthread_cond_broadcast.
6516         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
6517         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
6518         * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
6519         * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
6520         * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
6521         * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
6522         * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
6523         * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
6524         * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
6525         * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
6526         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
6527         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
6528         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
6529         * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
6530         * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
6531         * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
6532         * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
6533         * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
6534         * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
6535         * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
6536         * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
6537         * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
6538         * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
6539         * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
6540         * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
6541         * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
6542         * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
6543         * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
6544         * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
6545         * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
6546         * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
6547
6548         * sysdeps/unix/sysv/linux/i386/createthread.c: Define
6549         PREPARE_CREATE and TLS_VALUE with x86-specific bits.  All the rest
6550         of the code is moved to ...
6551         * sysdeps/pthread/createthread.c: ...here.  New file.
6552
6553 2003-01-27  Ulrich Drepper  <drepper@redhat.com>
6554
6555         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
6556         (__new_sem_post): Clear %eax before returning.
6557         Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
6558
6559         * Makefile (tests): Add tst-cleanup2.
6560         * tst-cleanup2.c: New file.
6561
6562         * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
6563         Interpret first parameter correctly.
6564
6565 2003-01-17  Ulrich Drepper  <drepper@redhat.com>
6566
6567         * Makefile (headers): Add bits/semaphore.h.
6568
6569 2003-01-16  Jakub Jelinek  <jakub@redhat.com>
6570
6571         * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
6572         if not SHARED.
6573
6574 2003-01-14  Ulrich Drepper  <drepper@redhat.com>
6575
6576         * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
6577         must be used and mapping failed.
6578         Reported by Luke Elliott <luke.elliott@activfinancial.com>.
6579
6580         * Makefile (CFLAGS-pthread_self.os): Define this, not
6581         CFLAGS-pthread_self.c.
6582
6583 2003-01-13  Ulrich Drepper  <drepper@redhat.com>
6584
6585         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
6586         lll_unlock_wake_cb.
6587
6588         * Makefile (libpthread-routines): Add version.  Add rules to build
6589         version.os and banner.h.
6590         * version.c: New file.
6591
6592 2003-01-13  Jakub Jelinek  <jakub@redhat.com>
6593
6594         * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
6595         the alias unconditional.
6596         * pthread_mutex_unlock.c  (__pthread_mutex_unlock_internal): Likewise.
6597
6598 2003-01-13  Ulrich Drepper  <drepper@redhat.com>
6599
6600         * Makefile (CFLAGS-pthread_self.c): New definition.
6601
6602 2003-01-06  Jakub Jelinek  <jakub@redhat.com>
6603
6604         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
6605         INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
6606         * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
6607         * init.c (__pthread_initialize_minimal_internal): Likewise.
6608
6609 2003-01-07  Jakub Jelinek  <jakub@redhat.com>
6610
6611         * pthreadP.h (__pthread_cond_timedwait): Add prototype.
6612
6613         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6614         (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
6615         (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
6616         * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6617         (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
6618         (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
6619
6620 2003-01-06  Jakub Jelinek  <jakub@redhat.com>
6621
6622         * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
6623         * pt-system.c (LIBC_CANCEL_HANDLED): Add.
6624         * tst-cancel-wrappers.sh: Remove all exceptions.
6625
6626 2003-01-05  Ulrich Drepper  <drepper@redhat.com>
6627
6628         * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
6629         features.  Reported by Marijn Ros <marijn@mad.scientist.com>.
6630
6631         * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
6632         Use __libc_pthread_functions array if SHARED.
6633
6634         * pthreadP.h: Move pthread_cond_2_0_t definition to...
6635         * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
6636
6637         * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
6638         (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
6639         __libc_key_create, __libc_getspecific, __libc_setspecific): Use
6640         __libc_ptf_call instead of __libc_maybe_call.
6641         (PTF): New #define.
6642         (__libc_cleanup_region_start): Wrap function name with PTF call.
6643         (__libc_cleanup_region_end): Likewise.
6644         (__libc_cleanup_end): Likewise.
6645
6646         * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
6647         * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
6648         * pthread_key_create.c: Add __pthread_key_create_internal alias.
6649         * pthreadP.h: Add prototypes.
6650
6651         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
6652         __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
6653         __pthread_rwlock_unlock aliases.
6654         * pthreadP.h: Add prototypes for new aliases.
6655
6656         * pthreadP.h (struct pthead_functions): Moved to...
6657         * sysdeps/pthread/pthread-functions.h: ...here.  New file.
6658         * init.c (pthread_functions): Add initializers for new elements.
6659
6660         * cleanup_defer.c: Add __pthread_cleanup_push_defer and
6661         __pthread_cleanup_pop_restore aliases.
6662         * pthreadP.h: Add prototypes.
6663
6664         * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
6665         and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
6666         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
6667         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
6668         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
6669         * pthreadP.h: Adjust prototypes and callers.
6670
6671 2003-01-04  Ulrich Drepper  <drepper@redhat.com>
6672
6673         * Makefile (tests): Add tst-cancel7.
6674         (tst-cancel7-ARGS): New variable.
6675         * tst-cancel7.c: New file.
6676
6677         * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
6678         around gcc defficiencies.
6679         * old_pthread_cond_signal.c: Likewise.
6680         * old_pthread_cond_timedwait.c: Likewise.
6681         * old_pthread_cond_wait.c: Likewise.
6682
6683         * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
6684
6685 2003-01-03  Ulrich Drepper  <drepper@redhat.com>
6686
6687         * Makefile (tests): Add tst-cond7.
6688         * tst-cond7.c: New file.
6689
6690         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6691         (condvar_cleanup): Get condvar address from the right place.
6692
6693         * atomic.h: Correct definitions of atomic_full_barrier,
6694         atomic_read_barrier, atomic_write_barrier.
6695
6696         * old_pthread_cond_broadcast.c: Make memory allocate and initialization
6697         race-free.
6698         * old_pthread_cond_signal.c: Likewise.
6699         * old_pthread_cond_timedwait.c: Likewise.
6700         * old_pthread_cond_wait.c: Likewise.
6701
6702 2003-01-03  Jakub Jelinek  <jakub@redhat.com>
6703
6704         * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
6705
6706 2003-01-03  Ulrich Drepper  <drepper@redhat.com>
6707
6708         * pthreadP.h (pthread_cond_2_0_t): New type.
6709         (struct pthread_functions): Use new type for 2.0 condvar callbacks.
6710         Use new type for the 2.0 condvar function prototypes.
6711         * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
6712         * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
6713         parameter.
6714         * old_pthread_cond_destroy.c: Likewise.
6715         * old_pthread_cond_broadcast.c: Likewise.  Lock appropriately.
6716         * old_pthread_cond_signal.c: Likewise.
6717         * old_pthread_cond_timedwait.c: Likewise.
6718         * old_pthread_cond_wait.c: Likewise.
6719
6720         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6721         (__pthread_cond_wait): Don't save cancellation mode and seq value
6722         in same location.
6723
6724         * herrno.c (__h_errno_location): Don't define as weak.
6725
6726 2003-01-02  Jakub Jelinek  <jakub@redhat.com>
6727
6728         * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
6729         pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
6730         and pthread_cond_wait.
6731         * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
6732         Renamed to...
6733         (__pthread_cond_broadcast_2_0): ... this.
6734         * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
6735         Renamed to...
6736         (__pthread_cond_destroy_2_0): ... this.
6737         * old_pthread_cond_init.c (__old_pthread_cond_init):
6738         Renamed to...
6739         (__pthread_cond_init_2_0): ... this.
6740         * old_pthread_cond_signal.c (__old_pthread_cond_signal):
6741         Renamed to...
6742         (__pthread_cond_signal_2_0): ... this.
6743         * old_pthread_cond_wait.c (__old_pthread_cond_wait):
6744         Renamed to...
6745         (__pthread_cond_wait_2_0): ... this.
6746         * pthread_cond_destroy.c: Include shlib-compat.h.
6747         (pthread_cond_destroy): Change strong_alias into versioned_symbol.
6748         * pthread_cond_init.c: Include shlib-compat.h.
6749         (pthread_cond_init): Change strong_alias into versioned_symbol.
6750         * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
6751         fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
6752         fields.
6753         (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
6754         __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
6755         __pthread_cond_wait_2_0): New prototypes.
6756         (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
6757         __old_pthread_cond_init, __old_pthread_cond_signal,
6758         __old_pthread_cond_wait): Removed.
6759         * init.c: Include shlib-compat.h.
6760         (pthread_functions): Guard ptr___pthread_attr_init_2_0
6761         initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
6762         Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
6763         ptr___pthread_cond_*_2_0 fields.
6764         * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
6765         pthread_cond_*@GLIBC_2.0 compatibility symbols.
6766
6767         * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
6768         LIBC_SIGACTION was not yet defined.
6769         [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
6770         [!defined LIBC_SIGACTION] (__sigaction): New function and
6771         libc_hidden_weak.
6772         [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
6773         [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
6774
6775 2003-01-02  Jakub Jelinek  <jakub@redhat.com>
6776
6777         * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
6778
6779 2003-01-02  Ulrich Drepper  <drepper@redhat.com>
6780
6781         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6782         New, larger type definition.
6783         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
6784         implementation.
6785         * Versions [libpthread]: Add definitions for new pthread_cond_*
6786         interfaces for version GLIBC_2.3.2.
6787         * pthread_cond_init.c: Update initialization for new type definition.
6788         * Makefile (libpthread-routines): Remove pthread_cond_wait,
6789         pthread_cond_timedwait, pthread_cond_signal, and
6790         pthread_cond_broadcast.  Add old_pthread_cond_init,
6791         old_pthread_cond_destroy, old_pthread_cond_wait,
6792         old_pthread_cond_timedwait, old_pthread_cond_signal, and
6793         old_pthread_cond_broadcast.
6794         * old_pthread_cond_broadcast.c: New file.
6795         * old_pthread_cond_destroy.c: New file.
6796         * old_pthread_cond_init.c: New file.
6797         * old_pthread_cond_signal.c: New file.
6798         * old_pthread_cond_timedwait.c: New file.
6799         * old_pthread_cond_wait.c: New file.
6800         * pthreadP.h: Add prototypes for the compatibility interfaces.
6801
6802         * pthread_cond_destroy.c: Don't include <errno.h>.
6803
6804 2003-01-01  Ulrich Drepper  <drepper@redhat.com>
6805
6806         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
6807         unnecessary zero offset when addressing MUTEX.
6808
6809 2002-12-31  Ulrich Drepper  <drepper@redhat.com>
6810
6811         * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6812         __register_atfork.
6813         * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
6814         for __register_atfork.
6815
6816 2002-12-31  Jakub Jelinek  <jakub@redhat.com>
6817
6818         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
6819         instead of ASSEMBLER test macro.
6820
6821         * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
6822         __libc_current_sigrtmax): Add libc_hidden_def.
6823
6824         * sysdeps/pthread/list.h: Remove assert.h include.
6825
6826 2002-12-31  Ulrich Drepper  <drepper@redhat.com>
6827
6828         * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
6829         __pthread_initialize_minimal_internal not
6830         __pthread_initialize_minimal.
6831
6832 2002-12-30  Ulrich Drepper  <drepper@redhat.com>
6833
6834         * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
6835         __pthread_initialize_minimal as hidden.
6836
6837         * init.c (__pthread_initialize_minimal_internal): Don't mark as
6838         constructor.
6839
6840 2002-12-31  Jakub Jelinek  <jakub@redhat.com>
6841
6842         * Makefile ($(inst_libdir)/libpthread.so): Depend on
6843         $(common-objpfx)format.lds, include that into the output script.
6844         Fix comment.
6845         (extra-B-pthread.so): Change linuxthreads/ into nptl/.
6846
6847 2002-12-28  Andreas Jaeger  <aj@suse.de>
6848
6849         * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
6850         nsec resolution changes.
6851         (xstat64_conv): Likewise.
6852         (xstat32_conv): Likewise.
6853         * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
6854         struct kernel_stat.
6855         * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
6856         structs stat and stat64.
6857         * time/time.h (__timespec_defined): Define for __USE_MISC.
6858         * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
6859
6860 2002-12-30  Jakub Jelinek  <jakub@redhat.com>
6861
6862         * forward.c (FORWARD2): Renamed from FORWARD3.  Remove unused export
6863         argument.
6864         (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
6865         (pthread_exit): Use strong_alias to avoid warnings.
6866         * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
6867         and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
6868         ptr___pthread_attr_init_2_*.
6869         * init.c (pthread_functions): Adjust.
6870
6871 2002-12-29  Ulrich Drepper  <drepper@redhat.com>
6872
6873         * forward.c: Make all functions available by default again.  It
6874         caused too much trouble.
6875
6876         * pt-siglongjmp.c: Removed.
6877
6878 2002-12-28  Jakub Jelinek  <jakub@redhat.com>
6879
6880         * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
6881         (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
6882         * sysdeps/i386/Makefile: New file.
6883         * sysdeps/i386/tcb-offsets.sym: New file.
6884         * sysdeps/pthread/tcb-offsets.h: New file.
6885         * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6886         Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
6887
6888         * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
6889         __register_atfork...
6890         (GLIBC_2.3.2): ...here.
6891
6892 2002-12-28  Ulrich Drepper  <drepper@redhat.com>
6893
6894         * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
6895         pthread_attr_setstackaddr with __attribute_deprecated__.
6896
6897 2002-12-27  Jakub Jelinek  <jakub@redhat.com>
6898
6899         * pt-system.c (system): Remove cancellation handling.
6900         * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
6901         cancellation routines.
6902
6903 2002-12-28  Ulrich Drepper  <drepper@redhat.com>
6904
6905         * descr.h: Include <dl-sysdep.h>.
6906         (struct pthread): Move header.data.list to the back of the struct.
6907         * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
6908         (MULTIPLE_THREADS_OFFSET): Adjust offset.
6909         (SYSINFO_OFFSEET): Likewise.
6910
6911 2002-12-27  Jakub Jelinek  <jakub@redhat.com>
6912
6913         * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
6914         Define.
6915         (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
6916         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
6917         DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
6918         (USE_DL_SYSINFO): Undef.
6919
6920 2002-12-22  Jakub Jelinek  <jakub@redhat.com>
6921
6922         * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
6923         $(common-objpfx)libc.so.
6924         * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
6925         it is bigger than pipe buffer size even on arches with bigger
6926         page size.
6927         (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
6928
6929 2002-12-25  Ulrich Drepper  <drepper@redhat.com>
6930
6931         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
6932         correct errno access for case that USE___THREAD is not defined.
6933
6934 2002-12-24  Ulrich Drepper  <drepper@redhat.com>
6935
6936         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
6937         Patch by Marijn Ros <marijn@mad.scientist.com>.
6938
6939 2002-12-22  Roland McGrath  <roland@redhat.com>
6940
6941         * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
6942
6943 2002-12-20  Ulrich Drepper  <drepper@redhat.com>
6944
6945         * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
6946
6947 2002-12-19  Ulrich Drepper  <drepper@redhat.com>
6948
6949         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
6950         NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
6951         * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
6952
6953         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
6954         of int $0x80.
6955         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
6956         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
6957         * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
6958         * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
6959         * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
6960         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
6961         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
6962         * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
6963
6964         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
6965         sysenter.
6966         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
6967
6968         * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
6969
6970         * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
6971         in new TCB.
6972         * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
6973         that sysinfo is properly initialized.
6974         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
6975         to 1 only for ld.so.
6976
6977         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
6978         RTLD_CORRECT_DYNAMIC_WEAK.
6979
6980 2002-12-19  Jakub Jelinek  <jakub@redhat.com>
6981
6982         * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
6983         Use return 0 as 6th argument to FORWARD4.
6984         * pthread_equal.c: Include pthreadP.h instead of pthread.h.
6985
6986 2002-12-18  Ulrich Drepper  <drepper@redhat.com>
6987
6988         * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
6989         * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
6990         Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
6991         (INIT_SYSINFO): New #define.
6992         (TLS_TP_INIT): Use INIT_SYSINFO.
6993         * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6994         At test to make sure SYSINFO_OFFSET value is correct.
6995         * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
6996
6997 2002-12-18  Jakub Jelinek  <jakub@redhat.com>
6998
6999         * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
7000         * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
7001         * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
7002         [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
7003         __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
7004         __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
7005         __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
7006
7007 2002-12-18  Ulrich Drepper  <drepper@redhat.com>
7008
7009         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
7010         macro instead of using int $0x80 directly.
7011
7012         * sysdeps/pthread/bits/stdio-lock.h: New file.
7013         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
7014         * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
7015         * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
7016         * Makefile (routines): Add libc-lowlevelmutex.
7017
7018         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
7019         __i686.get_pc_thunk.dx.
7020
7021 2002-12-17  Jakub Jelinek  <jakub@redhat.com>
7022
7023         * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
7024         (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
7025         ($(objpfx)tst-cancel-wrappers.out): New rule.
7026         * tst-cancel-wrappers.sh: New test.
7027         * tst-locale1.c: Include signal.h.
7028         (uselocale): Test static linking of __libc_current_sigrt*.
7029
7030 2002-12-17  Ulrich Drepper  <drepper@redhat.com>
7031
7032         * Makefile (tests): Add tst-cancel6.
7033         * tst-cancel6.c: New file
7034
7035 2002-12-17  Jakub Jelinek  <jakub@redhat.com>
7036
7037         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
7038         Define meaningfully for assembler as well.
7039         * pthreadP.h (struct pthread_functions): Remove
7040         ptr_pthread_attr_init field.  Add ptr_pthread_attr_init_2_0
7041         and ptr_pthread_attr_init_2_1 fields.
7042         * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
7043         and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
7044         * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
7045         (FORWARD3): Define using FORWARD4.
7046         (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
7047         versions.
7048         * pt-system.c: Remove duplicate stdlib.h include.
7049
7050 2002-12-16  Ulrich Drepper  <drepper@redhat.com>
7051
7052         * sem_init.c: Define sem_init@GLIBC_2.0.
7053         * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
7054         * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
7055
7056         * flockfile.c: Moved to...
7057         * sysdeps/pthread/flockfile.c: ...here.  New file.
7058         * funlockfile.c: Moved to...
7059         * sysdeps/pthread/funlockfile.c: ...here.  New file.
7060         * ftrylockfile.c: Moved to...
7061         * sysdeps/pthread/ftrylockfile.c: ...here.  New file.
7062
7063 2002-12-16  Jakub Jelinek  <jakub@redhat.com>
7064
7065         * libc-cancellation.c: Guard both function with
7066         #if !defined NOT_IN_libc.
7067         * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
7068         automatically provided pthread wrappers.
7069         * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
7070         CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
7071         nor in libpthread.
7072         * pt-open.c: Removed.
7073         * pt-fcntl.c: Removed.
7074         * pt-fsync.c: Removed.
7075         * pt-lseek.c: Removed.
7076         * pt-msgrcv.c: Removed.
7077         * pt-msgsnd.c: Removed.
7078         * pt-msync.c: Removed.
7079         * pt-nanosleep.c: Removed.
7080         * pt-open64.c: Removed.
7081         * pt-pause.c: Removed.
7082         * pt-pread.c: Removed.
7083         * pt-pread64.c: Removed.
7084         * pt-pwrite.c: Removed.
7085         * pt-pwrite64.c: Removed.
7086         * pt-read.c: Removed.
7087         * pt-recv.c: Removed.
7088         * pt-recvfrom.c: Removed.
7089         * pt-recvmsg.c: Removed.
7090         * pt-send.c: Removed.
7091         * pt-sendto.c: Removed.
7092         * pt-sigtimedwait.c: Removed.
7093         * pt-sigwait.c: Removed.
7094         * pt-wait.c: Removed.
7095         * pt-waitpid.c: Removed.
7096         * pt-write.c: Removed.
7097         * pt-accept.c: Removed.
7098         * pt-close.c: Removed.
7099         * pt-connect.c: Removed.
7100         * pt-lseek64.c: Removed.
7101         * pt-sendmsg.c: Removed.
7102         * pt-tcdrain.c: Removed.
7103
7104 2002-12-15  Ulrich Drepper  <drepper@redhat.com>
7105
7106         * init.c (__pthread_initialize_minimal_internal): Renamed from
7107         __pthread_initialize_minimal.  Make old name an alias.  This
7108         converts a normal relocation into a relative relocation.
7109
7110         * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
7111
7112         * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
7113         readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
7114         * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
7115         pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
7116         pt-sigwaitinfo, pt-waitid, and pt-writev.
7117         * pt-creat.c: Removed.
7118         * pt-poll.c: Removed.
7119         * pt-pselect.c: Removed.
7120         * pt-readv.c: Removed.
7121         * pt-select.c: Removed.
7122         * pt-sigpause.c: Removed.
7123         * pt-sigsuspend.c: Removed.
7124         * pt-sigwaitinfo.c: Removed.
7125         * pt-waitid.c: Removed.
7126         * pt-writev.c: Removed.
7127
7128         * init.c (pthread_functions): New variable.
7129         (__pthread_initialize_minimal): Pass pointer to pthread_functions
7130         (or NULL) to __libc_pthread_init.
7131         * forward.c: Rewrite to use __libc:pthread_functions array to get
7132         function addresses.
7133         * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
7134         prototype.
7135         * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
7136         Take new parameter.  Copy content of variable pointed to by it
7137         to __libc_pthread_init.
7138
7139         * pthreadP.h (struct pthread_functions): New type.
7140         (__libc_pthread_init): Declare.
7141
7142         * pthread_attr_destroy.c: Add namespace protected alias.
7143         * pthread_attr_getdetachstate.c: Likewise.
7144         * pthread_attr_getinheritsched.c: Likewise.
7145         * pthread_attr_getschedparam.c: Likewise.
7146         * pthread_attr_getschedpolicy.c: Likewise.
7147         * pthread_attr_getscope.c: Likewise.
7148         * pthread_attr_setdetachstate.c: Likewise.
7149         * pthread_attr_setinheritsched.c: Likewise.
7150         * pthread_attr_setschedparam.c: Likewise.
7151         * pthread_attr_setschedpolicy.c: Likewise.
7152         * pthread_attr_setscope.c: Likewise.
7153         * pthread_cond_broadcast.c: Likewise.
7154         * pthread_cond_destroy.c: Likewise.
7155         * pthread_cond_init.c: Likewise.
7156         * pthread_cond_signal.c: Likewise.
7157         * pthread_cond_wait.c: Likewise.
7158         * pthread_condattr_destroy.c: Likewise.
7159         * pthread_condattr_init.c: Likewise.
7160         * pthread_equal.c: Likewise.
7161         * pthread_exit.c: Likewise.
7162         * pthread_getschedparam.c: Likewise.
7163         * pthread_self.c: Likewise.
7164         * pthread_setcancelstate.c: Likewise.
7165         * pthread_setschedparam.c: Likewise.
7166         * pthread_mutex_destroy.c: Likewise.
7167         * pthread_mutex_init.c: Likewise.
7168         * pthreadP.h: Add prototypes for the aliases.
7169
7170         * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
7171         multiple_threads member in correct TCB to 1.
7172
7173         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
7174         SINGLE_THREAD_P.  If in libc or libpthread examine multiple_thread
7175         member of thread decriptor, otherwise return unconditionally 1.
7176
7177 2002-12-14  Ulrich Drepper  <drepper@redhat.com>
7178
7179         * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
7180         regular Linux version.  Remove file.
7181         * sysdeps/unix/sysv/linux/connect.S: Likewise.  Remove file.
7182         * sysdeps/unix/sysv/linux/llseek.c: Likewise.  Remove file.
7183         * sysdeps/unix/sysv/linux/msgrcv.c: Likewise.  Remove file.
7184         * sysdeps/unix/sysv/linux/msgsnd.c: Likewise.  Remove file.
7185         * sysdeps/unix/sysv/linux/open64.c: Likewise.  Remove file.
7186         * sysdeps/unix/sysv/linux/poll.c: Likewise.  Remove file.
7187         * sysdeps/unix/sysv/linux/pread.c: Likewise.  Remove file.
7188         * sysdeps/unix/sysv/linux/pread64.c: Likewise.  Remove file.
7189         * sysdeps/unix/sysv/linux/pselect.c: Likewise.  Remove file.
7190         * sysdeps/unix/sysv/linux/pwrite.c: Likewise.  Remove file.
7191         * sysdeps/unix/sysv/linux/pwrite64.c: Likewise.  Remove file.
7192         * sysdeps/unix/sysv/linux/readv.c: Likewise.  Remove file.
7193         * sysdeps/unix/sysv/linux/recv.S: Likewise.  Remove file.
7194         * sysdeps/unix/sysv/linux/recvfrom.S: Likewise.  Remove file.
7195         * sysdeps/unix/sysv/linux/recvmsg.S: Likewise.  Remove file.
7196         * sysdeps/unix/sysv/linux/send.S: Likewise.  Remove file.
7197         * sysdeps/unix/sysv/linux/sendmsg.S: Likewise.  Remove file.
7198         * sysdeps/unix/sysv/linux/sendto.S: Likewise.  Remove file.
7199         * sysdeps/unix/sysv/linux/sigpause.c: Likewise.  Remove file.
7200         * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.  Remove file.
7201         * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.  Remove file.
7202         * sysdeps/unix/sysv/linux/sigwait.c: Likewise.  Remove file.
7203         * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.  Remove file.
7204         * sysdeps/unix/sysv/linux/system.c: Likewise.  Remove file.
7205         * sysdeps/unix/sysv/linux/tcdrain.c: Likewise.  Remove file.
7206         * sysdeps/unix/sysv/linux/wait.c: Likewise.  Remove file.
7207         * sysdeps/unix/sysv/linux/waitid.c: Likewise.  Remove file.
7208         * sysdeps/unix/sysv/linux/waitpid.c: Likewise.  Remove file.
7209         * sysdeps/unix/sysv/linux/writev.c: Likewise.  Remove file.
7210         * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.  Remove file.
7211
7212 2002-12-14  Jakub Jelinek  <jakub@redhat.com>
7213
7214         * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
7215         * sysdeps/unix/sysv/linux/open.c: Removed.
7216         * sysdeps/unix/sysv/linux/fsync.c: Removed.
7217         * sysdeps/unix/sysv/linux/lseek.c: Removed.
7218         * sysdeps/unix/sysv/linux/msync.c: Removed.
7219         * sysdeps/unix/sysv/linux/read.c: Removed.
7220         * sysdeps/unix/sysv/linux/close.c: Removed.
7221         * sysdeps/unix/sysv/linux/creat.c: Removed.
7222         * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
7223         * sysdeps/unix/sysv/linux/pause.c: Removed.
7224         * sysdeps/unix/sysv/linux/select.c: Removed.
7225         * sysdeps/unix/sysv/linux/write.c: Removed.
7226
7227 2002-12-14  Ulrich Drepper  <drepper@redhat.com>
7228
7229         * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
7230         element in TCB to see whether locking is needed.
7231
7232         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
7233         MULTIPLE_THREADS_OFFSET value is correct.
7234
7235         * sysdeps/unix/sysv/linux/close.c: New file.
7236         * sysdeps/unix/sysv/linux/connect.S: New file.
7237         * sysdeps/unix/sysv/linux/creat.c: New file.
7238         * sysdeps/unix/sysv/linux/fsync.c: New file.
7239         * sysdeps/unix/sysv/linux/llseek.c: New file.
7240         * sysdeps/unix/sysv/linux/lseek.c: New file.
7241         * sysdeps/unix/sysv/linux/msgrcv.c: New file.
7242         * sysdeps/unix/sysv/linux/msgsnd.c: New file.
7243         * sysdeps/unix/sysv/linux/msync.c: New file.
7244         * sysdeps/unix/sysv/linux/nanosleep.c: New file.
7245         * sysdeps/unix/sysv/linux/open.c: New file.
7246         * sysdeps/unix/sysv/linux/open64.c: New file.
7247         * sysdeps/unix/sysv/linux/pause.c: New file.
7248         * sysdeps/unix/sysv/linux/poll.c: New file.
7249         * sysdeps/unix/sysv/linux/pread.c: New file.
7250         * sysdeps/unix/sysv/linux/pread64.c: New file.
7251         * sysdeps/unix/sysv/linux/pselect.c: New file.
7252         * sysdeps/unix/sysv/linux/pwrite.c: New file.
7253         * sysdeps/unix/sysv/linux/pwrite64.c: New file.
7254         * sysdeps/unix/sysv/linux/readv.c: New file.
7255         * sysdeps/unix/sysv/linux/recv.S: New file.
7256         * sysdeps/unix/sysv/linux/recvfrom.S: New file.
7257         * sysdeps/unix/sysv/linux/recvmsg.S: New file.
7258         * sysdeps/unix/sysv/linux/select.c: New file.
7259         * sysdeps/unix/sysv/linux/send.S: New file.
7260         * sysdeps/unix/sysv/linux/sendmsg.S: New file.
7261         * sysdeps/unix/sysv/linux/sendto.S: New file.
7262         * sysdeps/unix/sysv/linux/sigpause.c: New file.
7263         * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
7264         * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
7265         * sysdeps/unix/sysv/linux/sigwait.c: New file.
7266         * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
7267         * sysdeps/unix/sysv/linux/system.c: New file.
7268         * sysdeps/unix/sysv/linux/tcdrain.c: New file.
7269         * sysdeps/unix/sysv/linux/wait.c: New file.
7270         * sysdeps/unix/sysv/linux/waitid.c: New file.
7271         * sysdeps/unix/sysv/linux/waitpid.c: New file.
7272         * sysdeps/unix/sysv/linux/writev.c: New file.
7273         * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
7274
7275         * pt-readv.c: Fix comment.
7276
7277 2002-12-14  Jakub Jelinek  <jakub@redhat.com>
7278
7279         * tst-cleanup1.c: Include stdlib.h.
7280
7281         * tst-cancel5.c: New test.
7282         * Makefile (tests): Add tst-cancel5.
7283         (tst-cancel5): Link against libc.so libpthread.so in that order.
7284
7285 2002-12-13  Ulrich Drepper  <drepper@redhat.com>
7286
7287         * forward.c (test_loaded): Prevent recursive calls.
7288
7289         * Makefile (routines): Add libc-cancellation.
7290         * libc-cancellation.c: New file.
7291         * descr.h (struct pthread): Add multiple_threads field.
7292         * allocatestack.c (allocate_stack): Initialize multiple_header field of
7293         new thread descriptor to 1.
7294         * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
7295         Initialize multiple_thread field after successful thread creation.
7296         * cancellation.c (__do_cancel): Move to pthreadP.h.
7297         (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
7298         (__pthread_disable_asynccancel): Add internal_function attribute.
7299         * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
7300         * pthread_setcancelstate.c: Likewise.
7301         * pthread_setcanceltype.c: Likewise.
7302         * pthread_exit.c: Likewise.
7303         * pthreadP.h (CANCELLATION_P): Likewise.
7304         (__do_cancel): Define as static inline.
7305         (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
7306         (__libc_enable_asynccancel, __libc_disable_asynccancel): New
7307         declarations.
7308         * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
7309         fields.  Define MULTIPLE_THREADS_OFFSET.
7310         * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
7311         declaration.
7312         * sysdeps/unix/sysv/linux/accept.S: New file.
7313         * sysdeps/unix/sysv/linux/read.c: New file.
7314         * sysdeps/unix/sysv/linux/write.c: New file.
7315         * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
7316         * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
7317         initialization of __libc_locking_needed.
7318         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
7319         __libc_locking_needed, use multiple_threads field in TCB.
7320         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
7321
7322 2002-12-12  Ulrich Drepper  <drepper@redhat.com>
7323
7324         * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
7325         version.
7326         * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
7327
7328         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
7329         access to __libc_locking_needed for PIC.
7330
7331 2002-12-12  Jakub Jelinek  <jakub@redhat.com>
7332
7333         * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
7334         declare for libc.so.
7335         (__libc_lock_init, __libc_lock_init_recursive): Change into comma
7336         expression.
7337         (__libc_lock_lock): Put into statement expression.
7338         (__libc_lock_unlock): Remove trailing semicolon.
7339         * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
7340
7341 2002-12-12  Roland McGrath  <roland@redhat.com>
7342
7343         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
7344         "m" constraint to refer to __libc_locking_needed.  Declare it here.
7345
7346 2002-12-12  Ulrich Drepper  <drepper@redhat.com>
7347
7348         * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
7349         * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
7350         Initialize __libc_locking_needed.
7351         * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
7352         instead of __register_pthread_fork_handler.
7353         * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
7354         * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
7355         fork-gen with libc_pthread_init.
7356         * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
7357         of __register_pthread_fork_handler.
7358         * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
7359         of __register_pthread_fork_handler.
7360         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
7361         __libc_locking_needed to determine whether lock prefix can be avoided.
7362         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
7363
7364 2002-12-11  Ulrich Drepper  <drepper@redhat.com>
7365
7366         * Makefile (tests): Add tst-cleanup1.
7367         * tst-cleanup1.c: New file.
7368         * cancellation.c (__cleanup_thread): Removed.
7369         (__do_cancel): Remove call to __cleanup_thread.
7370         * pthreadP.h: Remove __cleanup_thread prorotype.
7371
7372         * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
7373         Remember function and argument even if cancellation handler
7374         function is not available.
7375         (__libc_cleanup_region_end): Execute registered function directly if
7376         pthread functions are not available.
7377         (__libc_cleanup_end): Likewise.
7378
7379         * init.c (__pthread_initialize_minimal): Fix initialization in
7380         static lib by preventing gcc from being too clever.
7381
7382 2002-12-10  Ulrich Drepper  <drepper@redhat.com>
7383
7384         * init.c (__pthread_initialize_minimal): Remove unneccesary
7385         sigaddset call.
7386
7387         * Makefile (tests): We can run tst-locale2 now.
7388
7389 2002-12-09  Ulrich Drepper  <drepper@redhat.com>
7390
7391         * Versions: Remove duplicated sigwait entry.
7392
7393 2002-12-08  Ulrich Drepper  <drepper@redhat.com>
7394
7395         * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
7396         inside libpthread.
7397
7398         * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
7399
7400         * pthreadP.h: Declare __pthread_enable_asynccancel and
7401         __pthread_disable_asynccancel.
7402         (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
7403         (CANCEL_RESET): Use __pthread_disable_asynccancel.
7404         * cancellation.c (__pthread_enable_asynccancel): New function.
7405         (__pthread_disable_asynccancel): New function.
7406         * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
7407         * pt-close.c: Likewise.
7408         * pt-connect.c: Likewise.
7409         * pt-creat.c: Likewise.
7410         * pt-fcntl.c: Likewise.
7411         * pt-fsync.c: Likewise.
7412         * pt-lseek.c: Likewise.
7413         * pt-lseek64.c: Likewise.
7414         * pt-msgrcv.c: Likewise.
7415         * pt-msgsnd.c: Likewise.
7416         * pt-msync.c: Likewise.
7417         * pt-nanosleep.c: Likewise.
7418         * pt-open.c: Likewise.
7419         * pt-open64.c: Likewise.
7420         * pt-pause.c: Likewise.
7421         * pt-poll.c: Likewise.
7422         * pt-pread.c: Likewise.
7423         * pt-pread64.c: Likewise.
7424         * pt-pselect.c: Likewise.
7425         * pt-pwrite.c: Likewise.
7426         * pt-pwrite64.c: Likewise.
7427         * pt-read.c: Likewise.
7428         * pt-readv.c: Likewise.
7429         * pt-recv.c: Likewise.
7430         * pt-recvfrom.c: Likewise.
7431         * pt-recvmsg.c: Likewise.
7432         * pt-select.c: Likewise.
7433         * pt-send.c: Likewise.
7434         * pt-sendmsg.c: Likewise.
7435         * pt-sendto.c: Likewise.
7436         * pt-sigpause.c: Likewise.
7437         * pt-sigsuspend.c: Likewise.
7438         * pt-sigtimedwait.c: Likewise.
7439         * pt-sigwait.c: Likewise.
7440         * pt-sigwaitinfo.c: Likewise.
7441         * pt-system.c: Likewise.
7442         * pt-tcdrain.c: Likewise.
7443         * pt-wait.c: Likewise.
7444         * pt-waitid.c: Likewise.
7445         * pt-waitpid.c: Likewise.
7446         * pt-write.c: Likewise.
7447         * pt-writev.c: Likewise.
7448         * pthread_join.c: Likewise.
7449         * pthread_timedjoin.c: Likewise.
7450
7451         * pt-sigpause.c (sigsuspend): Call __sigsuspend.
7452         (__xpg_sigpause): New function.
7453         * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
7454
7455 2002-12-07  Ulrich Drepper  <drepper@redhat.com>
7456
7457         * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
7458
7459         * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
7460         _GI_pthread_cleanup_pop to pthreadP.h.
7461
7462         * ftrylockfile.c: Use _IO_lock_trylock instead of
7463         pthread_mutex_trylock.
7464
7465         * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
7466         (CANCEL_RESET): Likewise.
7467         (__pthread_setcanceltype_): Declare.
7468         (__pthread_mutex_lock_internal): Declare.
7469         (__pthread_mutex_unlock_internal): Declare.
7470         (__pthread_once_internal): Declare.
7471         (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
7472         (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
7473
7474         * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
7475         and pthread_mutex_unlock.
7476         * pthread_cond_wait.c: Likewise.
7477         * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
7478         * pthread_mutex_unlock.c: Likewise.
7479
7480         * pthread_setcanceltype.c: Add additional alias
7481         __pthread_setcanceltype.
7482
7483         * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
7484         * sem_open.c (sem_open): Likewise.
7485         Use __libc_open, __libc_write, and __libc_close instead of
7486         open, write, and close respectively.
7487
7488         * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
7489         Rewrite as statement expression since it must return a value.
7490
7491         * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
7492         * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
7493         __pthread_kill.
7494
7495         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
7496         alias __pthread_once_internal.
7497
7498         * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
7499
7500 2002-12-06  Ulrich Drepper  <drepper@redhat.com>
7501
7502         * Makefile (tests): Add tst-stdio1 and tst-stdio2.
7503         * tst-stdio1.c: New file.
7504         * tst-stdio2.c: New file.
7505
7506         * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
7507
7508         * Makefile (tests): Comment out tst-locale2 for now.
7509         (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
7510
7511         * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
7512         -D_IO_MTSAFE_IO.
7513         * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
7514         Use _IO_lock_init instead of explicit assignment.
7515
7516         * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
7517         Define __libc_lock_* and __libc_lock_recursive macros with
7518         lowlevellock macros, not pthread mutexes.
7519
7520         * flockfile.c: Include <bits/stdio-lock.h>.  Use _IO_lock_lock instead
7521         of pthread_mutex_lock.
7522         * funlockfile.c: Include <bits/stdio-lock.h>.  Use _IO_lock_unlock
7523         instead of pthread_mutex_unlock.
7524
7525 2002-12-06  Roland McGrath  <roland@redhat.com>
7526
7527         * allocatestack.c (__stack_user): Use uninitialized defn.
7528         * init.c (__pthread_initialize_minimal): Initialize it here.
7529
7530 2002-12-05  Roland McGrath  <roland@redhat.com>
7531
7532         * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
7533         string.
7534         * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
7535
7536         * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
7537         missing & here too.
7538
7539 2002-12-05  Ulrich Drepper  <drepper@redhat.com>
7540
7541         * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
7542         lowlevellock.
7543         * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
7544         * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
7545         * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
7546         * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
7547         for __libc_lock_* macros.
7548         * Makefile (routines): Add libc-lowlevellock.
7549
7550 2002-10-09  Roland McGrath  <roland@redhat.com>
7551
7552         * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
7553         Under [__PIC__], call the function via the pointer fetched for
7554         comparison rather than a call by name that uses the PLT.
7555         (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
7556         (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
7557         (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
7558         (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
7559         (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
7560
7561 2002-12-04  Roland McGrath  <roland@redhat.com>
7562
7563         * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
7564
7565         * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
7566         * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
7567
7568         * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
7569
7570 2002-12-04  Ulrich Drepper  <drepper@redhat.com>
7571
7572         * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
7573         a completely opaque, non-integer type.
7574         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7575
7576 2002-12-05  Jakub Jelinek  <jakub@redhat.com>
7577
7578         * sysdeps/i386/tls.h: Include stdlib.h.
7579         * sysdeps/x86_64/tls.h: Likewise.
7580
7581 2002-12-04  Ulrich Drepper  <drepper@redhat.com>
7582
7583         * Makefile (tests): Add tst-locale2.
7584         (tests-static): Likewise.
7585         * tst-locale2.c: New file.
7586
7587         * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
7588         volatile and add memory clobbers to lock operations.
7589
7590 2002-12-03  Ulrich Drepper  <drepper@redhat.com>
7591
7592         * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
7593         * sysdeps/i386/i486/bits/atomic.h: New file.
7594         * sysdeps/i386/i586/bits/atomic.h: New file.
7595         * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
7596         include i486 version.
7597         * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
7598         * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
7599         Patch by Marijn Ros <marijn@mad.scientist.com>.
7600
7601         * allocatestack.c (get_cached_stack): Don't crash if we first
7602         found a stack with a larger size then needed.
7603         Reported by Hui Huang <hui.huang@sun.com>.
7604
7605         * Makefile (tests): Add tst-sysconf.
7606         * tst-sysconf.c: New file.
7607
7608         * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
7609         PTHREAD_THREADS_MAX.
7610
7611 2002-12-02  Roland McGrath  <roland@redhat.com>
7612
7613         * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
7614         Declare using hidden_proto instead of attribute_hidden, so there are
7615         non-.hidden static symbols for gdb to find.
7616         (__pthread_keys): Likewise.
7617         * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
7618         * allocatestack.c (__stack_user): Likewise.
7619         * pthread_create.c (__pthread_keys): Likewise.
7620         (__nptl_threads_events, __nptl_last_event): Make these static instead
7621         of hidden.
7622         * pthread_key_create.c (__pthread_pthread_keys_max,
7623         __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
7624
7625 2002-12-02  Ulrich Drepper  <drepper@redhat.com>
7626
7627         * Makefile (tests): Add tst-locale1.  If buid-static is yes link
7628         statically.
7629         * tst-locale1.c: New file.
7630
7631         * pthread_cond_timedwait.c: Include <stdlib.h>.
7632
7633         * Makefile (tests): Add tst-fork2 and tst-fork3.
7634         * tst-fork2.c: New file.
7635         * tst-fork3.c: New file.
7636
7637 2002-11-28  Ulrich Drepper  <drepper@redhat.com>
7638
7639         * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
7640
7641         * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
7642         require it to 200112L.
7643
7644         * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
7645         instruction only if HAVE_CMOV is defined.
7646         * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
7647
7648         * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
7649
7650         * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
7651
7652         * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
7653
7654         * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
7655
7656 2002-11-27  Ulrich Drepper  <drepper@redhat.com>
7657
7658         * sysdeps/x86_64/bits/atomic.h: New file.
7659
7660         * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
7661         16-bit operations.
7662
7663         * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
7664         possible since gettid cannot fail.
7665
7666         * sysdeps/x86_64/pthreaddef.h: New file.
7667
7668         * sysdeps/i386/pthreaddef.h (gettid): Removed.
7669
7670         * sysdeps/x86_64/pthread_spin_init.c: New file.
7671         * sysdeps/x86_64/pthread_spin_lock.c: New file.
7672         * sysdeps/x86_64/pthread_spin_trylock.c: New file.
7673         * sysdeps/x86_64/pthread_spin_unlock.c: New file.
7674
7675         * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
7676         Add missing lock prefix.  Minute optimization.
7677
7678         * tst-spin2.c (main): Also check successful trylock call.
7679
7680         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
7681         syscall.  Fix typo in case INTERNAL_SYSCALL is not used.
7682
7683         * sysdeps/i386/pthread_spin_destroy.c: Moved to...
7684         * sysdeps/pthread/pthread_spin_destroy.c: ...here.  New file.
7685
7686         * sysdeps/i386/pthread_sigmask.c: Removed.  Use the generic code.
7687         * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
7688         value in case of an error.  Add support for INTERNAL_SYSCALL.
7689
7690         * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
7691         value in case of an error.
7692
7693         * sysdeps/x86_64/tls.h: New file.
7694
7695 2002-11-26  Ulrich Drepper  <drepper@redhat.com>
7696
7697         * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface.  It now
7698         takes the array member name and the index as parameters.
7699         (THREAD_SETMEM_NC): Likewise.
7700         * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
7701         * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
7702         interfaces.
7703
7704         * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
7705         to decide which code to use.
7706         (THREAD_SETMEM_NC): Likewise.
7707
7708         * allocatestack.c (queue_stack): Don't remove stack from list here.
7709         Do it in the caller.  Correct condition to prematurely terminate
7710         loop to free stacks.
7711         (__deallocate_stack): Remove stack from list here.
7712
7713 2002-11-26  Ulrich Drepper  <drepper@redhat.com>
7714
7715         * Makefile (tests): Add tst-stack1.
7716         * tst-stack1.c: New file.
7717
7718         * allocatestack.c (allocate_stack): Initialize the TCB on a user
7719         provided stack.
7720
7721         * pthread_attr_getstack.c: Return bottom of the thread area.
7722
7723 2002-11-25  Ulrich Drepper  <drepper@redhat.com>
7724
7725         * Makefile (libpthread-routines): Add pt-allocrtsig and
7726         pthread_kill_other_threads.
7727         * pt-allocrtsig.c: New file.
7728         * pthread_kill_other_threads.c: New file.
7729         * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
7730         all three functions.
7731         * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
7732         allocrtsig.
7733         * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
7734         __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
7735         and __libc_allocate_rtsig_private.
7736         * Versions (libpthread): Export pthread_kill_other_threads_np,
7737         __libc_current_sigrtmin, and __libc_current_sigrtmax.
7738
7739 2002-11-24  Ulrich Drepper  <drepper@redhat.com>
7740
7741         * allocatestack.c (allocate_stack): stackaddr in attribute points to
7742         the end of the stack.  Adjust computations.
7743         When mprotect call fails dequeue stack and free it.
7744         * pthread_attr_setstack.c: Store top of the stack in stackaddr
7745         attribute.
7746         * pthread_getattr_np.c: Likewise.
7747
7748         * descr.h (IS_DETACHED): Add some more parenthesis to prevent
7749         surprises.
7750
7751 2002-11-23  Ulrich Drepper  <drepper@redhat.com>
7752
7753         * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
7754         attribute definitions.  Patch by Luca Barbieri <ldb@ldb.ods.org>.
7755
7756 2002-11-22  Ulrich Drepper  <drepper@redhat.com>
7757
7758         * pthread_getspecific.c: Optimize access to first 2nd-level array.
7759         * pthread_setspecific.c: Likewise.
7760
7761 2002-11-21  Ulrich Drepper  <drepper@redhat.com>
7762
7763         * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
7764         definitions.  Get them from the official place.
7765         * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
7766
7767         * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
7768         Use new CLONE_ flags in clone() calls.
7769
7770         * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
7771         * sysdeps/unix/sysv/linux/i386/fork.c: New file.
7772
7773         * Versions: Add pthread_* functions for libc.
7774         * forward.c: New file.
7775
7776         * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
7777         errno-loc.
7778         * herrno.c: New file.
7779         * res.c: New file.
7780
7781         * Makefile (libpthread-routines): Remove sem_post, sem_wait,
7782         sem_trywait, and sem_timedwait.  Add herrno and res.
7783         * sem_init.c: Don't initialize lock and waiters members.
7784         * sem_open.c: Likewise.
7785         * sem_post.c: Removed.
7786         * sem_wait.c: Removed.
7787         * sem_trywait.c: Removed.
7788         * sem_timedwait.c: Removed.
7789         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
7790         Includes full implementations of sem_post, sem_wait, sem_trywait,
7791         and sem_timedwait.
7792         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
7793         for new implementation.
7794         * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
7795         and waiters fields.
7796
7797         * tst-sem3.c: Improve error message.
7798         * tst-signal3.c: Likewise.
7799
7800         * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
7801         to tell the kernel about the termination futex and to initialize tid
7802         member.  Don't initialize main_thread.
7803         * descr.h (struct pthread): Remove main_thread member.
7804         * cancelllation.c (__do_cancel): Remove code handling main thread.
7805         The main thread is not special anymore.
7806
7807         * allocatestack.c (__reclaim_stacks): Mark stacks as unused.  Add
7808         size of the stacks to stack_cache_actsize.
7809
7810         * pt-readv.c: Add missing "defined".
7811         * pt-sigwait.c: Likewise.
7812         * pt-writev.c: Likewise.
7813
7814 2002-11-09  Ulrich Drepper  <drepper@redhat.com>
7815
7816         * Versions: Export __connect from libpthread.
7817         Patch by Luca Barbieri <ldb@ldb.ods.org>.
7818
7819         * Makefile (libpthread-routines): Add pt-raise.
7820         * sysdeps/unix/sysv/linux/raise.c: New file.
7821         * sysdeps/unix/sysv/linux/pt-raise.c: New file.
7822         * sysdeps/generic/pt-raise.c: New file.
7823
7824         * pthread_cond_init.c: Initialize all data elements of the condvar
7825         structure.  Patch by Luca Barbieri <ldb@ldb.ods.org>.
7826
7827         * pthread_attr_init.c: Actually implement 2.0 compatibility version.
7828         * pthread_create.c: Likewise.
7829
7830         * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
7831         * tst-key1.c: New file.
7832         * tst-key2.c: New file.
7833         * tst-key3.c: New file.
7834
7835         * Versions: Export pthread_detach for version GLIBC_2.0.
7836         Reported by Saurabh Desai <sdesai@austin.ibm.com>.
7837
7838 2002-11-08  Ulrich Drepper  <drepper@redhat.com>
7839
7840         * pthread_key_create.c: Terminate search after an unused key was found.
7841         Patch by Luca Barbieri <ldb@ldb.ods.org>.
7842
7843         * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
7844         Patch by Luca Barbieri <ldb@ldb.ods.org>.
7845
7846 2002-10-10  Ulrich Drepper  <drepper@redhat.com>
7847
7848         * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
7849         dynamic lookup for errno in PIC.
7850
7851         * allocatestack.c (get_cached_stack): Rearrange code slightly to
7852         release the stack lock as soon as possible.
7853         Call _dl_allocate_tls_init for TCB from the cache to re-initialize
7854         the static TLS block.
7855         (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
7856
7857         * cancellation.c: Renamed from cancelation.c.
7858         * Makefile: Adjust accordingly.
7859         * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
7860         * cleanup_defer.c: Use CANCELLATION_P.
7861         * pthread_testcancel.c: Likewise.
7862         * descr.h: Fix spelling in comments.
7863         * init.c: Likewise.
7864         * pthread_getattr_np.c: Likewise.
7865         * pthread_getschedparam.c: Likewise.
7866         * pthread_setschedparam.c: Likewise.
7867         * Versions: Likewise.
7868
7869         * pt-pselect.c: New file.
7870         * Makefile (libpthread-routines): Add pt-pselect.
7871         * Versions: Add pselect.
7872
7873         * tst-cancel4.c: New file.
7874         * Makefile (tests): Add tst-cancel4.
7875
7876 2002-10-09  Ulrich Drepper  <drepper@redhat.com>
7877
7878         * pthread_mutex_lock.c: Always record lock ownership.
7879         * pthread_mutex_timedlock.c: Likewise.
7880         * pthread_mutex_trylock.c: Likewise.
7881
7882         * pt-readv.c: New file.
7883         * pt-writev.c: New file.
7884         * pt-creat.c: New file.
7885         * pt-msgrcv.c: New file.
7886         * pt-msgsnd.c: New file.
7887         * pt-poll.c: New file.
7888         * pt-select.c: New file.
7889         * pt-sigpause.c: New file.
7890         * pt-sigsuspend.c: New file.
7891         * pt-sigwait.c: New file.
7892         * pt-sigwaitinfo.c: New file.
7893         * pt-waitid.c: New file.
7894         * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
7895         pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
7896         pt-sigwait, pt-sigwaitinfo, and pt-waitid.
7897         * Versions: Add all the new functions.
7898
7899         * tst-exit1.c: New file.
7900         * Makefile (tests): Add tst-exit1.
7901
7902         * sem_timedwait.c: Minor optimization for more optimal fastpath.
7903
7904 2002-10-08  Ulrich Drepper  <drepper@redhat.com>
7905
7906         * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
7907
7908         * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
7909         call.  pthread_join is an official cancellation point.
7910         * pthread_timedjoin.c: Likewise.
7911
7912         * pthread_cond_wait.c: Revert order in which internal lock are dropped
7913         and the condvar's mutex are retrieved.
7914         * pthread_cond_timedwait.c: Likewise.
7915         Reported by dice@saros.East.Sun.COM.
7916
7917 2002-10-07  Ulrich Drepper  <drepper@redhat.com>
7918
7919         * pthreadP.h: Cut out all type definitions and move them...
7920         * sysdeps/unix/sysv/linux/internaltypes.h: ...here.  New file.
7921         * pthreadP.h: Include <internaltypes.h>.
7922
7923         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
7924         performance tweaks.
7925
7926         * sem_trywait.c: Shuffle #includes around to get right order.
7927         * sem_timedwait.c: Likewise.
7928         * sem_post.c: Likewise.
7929         * sem_wait.c: Likewise.
7930
7931         * nptl 0.3 released.
7932
7933         * Makefile (tests): Add tst-signal3.
7934         * tst-signal3.c: New file.
7935
7936 2002-10-05  Ulrich Drepper  <drepper@redhat.com>
7937
7938         * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
7939         the asms modify the sem object.
7940         (__lll_sem_timedwait): Now takes struct sem* as first parameter.
7941
7942         * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
7943         the actual members.
7944         * pthreadP.h (struct sem): New type.  Actual semaphore type.
7945         * semaphoreP.h: Include pthreadP.h.
7946         * sem_getvalue.c: Adjust to sem_t change.
7947         * sem_init.c: Likewise.
7948         * sem_open.c: Likewise.
7949         * sem_post.c: Likewise.
7950         * sem_timedwait.c: Likewise.
7951         * sem_trywait.c: Likewise.
7952         * sem_wait.c: Likewise.
7953
7954 2002-10-04  Ulrich Drepper  <drepper@redhat.com>
7955
7956         * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
7957         * tst-basic2.c: New file.
7958         * tst-exec1.c: New file.
7959         * tst-exec2.c: New file.
7960         * tst-exec3.c: New file.
7961
7962         * tst-fork1.c: Remove extra */.
7963
7964         * nptl 0.2 released.  The API for IA-32 is complete.