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