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