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