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