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