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