]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* ctype/ctype.h: The *_l functions are in POSIX 2008.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
77db439e
UD
12009-02-25 Ulrich Drepper <drepper@redhat.com>
2
3 * sysdeps/pthread/pthread.h: The robust mutex functions are in
4 POSIX 2008.
5
5be0a688
UD
62009-02-24 Ulrich Drepper <drepper@redhat.com>
7
8 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
9 Unify name of include protector macro.
10
4c869eb6
UD
112009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
12
13 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
14 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
15
cca50323
UD
162009-01-29 Ulrich Drepper <drepper@redhat.com>
17
7f901dd7
UD
18 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
19 pointer variables.
20
cca50323
UD
21 * allocatestack.c (__free_stacks): Renamed from free_stacks.
22 (__free_stack_cache): Removed. Change callers to call __free_stacks.
23 * init.c (nptl_freeres): New function.
24 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
25 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
26 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
27 variable.
28 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
29 load DSO. Assign last.
30 (__unwind_freeres): New function.
31
32 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
33 for better debugging. No need to use stack_list_add here.
34
a7bd183f
UD
352009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
36
37 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
38 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
39 instead of computing relative timeout.
40 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
41 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
42
563ee1cb
UD
432009-01-25 Ulrich Drepper <drepper@redhat.com>
44
45 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
46
f25c7b08
UD
472009-01-08 Ulrich Drepper <drepper@redhat.com>
48
49 * sysdeps/pthread/list.h (list_add): Initialize new element first.
50 (list_add_tail): Removed.
51
3c612057
UD
522009-01-04 Ulrich Drepper <drepper@redhat.com>
53
54 * init.c (__pthread_initialize_minimal_internal): Optimize test
55 FUTEX_CLOCK_REALTIME a bit.
56
19834b42
UD
572009-01-03 Ulrich Drepper <drepper@redhat.com>
58
59 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
60 only passing five parameters to FUTEX_WAIT_BITSET call.
61
62 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 63 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
64 instead of computing relative timeout.
65
7dd650d7
UD
662009-01-02 Ulrich Drepper <drepper@redhat.com>
67
cbd8aeb8
UD
68 * init.c (__pthread_initialize_minimal_internal): Check for
69 FUTEX_CLOCK_REALTIME flag.
70 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 71 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
72 relative timeout.
73
7dd650d7
UD
74 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
75 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
76 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
77 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
78 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
79 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
80
217d45cd
UD
812008-12-09 Ulrich Drepper <drepper@redhat.com>
82
83 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
84 loop body instead of ; to avoid gcc warnings.
85 (pthread_cleanup_pop_restore_np): Likewise.
86 Patch by Caolán McNamara <caolanm@redhat.com>.
87
6de79a49
UD
882008-12-09 Jakub Jelinek <jakub@redhat.com>
89
90 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
91 fast path here, for robust/PI/PP mutexes call
92 __pthread_mutex_lock_full. Don't use switch, instead use a series
93 of ifs according to their probability.
94 (__pthread_mutex_lock_full): New function.
95 * pthread_mutex_unlock.c: Include assert.h.
96 (__pthread_mutex_unlock_usercnt): Handle only the
97 fast path here, for robust/PI/PP mutexes call
98 __pthread_mutex_unlock_full. Don't use switch, instead use a series
99 of ifs according to their probability.
100 (__pthread_mutex_unlock_full): New function.
101 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
102 (__pthread_mutex_lock_full): Define.
103
71bb2639
UD
1042008-12-08 Ulrich Drepper <drepper@redhat.com>
105
106 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
107 implementation. Add necessary padding and.
108 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
109 words.
110
247626f3
UD
1112008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
112
113 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
114 and FUTEX_WAKE_BITSET.
115
da5ac135
UD
1162008-12-02 Ulrich Drepper <drepper@redhat.com>
117
118 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
119 and FUTEX_WAKE_BITSET.
120 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
121 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
122 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
123 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
124
c0439b95
RM
1252008-11-25 Roland McGrath <roland@redhat.com>
126
127 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
128 Subdirectories moved to ports repository as
129 sysdeps/.../nptl subdirectories.
130
0e54a725
UD
1312008-11-12 Jakub Jelinek <jakub@redhat.com>
132
133 [BZ #7008]
134 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
135 of old value.
136 * pthread_cond_init.c (__pthread_cond_init): Fix
137 cond->__data.__nwaiters initialization.
138 * Makefile (tests): Add tst-cond23.
139 * tst-cond23.c: New test.
140
4b23f9bd
JJ
1412008-11-07 Jakub Jelinek <jakub@redhat.com>
142
143 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
144 arguments.
145 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
146 arguments.
147
efac1fce
UD
1482008-11-01 Ulrich Drepper <drepper@redhat.com>
149
150 [BZ #6955]
151 * pthread_mutex_lock.c: Add support for private PI mutexes.
152 * pthread_mutex_timedlock.c: Likewise.
153 * pthread_mutex_trylock.c: Likewise.
154 * pthread_mutex_unlock.c: Likewise.
155 Patch mostly by Ben Jackson <ben@ben.com>.
156
bf837fa3
UD
1572008-10-31 Ulrich Drepper <drepper@redhat.com>
158
159 [BZ #6843]
160 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
161 Increase stack size for helper thread.
162
208bc836
UD
1632008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
164
165 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
166 assembly with a clobber list for access registers a0 and a1.
167
17f8b4a9
UD
1682008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
169
170 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
171 to force runp->refcntr to be read from memory.
172
2458c748
AJ
1732008-09-08 Richard Guenther <rguenther@suse.de>
174
175 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
176 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
177 lll_timedlock, lll_robust_timedlock, lll_unlock,
178 lll_robust_unlock): Promote private to int.
179
965805e8
UD
1802008-08-15 Ulrich Drepper <drepper@redhat.com>
181
182 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
183 ARCH_RETRY_MMAP definitions.
184 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
185 Define MAP_STACK when not defined.
186 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
187 handling of ARCH_RETRY_MMAP.
188
bd7f4857
UD
1892008-07-30 Ulrich Drepper <drepper@redhat.com>
190
191 * tst-align2.c (f): Print message that f is reached.
192
619cc2f6
UD
1932008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
194
195 [BZ #6740]
196 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
197 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
198
8ccf22f9
UD
1992008-07-25 Ulrich Drepper <drepper@redhat.com>
200
201 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
202 SOCK_CLOEXEC if possible.
203
2042008-05-29 Ulrich Drepper <drepper@redhat.com>
205
206 * Makefile (tests): Add tst-rwlock2a.
207 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
208 * tst-rwlock2a.c: New file.
209
5a337776
UD
2102008-06-12 Ulrich Drepper <drepper@redhat.com>
211
212 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
213
e4d6e7f5
UD
2142008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
215
216 * sysdeps/pthread/pthread.h: Fix typo in comment.
217
d6296e88
UD
2182008-05-28 Ulrich Drepper <drepper@redhat.com>
219
220 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
221 of CPU set to the kernel.
222
62605cbf
UD
2232008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
224
225 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
226 cfi directives.
227 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
228 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
229 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
230 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
231 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
232 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
233
2342008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
235
236 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
237 cfi directives.
238 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
239 Likewise.
240 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
241 Likewise.
242 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
243 Likewise.
244
4b2c85c0
UD
2452008-05-26 Ulrich Drepper <drepper@redhat.com>
246
247 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
248
b72f5692 2492008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
250
251 David S. Miller <davem@davemloft.net>
3b15b590 252
b72f5692 253 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 254
cdffaaa6
UD
2552008-05-10 Ulrich Drepper <drepper@redhat.com>
256
257 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
258 __pshared correctly.
259 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
260 Likewise.
261 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
262 Likewise.
263 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
264 Likewise.
265 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
266 Likewise.
267 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
268
2313c48f
JJ
2692008-04-14 David S. Miller <davem@davemloft.net>
270
271 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
272 (__old_sem_wait): Fix argument to lll_futex_wait().
273
2f611ada
UD
2742007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
275
276 * pthread_create.c: Require pthread_mutex_trylock and
277 pthread_key_delete for libgcc.
278
d24be489
JJ
2792008-04-08 Jakub Jelinek <jakub@redhat.com>
280
281 [BZ #6020]
282 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
283 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
284 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
285
f96853be
UD
2862008-03-27 Ulrich Drepper <drepper@redhat.com>
287
8ccf22f9 288 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
289 <linux/limits.h> has defined it.
290 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
291 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
292 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
293 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
294
354b7527
JJ
2952008-03-18 Jakub Jelinek <jakub@redhat.com>
296
297 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
298 of ASSEMBLER.
299 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
300 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
301
702ae329
UD
3022008-03-14 Ulrich Drepper <drepper@redhat.com>
303
304 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
305 HAVE_DL_DISCOVER_OSVERSION.
306 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
307 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
308
443db178
UD
3092008-03-07 Ulrich Drepper <drepper@redhat.com>
310
311 [BZ #5778]
312 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
313 _POSIX_CHOWN_RESTRICTED value to zero.
314
67fbfa5c
RM
3152008-01-31 Roland McGrath <roland@redhat.com>
316
317 * Makefile (omit-deps): Variable removed.
318
dd3113da
UD
3192008-01-30 Ulrich Drepper <drepper@redhat.com>
320
321 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
322 unnecessary addr32 prefix.
323
16cd816f
RM
3242008-01-29 Roland McGrath <roland@redhat.com>
325
326 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
327
b4b166af
UD
3282008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
329
330 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
331
3322008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
333
334 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
335 a scratch register.
336 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
337 (__lll_lock_wait_private): Fix typo.
338 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
339 (pthread_barrier_wait): Likewise. Adjust XADD use.
340 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
341 Adjust XADD use.
342 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
343 (pthread_rwlock_timedrdlock): Return correct return value.
344 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 345 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 346
eaf95a26
UD
3472008-01-15 Ulrich Drepper <drepper@redhat.com>
348
349 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
350 thread returns the program exits with an error code.
351
ab355d9a
UD
3522008-01-10 Ulrich Drepper <drepper@redhat.com>
353
354 * pthread-errnos.sym: Add EOVERFLOW.
355 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
356 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
357 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
358 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
359
b8cca206
UD
3602007-12-14 Ulrich Drepper <drepper@redhat.com>
361
362 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
363 parameter. Passed it as permission to mmap.
364 * allocatestack.c (allocate_stack): Pass prot as second parameter
365 to ARCH_RETRY_MMAP.
366
189dce4f
UD
3672007-12-12 Ulrich Drepper <drepper@redhat.com>
368
3eb0e1c6
UD
369 * tst-basic7.c: Allocate memory for the stack.
370
189dce4f
UD
371 [BZ #5465]
372 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
373 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 374 Patch by Michal Januszewski.
189dce4f 375
26e21e75
UD
3762007-12-07 Ulrich Drepper <drepper@redhat.com>
377
378 [BZ #5455]
379 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
380 Allow label before pthread_cleanup_pop.
381 (pthread_cleanup_pop_restore_np): Likewise.
382
191ec77f
UD
3832007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
384
385 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
386 Store 2 before returning ETIMEDOUT.
387
c012be6f
UD
3882007-11-23 Ulrich Drepper <drepper@redhat.com>
389
390 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
391 Store 2 before returning ETIMEDOUT.
392 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
393 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
394 (__lll_lock_wait_private): Optimize.
395 (__lll_lock_wait): Likewise.
396
77f1e09a
UD
3972007-11-20 Jakub Jelinek <jakub@redhat.com>
398
399 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
400 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
401 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
402
0f7e0ee5
UD
4032007-11-08 Ulrich Drepper <drepper@redhat.com>
404
cbed6a60
UD
405 [BZ #5240]
406 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
407 If we time out, try one last time to lock the futex to avoid
408 losing a wakeup signal.
409 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
410 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
411
0f7e0ee5
UD
412 [BZ #5245]
413 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
414 if necessary.
415
f6ed654c
UD
4162007-11-07 Ulrich Drepper <drepper@redhat.com>
417
418 [BZ #5245]
419 * allocatestack.c (allocate_stack): Change ENOMEM error in case
420 mmap failed to EAGAIN.
421 * Makefile (tests): Add tst-basic7.
422 * tst-basic7.c: New file.
423
b92e3780
UD
4242007-11-05 Ulrich Drepper <drepper@redhat.com>
425
426 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
427 Use __linkin_atfork.
428
94a749f6
UD
4292007-11-03 Mike Frysinger <vapier@gentoo.org>
430
431 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
432 missing line continuations.
433 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
434 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
435
f160a450
UD
4362007-10-28 Ulrich Drepper <drepper@redhat.com>
437
438 [BZ #5220]
439 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
440 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
441 (struct timer): Add next element.
442 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
443 enqueue timer structure into __active_timer_sigev_thread list.
444 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
445 remove timer struct from __active_timer_sigev_thread.
446 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
447 Before using timer structure make sure it is still on the
448 __active_timer_sigev_thread list. Keep lock until done.
449 Define __active_timer_sigev_thread and
450 __active_timer_sigev_thread_lock.
451
94833f11
UD
4522007-10-27 Ulrich Drepper <drepper@redhat.com>
453
454 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
455 Redefine thread_atfork for use of ATFORK_MEM.
456 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
457 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
458 function.
459 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
460 Use atomic operation when removing first element of list.
461
96c06e08
JJ
4622007-10-17 Jakub Jelinek <jakub@redhat.com>
463
464 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
465 routine instead of an alias to __new_sem_post.
466
e807818b
JJ
4672007-10-15 Jakub Jelinek <jakub@redhat.com>
468
469 * init.c (__pthread_initialize_minimal): Initialize word to appease
470 valgrind.
471
59d430c6
UD
4722007-10-10 Jakub Jelinek <jakub@redhat.com>
473
474 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
475 libc.so just clear NAME.
476 (__libc_rwlock_fini): Nop inside of libc.so.
477 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
478 all zeros.
479
221d9d8e
UD
4802007-09-02 Ulrich Drepper <drepper@redhat.com>
481
482 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
483 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
484 unlocking failed.
485 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
486
2a01ce56
UD
4872007-08-21 Ulrich Drepper <drepper@redhat.com>
488
489 [BZ #4938]
490 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
491 reclaimed stack if necessary.
492 * Makefile (tests): Add tst-tsd6.
493 * tst-tsd6.c: New file.
494
c273641b
JJ
4952007-08-21 Jakub Jelinek <jakub@redhat.com>
496
497 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
498 Add private argument.
499
fb84593c
UD
5002007-08-20 Ulrich Drepper <drepper@redhat.com>
501
502 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
503 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
504
3e8d1eab
JJ
5052007-08-16 Jakub Jelinek <jakub@redhat.com>
506
507 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
508 (__lll_robust_timedlock): Pass private as last argument to
509 __lll_robust_timedlock_wait.
510 (__lll_unlock): Fix a pasto.
511
e4720b0e
JJ
5122007-08-15 Jakub Jelinek <jakub@redhat.com>
513
514 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
515 sparc_old_sem): New structs.
516 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
517 (__sem_wait_cleanup): New function.
518 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
519 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
520 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
521 lll_futex_wait.
522 (__old_sem_wait): New function.
523 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
524 nptl/sysdeps/unix/sysv/linux/sparc version.
525 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
526 Likewise.
527 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
528 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
529 (__new_sem_trywait): Use sparc_old_sem structure.
530 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
531 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
532 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
533 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
534 lll_futex_timed_wait.
535 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
536 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
537 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
538 lll_futex_wake.
539 (__old_sem_post): New function.
540 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
541 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
542 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
543 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
544 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
545 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
546
d13f4a43
UD
5472007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
548
549 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
550 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
551 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
552 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
553 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
554 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
555 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
556 Use FUTEX_WAKE_OP.
557 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
558 kernel-features.h and tcb-offsets.h.
559 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
560 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
561 process private.
562 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
563 tcb-offsets.h.
564 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
565 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
566 process private.
567 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
568 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
569 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
570 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
571 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
572 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
573 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
574
702a9414
JJ
5752007-08-14 Jakub Jelinek <jakub@redhat.com>
576
467d1345
JJ
577 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
578 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
579 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
580 lll_futex_timed_wait.
581
702a9414
JJ
582 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
583 __lll_robust_unlock): Rewrite as macros instead of inline functions.
584 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
585 __lll_robust_unlock, __lll_wait_tid): Likewise.
586
22502ea2
UD
5872007-08-13 Jakub Jelinek <jakub@redhat.com>
588
589 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
590 Fix a pasto.
591 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
592 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
593 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
594 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
595 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
596 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
597 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
598 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
599 kernel-features.h.
600 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
601 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
602 process private. Switch DW_CFA_advance_loc1 and some
603 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
604 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
605 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
606 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
607 process private. Switch DW_CFA_advance_loc{1,2} and some
608 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
609 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
610 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
611 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
612 Likewise.
613 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
614 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
615 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
616 Likewise.
617 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
618 (__pthread_cond_broadcast): Compare %r8 instead of
619 dep_mutex-cond_*(%rdi) with $-1.
620 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
621 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
622 of oring.
623
4baf59ad
UD
6242007-08-13 Ulrich Drepper <drepper@redhat.com>
625
626 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
627
9c6f6953
UD
6282007-08-13 Jakub Jelinek <jakub@redhat.com>
629
630 * allocatestack.c: Include kernel-features.h.
631 * pthread_create.c: Likewise.
632 * pthread_mutex_init.c: Likewise.
633 * init.c: Likewise.
634 * pthread_cond_timedwait.c: Likewise.
635 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
636 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
637 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
638 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
639 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
640 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
641 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
642 Likewise.
643 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
644 Likewise.
645 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
646 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
647 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
648 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
649
974a1f0f
UD
6502007-08-12 Jakub Jelinek <jakub@redhat.com>
651
652 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
653 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
654 byte elements. One of them is the new __shared element.
655 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
656 adjust names of other padding elements.
657 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
658 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
659 byte elements. One of them is the new __shared element.
660 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
661 adjust names of other padding elements.
662 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
663 Renamed __pad1 element to __shared, adjust names of other padding
664 elements.
665 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
666 (pthread_rwlock_t): Likewise.
667 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
668 typo.
669
6702007-08-09 Anton Blanchard <anton@samba.org>
671
672 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
673
f47e2626
UD
6742007-08-12 Ulrich Drepper <drepper@redhat.com>
675
676 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
677 <kernel-features.h>.
678 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
679
5bd8a249
UD
6802007-08-11 Ulrich Drepper <drepper@redhat.com>
681
682 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
683 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
684 dealing with robust mutexes.
685 * pthread_mutex_timedlock.c: Likewise.
686 * pthread_mutex_trylock.c: Likewise.
687 * pthread_mutex_unlock.c: Likewise.
688 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
689
6902007-08-06 Jakub Jelinek <jakub@redhat.com>
691
692 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
693 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
694 (PTHREAD_MUTEX_PSHARED): Define.
695 * pthread_mutex_init.c (__pthread_mutex_init): Set
696 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
697 mutexes.
698 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
699 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
700 as second argument to lll_lock.
701 (LLL_MUTEX_TRYLOCK): Take mutex as argument
702 instead of its __data.__lock field.
703 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
704 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
705 to lll_robust_lock.
706 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
707 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
708 instead of mutex->__data.__kind directly, pass
709 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
710 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
711 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
712 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
713 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
714 to lll_timedlock, lll_robust_timedlock, lll_unlock and
715 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
716 of mutex->__data.__kind directly.
717 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
718 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
719 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
720 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
721 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
722 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
723 and lll_futex_wake.
724 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
725 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
726 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
727 directly.
728 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
729 Take mutex as argument instead of its __data.__lock field, pass
730 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
731 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
732 __data.__lock field.
733 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
734 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
735 to lll_robust_cond_lock.
736 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
737 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
738 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
739 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
740 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
741 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
742 lll_futex_wait.
743 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
744 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
745 lll_futex_wake.
746 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
747 pshared variable, pass it to lll_lock, lll_unlock,
748 lll_futex_timedwait and lll_futex_wake.
749 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
750 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
751 and lll_futex_wake.
752 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
753 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
754 macro.
755 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
756 lll_futex_wake_unlock): Likewise.
757 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
758 Likewise.
759 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
760 lll_futex_wake_unlock): Likewise.
761 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
762 Likewise.
763 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
764 lll_futex_wake_unlock): Likewise.
765 (lll_futex_wake): Fix a typo.
766 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
767 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
768 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
769 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
770 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
771 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
772 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
773 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
774 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
775 (__pthread_cond_timedwait): Likewise.
776 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
777 (__condvar_cleanup, __pthread_cond_wait): Likewise.
778
0470fa46
JJ
7792007-08-05 Jakub Jelinek <jakub@redhat.com>
780
781 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
782 Don't use CGOTSETUP and CGOTRESTORE macros.
783 (CGOTSETUP, CGOTRESTORE): Remove.
784 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
785 @local symbol.
786
64f6281c
UD
7872007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
788
789 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
790 definitions for private futexes.
791 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
792 kernel-features.h and lowlevellock.h. Use private futexes if
793 they are available.
794 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
795 (__lll_mutex_lock_wait): Rename to
796 (__lll_lock_wait): ... this. Don't compile in for libc.so.
797 (__lll_mutex_timedlock_wait): Rename to ...
798 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
799 Don't compile in for libc.so.
800 (__lll_mutex_unlock_wake): Rename to ...
801 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
802 (__lll_timedwait_tid): Use __NR_gettimeofday.
803 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
804 the header from assembler. Renamed all lll_mutex_* resp.
805 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
806 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
807 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
808 Define.
809 (__lll_lock_wait_private): Add prototype.
810 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
811 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
812 __lll_unlock_wake): Likewise.
813 (lll_lock): Add private argument. Call __lll_lock_wait_private
814 if private is constant LLL_PRIVATE.
815 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
816 lll_timedlock, lll_robust_timedlock): Add private argument.
817 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
818 if private is constant LLL_PRIVATE.
819 (lll_robust_unlock, lll_robust_dead): Add private argument.
820 (lll_lock_t): Remove.
821 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
822 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
823 lll_cond_wake, lll_cond_broadcast): Remove.
824 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
825 kernel-features.h and lowlevellock.h.
826 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
827 (LOAD_FUTEX_WAIT): Define.
828 (__lll_robust_mutex_lock_wait): Rename to ...
829 (__lll_robust_lock_wait): ... this. Add private argument.
830 Use LOAD_FUTEX_WAIT macro.
831 (__lll_robust_mutex_timedlock_wait): Rename to ...
832 (__lll_robust_timedlock_wait): ... this. Add private argument.
833 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
834 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
835 lowlevellock.h.
836 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
837 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
838 __lll_mutex_{lock,unlock}_*.
839 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
840 lowlevellock.h and pthread-errnos.h.
841 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
842 FUTEX_CMP_REQUEUE, EINVAL): Remove.
843 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
844 __lll_mutex_{lock,unlock}_*.
845 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
846 lowlevellock.h and pthread-errnos.h.
847 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
848 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
849 __lll_mutex_{lock,unlock}_*.
850 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
851 lowlevellock.h.
852 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
853 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
854 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
855 (__condvar_tw_cleanup): Likewise.
856 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
857 lowlevellock.h.
858 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
859 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
860 __lll_mutex_{lock,unlock}_*.
861 ( __condvar_w_cleanup): Likewise.
862 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
863 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
864 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
865 lowlevellock.h.
866 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
867 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
868 __lll_mutex_{lock,unlock}_*.
869 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
870 lowlevellock.h.
871 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
872 FUTEX_PRIVATE_FLAG): Remove.
873 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
874 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
875 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
876 lowlevellock.h.
877 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
878 FUTEX_PRIVATE_FLAG): Remove.
879 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
880 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
881 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
882 lowlevellock.h.
883 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
884 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
885 __lll_mutex_{lock,unlock}_*.
886 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
887 lowlevellock.h.
888 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
889 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
890 __lll_mutex_{lock,unlock}_*.
891 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
892 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
893 (__new_sem_post): Use standard initial exec code sequences.
894 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
895 lowlevellock.h.
896 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
897 FUTEX_PRIVATE_FLAG): Remove.
898 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
899 exec code sequences.
900 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
901 (__new_sem_trywait): Use standard initial exec code sequences.
902 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
903 (__new_sem_wait): Use standard initial exec code sequences.
904
e51deae7
UD
9052007-07-31 Anton Blanchard <anton@samba.org>
906
907 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
908 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
909 atomic_full_barrier.
910
9112007-07-31 Jakub Jelinek <jakub@redhat.com>
912
913 * allocatestack.c (stack_cache_lock): Change type to int.
914 (get_cached_stack, allocate_stack, __deallocate_stack,
915 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
916 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
917 as second argument to lll_lock and lll_unlock macros on
918 stack_cache_lock.
919 * pthread_create.c (__find_in_stack_list): Likewise.
920 (start_thread): Similarly with pd->lock. Use lll_robust_dead
921 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
922 as second argument.
923 * descr.h (struct pthread): Change lock and setxid_futex field
924 type to int.
925 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
926 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
927 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
928 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
929 Likewise.
930 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
931 * pthread_cond_init.c (__pthread_cond_init): Likewise.
932 * pthreadP.h (__attr_list_lock): Change type to int.
933 * pthread_attr_init.c (__attr_list_lock): Likewise.
934 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
935 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
936 lll_{,un}lock.
937 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
938 also for lll_futex_{wake,wait}.
939 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
940 a pointer to const.
941 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
942 LLL_SHARED as second argument to lll_{,un}lock.
943 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
944 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
945 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
946 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
947 Likewise.
948 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
949 as second argument to lll_{,un}lock macros on pd->lock.
950 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
951 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
952 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
953 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
954 Likewise.
955 * sysdeps/pthread/createthread.c (do_clone, create_thread):
956 Likewise.
957 * pthread_once.c (once_lock): Change type to int.
958 (__pthread_once): Pass LLL_PRIVATE as second argument to
959 lll_{,un}lock macros on once_lock.
960 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
961 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
962 rwlock->__data.__shared as second argument to them and similarly
963 for lll_futex_w*.
964 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
965 Likewise.
966 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
967 Likewise.
968 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
969 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
970 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
971 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
972 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
973 to lll_{,un}lock macros on __sem_mappings_lock.
974 * sem_open.c (check_add_mapping): Likewise.
975 (__sem_mappings_lock): Change type to int.
976 * semaphoreP.h (__sem_mappings_lock): Likewise.
977 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
978 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
979 instead of lll_*mutex_*, pass LLL_SHARED as last
980 argument.
981 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
982 pass LLL_SHARED as last argument.
983 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
984 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
985 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
986 pass LLL_SHARED as last argument.
987 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
988 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
989 LLL_SHARED as last argument.
990 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
991 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
992 Similarly.
993 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
994 __libc_lock_lock_recursive, __libc_lock_unlock,
995 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
996 argument to lll_{,un}lock.
997 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
998 _IO_lock_unlock): Likewise.
999 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
1000 compound literal.
1001 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1002 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
1003 __fork_lock.
1004 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
1005 free_mem): Likewise.
1006 (__fork_lock): Change type to int.
1007 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
1008 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
1009 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
1010 lll_futex_wake.
1011 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
1012 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
1013 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
1014 New function.
1015 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
1016 pass it through to lll_futex_*wait, only compile in when
1017 IS_IN_libpthread.
1018 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1019 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
1020 argument and pass it through to lll_futex_*wait.
1021 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
1022 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
1023 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
1024 inline functions to __lll_* resp. __lll_robust_*.
1025 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
1026 (lll_mutex_dead): Add private argument.
1027 (__lll_lock_wait_private): New prototype.
1028 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
1029 __lll_robust_lock_timedwait): Add private argument to prototypes.
1030 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
1031 call __lll_lock_wait_private, otherwise pass private to
1032 __lll_lock_wait.
1033 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
1034 __lll_robust_timedlock): Add private argument, pass it to
1035 __lll_*wait functions.
1036 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
1037 call __lll_unlock_wake_private, otherwise pass private to
1038 __lll_unlock_wake.
1039 (__lll_robust_unlock): Add private argument, pass it to
1040 __lll_robust_unlock_wake.
1041 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
1042 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
1043 argument, pass it through to __lll_* inline function.
1044 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
1045 (lll_lock_t): Remove.
1046 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1047 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1048 lll_cond_wake, lll_cond_broadcast): Remove.
1049 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1050 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1051 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1052 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1053 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
1054 the header from assembler. Renamed all lll_mutex_* resp.
1055 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1056 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
1057 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
1058 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
1059 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
1060 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
1061 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
1062 Remove prototype.
1063 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
1064 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
1065 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
1066 (lll_trylock): Likewise, use __lll_trylock_asm, pass
1067 MULTIPLE_THREADS_OFFSET as another asm operand.
1068 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
1069 MULTIPLE_THREADS_OFFSET as last asm operand, call
1070 __lll_lock_wait_private if private is constant LLL_PRIVATE,
1071 otherwise pass private as another argument to __lll_lock_wait.
1072 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1073 lll_timedlock, lll_robust_timedlock): Add private argument, pass
1074 private as another argument to __lll_*lock_wait call.
1075 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
1076 MULTIPLE_THREADS_OFFSET as another asm operand, call
1077 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
1078 otherwise pass private as another argument to __lll_unlock_wake.
1079 (lll_robust_unlock): Add private argument, pass private as another
1080 argument to __lll_unlock_wake.
1081 (lll_robust_dead): Add private argument, use __lll_private_flag
1082 macro.
1083 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
1084 LLL_MUTEX_LOCK_INITIALIZER.
1085 (lll_lock_t): Remove.
1086 (LLL_LOCK_INITIALIZER_WAITERS): Define.
1087 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1088 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1089 lll_cond_wake, lll_cond_broadcast): Remove.
1090 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1091 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
1092 2007-05-2{3,9} changes.
1093 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
1094 kernel-features.h and lowlevellock.h.
1095 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1096 (LOAD_FUTEX_WAIT): Rewritten.
1097 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1098 define.
1099 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1100 (__lll_mutex_lock_wait): Rename to ...
1101 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
1102 %ecx, %ecx is now private argument. Don't compile in for libc.so.
1103 (__lll_mutex_timedlock_wait): Rename to ...
1104 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
1105 contains private argument. Don't compile in for libc.so.
1106 (__lll_mutex_unlock_wake): Rename to ...
1107 (__lll_unlock_wake): ... this. %ecx contains private argument.
1108 Don't compile in for libc.so.
1109 (__lll_timedwait_tid): Use __NR_gettimeofday.
1110 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
1111 kernel-features.h and lowlevellock.h.
1112 (LOAD_FUTEX_WAIT): Define.
1113 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1114 define.
1115 (__lll_robust_mutex_lock_wait): Rename to ...
1116 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
1117 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
1118 macro.
1119 (__lll_robust_mutex_timedlock_wait): Rename to ...
1120 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
1121 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
1122 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
1123 lowlevellock.h.
1124 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1125 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1126 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
1127 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
1128 to __lll_lock_wait in %edx.
1129 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1130 Include lowlevellock.h and pthread-errnos.h.
1131 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1132 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1133 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
1134 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1135 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1136 __lll_unlock_wake.
1137 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1138 Include lowlevellock.h and pthread-errnos.h.
1139 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1140 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1141 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
1142 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1143 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1144 __lll_unlock_wake.
1145 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1146 Include lowlevellock.h.
1147 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1148 Don't define.
1149 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
1150 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1151 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1152 __lll_unlock_wake. Use __NR_gettimeofday.
1153 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1154 Include lowlevellock.h.
1155 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1156 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
1157 to __lll_*, pass cond_lock address in %edx rather than %ecx to
1158 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
1159 and __lll_unlock_wake.
1160 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1161 Include lowlevellock.h.
1162 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1163 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
1164 MUTEX(%ebx) address in %edx rather than %ecx to
1165 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1166 and __lll_unlock_wake. Move return value from %ecx to %edx
1167 register.
1168 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1169 Include lowlevellock.h.
1170 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1171 Don't define.
1172 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1173 MUTEX(%ebp) address in %edx rather than %ecx to
1174 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1175 and __lll_unlock_wake. Move return value from %ecx to %edx
1176 register. Use __NR_gettimeofday.
1177 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1178 Include lowlevellock.h.
1179 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1180 Don't define.
1181 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1182 MUTEX(%ebp) address in %edx rather than %ecx to
1183 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1184 and __lll_unlock_wake. Move return value from %ecx to %edx
1185 register. Use __NR_gettimeofday.
1186 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1187 Include lowlevellock.h.
1188 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1189 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
1190 MUTEX(%edi) address in %edx rather than %ecx to
1191 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
1192 and __lll_unlock_wake.
1193 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1194 Include lowlevellock.h.
1195 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1196 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1197 MUTEX(%ebx) address in %edx rather than %ecx to
1198 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1199 and __lll_unlock_wake. Move return value from %ecx to %edx
1200 register.
1201 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
1202 lowlevellock.h.
1203 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1204 define.
1205 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
1206 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1207 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
1208 lowlevellock.h.
1209 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
1210 (sem_timedwait): Use __NR_gettimeofday.
1211 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
1212 lowlevellock.h.
1213 (LOCK): Don't define.
1214 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
1215 lowlevellock.h.
1216 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1217 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
1218 are waiters.
1219 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
1220 2007-05-2{3,9} changes.
1221 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
1222 kernel-features.h and lowlevellock.h.
1223 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1224 (LOAD_FUTEX_WAIT): Rewritten.
1225 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1226 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1227 (__lll_mutex_lock_wait): Rename to ...
1228 (__lll_lock_wait): ... this. %esi is now private argument.
1229 Don't compile in for libc.so.
1230 (__lll_mutex_timedlock_wait): Rename to ...
1231 (__lll_timedlock_wait): ... this. %esi contains private argument.
1232 Don't compile in for libc.so.
1233 (__lll_mutex_unlock_wake): Rename to ...
1234 (__lll_unlock_wake): ... this. %esi contains private argument.
1235 Don't compile in for libc.so.
1236 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
1237 kernel-features.h and lowlevellock.h.
1238 (LOAD_FUTEX_WAIT): Define.
1239 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1240 (__lll_robust_mutex_lock_wait): Rename to ...
1241 (__lll_robust_lock_wait): ... this. %esi argument contains private.
1242 Use LOAD_FUTEX_WAIT macro.
1243 (__lll_robust_mutex_timedlock_wait): Rename to ...
1244 (__lll_robust_timedlock_wait): ... this. %esi argument contains
1245 private, use LOAD_FUTEX_WAIT macro.
1246 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
1247 lowlevellock.h.
1248 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1249 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1250 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
1251 __lll_lock_wait and __lll_unlock_wake.
1252 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
1253 Include lowlevellock.h and pthread-errnos.h.
1254 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1255 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1256 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
1257 pass LLL_SHARED in %esi to both __lll_lock_wait and
1258 __lll_unlock_wake.
1259 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
1260 Include lowlevellock.h and pthread-errnos.h.
1261 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1262 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1263 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
1264 pass LLL_SHARED in %esi to both __lll_lock_wait and
1265 __lll_unlock_wake.
1266 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
1267 Include lowlevellock.h.
1268 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1269 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
1270 pass LLL_SHARED in %esi to both __lll_lock_wait and
1271 __lll_unlock_wake.
1272 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1273 Include lowlevellock.h.
1274 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1275 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
1276 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
1277 and __lll_unlock_wake.
1278 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1279 Include lowlevellock.h.
1280 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1281 Don't define.
1282 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
1283 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1284 and __lll_unlock_wake.
1285 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1286 Include lowlevellock.h.
1287 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1288 Don't define.
1289 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1290 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1291 and __lll_unlock_wake.
1292 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1293 Include lowlevellock.h.
1294 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1295 Don't define.
1296 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1297 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1298 and __lll_unlock_wake.
1299 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1300 Include lowlevellock.h.
1301 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1302 Don't define.
1303 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
1304 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1305 and __lll_unlock_wake.
1306 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1307 Include lowlevellock.h.
1308 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1309 Don't define.
1310 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1311 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
1312 and __lll_unlock_wake.
1313 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
1314 lowlevellock.h.
1315 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1316 define.
1317 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
1318 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1319 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
1320 lowlevellock.h.
1321 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1322 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
1323 lowlevellock.h.
1324 (LOCK): Don't define.
1325 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
1326 lowlevellock.h.
1327 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1328 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
1329 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
1330 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
1331 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
1332 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
1333 (__lll_lock_wait_private): New function.
1334 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
1335 it to lll_futex_*wait. Don't compile in for libc.so.
1336 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
1337 Remove.
1338 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
1339 (struct sparc_pthread_barrier): Remove.
1340 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
1341 struct sparc_pthread_barrier. Pass
1342 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
1343 and lll_futex_wait macros.
1344 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
1345 Remove.
1346 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1347 Include sparc pthread_barrier_wait.c instead of generic one.
1348
6f59d56e
UD
13492007-07-30 Jakub Jelinek <jakub@redhat.com>
1350
1475e201
UD
1351 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
1352
6f59d56e
UD
1353 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
1354 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
1355 %ecx.
1356 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
1357 (pthread_rwlock_timedwrlock): Likewise.
1358 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
1359 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
1360
558f0300
JJ
13612007-07-31 Jakub Jelinek <jakub@redhat.com>
1362
1363 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
1364
cedb4109
UD
13652007-07-26 Jakub Jelinek <jakub@redhat.com>
1366
1367 * tst-locale2.c (useless): Add return statement.
1368
085a4412
UD
13692007-07-24 Jakub Jelinek <jakub@redhat.com>
1370
1371 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
1372 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
1373 * pthread_create.c (start_thread): Likewise.
1374 * init.c (sighandler_setxid): Likewise.
1375 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1376 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1377 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1378 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1379 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1380 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1381 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1382 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1383 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1384 Likewise.
1385 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1386 Likewise.
1387 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1388 Likewise.
1389 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1390 __rtld_notify): Likewise.
1391 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1392 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1393 __pthread_once): Likewise.
1394 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1395 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1396 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1397 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1398 (lll_futex_wait): Add private argument, define as wrapper around
1399 lll_futex_timed_wait.
1400 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1401 use __lll_private_flag macro.
1402 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1403 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1404 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1405 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1406 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1407 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1408 (lll_futex_wait): Add private argument, define as wrapper around
1409 lll_futex_timed_wait.
1410 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1411 use __lll_private_flag macro.
1412 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1413 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1414 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1415 Define.
1416 (lll_futex_timed_wait, lll_futex_wake): Use it.
1417 (lll_private_futex_wait, lll_private_futex_timed_wait,
1418 lll_private_futex_wake): Removed.
1419 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1420 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1421 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1422 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1423 (lll_futex_wait): Add private argument, define as wrapper around
1424 lll_futex_timed_wait.
1425 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1426 use __lll_private_flag macro.
1427 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1428 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1429 to lll_futex_*.
1430 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1431 (lll_private_futex_wait, lll_private_futex_timed_wait,
1432 lll_private_futex_wake): Removed.
1433 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1434 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1435 (lll_private_futex_wait, lll_private_futex_timed_wait,
1436 lll_private_futex_wake): Removed.
1437 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1438 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1439 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1440 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1441 (lll_futex_wait): Add private argument, define as wrapper around
1442 lll_futex_timed_wait.
1443 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1444 use __lll_private_flag macro.
1445 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1446 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1447 to lll_futex_*.
1448 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1449 Define.
1450 (lll_futex_timed_wait, lll_futex_wake): Use it.
1451 (lll_private_futex_wait, lll_private_futex_timed_wait,
1452 lll_private_futex_wake): Removed.
1453
ef0af159
JJ
14542007-07-27 Jakub Jelinek <jakub@redhat.com>
1455
1456 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1457 of the structure for sparc32.
1458
14592007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1460
1461 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1462
eb4f5909
UD
14632007-07-23 Ulrich Drepper <drepper@redhat.com>
1464
1465 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1466 code used when private futexes are assumed.
1467 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1468 Likewise.
1469
b5f13526
UD
14702007-07-23 Jakub Jelinek <jakub@redhat.com>
1471
1472 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1473 (__lll_private_flag): Define.
1474 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1475 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1476 __lll_private_flag.
1477 (lll_private_futex_wait, lll_private_futex_timedwait,
1478 lll_private_futex_wake): Define as wrapper around non-_private
1479 macros.
1480 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1481 (__lll_private_flag): Define.
1482 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1483 (lll_private_futex_wait, lll_private_futex_timedwait,
1484 lll_private_futex_wake): Define as wrapper around non-_private
1485 macros.
1486
eb7721f2
UD
14872007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1488
1489 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1490 parameter to lll_futex_wait call.
1491 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1492
1493 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1494 Replace lll_futex_wait with lll_private_futex_wait.
1495 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1496 Add LLL_SHARED parameter to lll_futex_wake().
1497
1498 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1499 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1500 lll_private_futex_wake.
1501 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1502 bit from private parm before syscall.
1503 (lll_futex_timed_wait): Likewise.
1504 (lll_futex_wake): Likewise.
1505 (lll_futex_wake_unlock): Likewise.
1506 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1507 (lll_robust_mutex_unlock): Likewise.
1508 (lll_mutex_unlock_force): Likewise.
1509 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1510
defc45f2
UD
15112007-07-23 Ulrich Drepper <drepper@redhat.com>
1512
1513 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1514 compilation when unconditionally using private futexes.
1515 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1516 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1517 Likewise.
1518 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1519 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1520
087722b8
UD
15212007-07-17 Jakub Jelinek <jakub@redhat.com>
1522
1523 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1524 Define.
1525
765c6b0c
UD
15262007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1527
1528 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1529 kernel-features.h.
1530
7d9d8bd1
RM
15312007-05-16 Roland McGrath <roland@redhat.com>
1532
1533 * init.c (__nptl_initial_report_events): New variable.
1534 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1535 to that.
1536
a4915df2
UD
15372007-06-22 Jakub Jelinek <jakub@redhat.com>
1538
1539 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1540 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1541
e4eb675d
UD
15422007-06-19 Ulrich Drepper <drepper@redhat.com>
1543
1544 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1545 implementation.
1546
ae1ad3ae
UD
15472007-06-18 Ulrich Drepper <drepper@redhat.com>
1548
1549 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1550 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1551 * pthread_mutex_timedlock.c: Likewise.
1552 * pthread_mutex_trylock.c: Likewise.
1553 * pthread_mutex_unlock.c: Likewise.
1554
89074592
UD
15552007-06-17 Andreas Schwab <schwab@suse.de>
1556
1557 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1558 sections.
1559
d4201cc4
UD
15602007-06-17 Ulrich Drepper <drepper@redhat.com>
1561
1562 * allocatestack.c (allocate_stack): Make code compile if
1563 __ASSUME_PRIVATE_FUTEX is set.
1564
339dbf0e
UD
15652007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1566
1567 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1568 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1569 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1570 (__pthread_rwlock_wrlock): Likewise.
1571 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1572 (pthread_rwlock_timedrdlock): Likewise.
1573 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1574 (pthread_rwlock_timedwrlock): Likewise.
1575 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1576 (__pthread_rwlock_unlock): Likewise.
1577
15782007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1579
1580 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1581 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1582 Split __flags into __flags, __shared, __pad1 and __pad2.
1583 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1584 futexes if they are available.
1585 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1586 in libc-lowlevellock.S allow using private futexes.
1587 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1588 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1589 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1590 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1591 lll_private_futex_timed_wait and lll_private_futex_wake.
1592 (lll_robust_mutex_unlock): Fix typo.
1593 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1594 field in futex command setup.
1595 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1596 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1597 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1598 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1599 if they are available. Remove clear_once_control.
1600 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1601 futexes if they are available.
1602 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1603 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1604 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1605 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1606 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1607 Wake only when there are waiters.
1608 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1609 support. Indicate that there are waiters. Remove unnecessary
1610 extra cancellation test.
1611 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1612 left-over duplication of __sem_wait_cleanup.
1613
26f56c1c
UD
16142007-06-07 Ulrich Drepper <drepper@redhat.com>
1615
1616 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1617 parameter to lll_futex_wait, lll_futex_timed_wait, and
1618 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1619 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1620 lll_private_futex_wake.
1621 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1622 * allocatestack.c: Adjust use of lll_futex_* macros.
1623 * init.c: Likewise.
1624 * lowlevellock.h: Likewise.
1625 * pthread_barrier_wait.c: Likewise.
1626 * pthread_cond_broadcast.c: Likewise.
1627 * pthread_cond_destroy.c: Likewise.
1628 * pthread_cond_signal.c: Likewise.
1629 * pthread_cond_timedwait.c: Likewise.
1630 * pthread_cond_wait.c: Likewise.
1631 * pthread_create.c: Likewise.
1632 * pthread_mutex_lock.c: Likewise.
1633 * pthread_mutex_setprioceiling.c: Likewise.
1634 * pthread_mutex_timedlock.c: Likewise.
1635 * pthread_mutex_unlock.c: Likewise.
1636 * pthread_rwlock_timedrdlock.c: Likewise.
1637 * pthread_rwlock_timedwrlock.c: Likewise.
1638 * pthread_rwlock_unlock.c: Likewise.
1639 * sysdeps/alpha/tls.h: Likewise.
1640 * sysdeps/i386/tls.h: Likewise.
1641 * sysdeps/ia64/tls.h: Likewise.
1642 * sysdeps/powerpc/tls.h: Likewise.
1643 * sysdeps/pthread/aio_misc.h: Likewise.
1644 * sysdeps/pthread/gai_misc.h: Likewise.
1645 * sysdeps/s390/tls.h: Likewise.
1646 * sysdeps/sh/tls.h: Likewise.
1647 * sysdeps/sparc/tls.h: Likewise.
1648 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1649 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1650 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1651 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1652 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1653 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1654 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1655 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1656 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1657 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1658 Likewise.
1659 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1660 * sysdeps/x86_64/tls.h: Likewise.
1661
ee5d5755
UD
16622007-05-29 Ulrich Drepper <drepper@redhat.com>
1663
b03b0c29
UD
1664 * pthread_getattr_np.c: No need to install a cancellation handler,
1665 this is no cancellation point.
1666 * pthread_getschedparam.c: Likewise.
1667 * pthread_setschedparam.c: Likewise.
1668 * pthread_setschedprio.c: Likewise.
1669 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1670 lll_unlock_wake_cb.
1671 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1672 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1673 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1674 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1675 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1676 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1677 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1678 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1679 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1680 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1681 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1682 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1683
0154658d
UD
1684 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1685 whether there are more than one thread makes no sense here since
1686 we only call the slow path if the locks are taken.
1687 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1688
ee5d5755
UD
1689 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1690 COND_NWAITERS_SHIFT.
1691 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1692 COND_CLOCK_BITS.
1693 * pthread_cond_init.c: Likewise.
1694 * pthread_cond_timedwait.c: Likewise.
1695 * pthread_cond_wait.c: Likewise.
1696 * pthread_condattr_getclock.c: Likewise.
1697 * pthread_condattr_setclock.c: Likewise.
1698 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1699 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1700 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1701 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1702 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1703
991fa82b
UD
17042007-05-28 Jakub Jelinek <jakub@redhat.com>
1705
40f57573
UD
1706 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1707 unistd.h.
1708
991fa82b
UD
1709 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1710 insn suffix.
1711 (THREAD_GSCOPE_GET_FLAG): Remove.
1712 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1713 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1714 changes.
1715 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1716 (THREAD_GSCOPE_GET_FLAG): Remove.
1717 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1718 instead of THREAD_GSCOPE_GET_FLAG.
1719 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1720 it.
1721 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1722 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1723 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1724 THREAD_GSCOPE_WAIT): Define.
1725 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1726 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1727 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1728 THREAD_GSCOPE_WAIT): Define.
1729 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1730 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1731 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1732 THREAD_GSCOPE_WAIT): Define.
1733 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1734 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1735 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1736 THREAD_GSCOPE_WAIT): Define.
1737
17382007-05-24 Richard Henderson <rth@redhat.com>
1739
1740 * descr.h (struct pthread): Add header.gscope_flag.
1741 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1742 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1743 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1744 THREAD_GSCOPE_WAIT): Define.
1745
e59660bc
UD
17462007-05-27 Ulrich Drepper <drepper@redhat.com>
1747
1748 * init.c: Make it compile with older kernel headers.
1749
1750 * tst-initializers1.c: Show through exit code which test failed.
1751
1752 * pthread_rwlock_init.c: Also initialize __shared field.
1753 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1754 element in rwlock structure into four byte elements. One of them is
1755 the new __shared element.
1756 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1757 Likewise.
cd0dbd89 1758 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1759 __shared, adjust names of other padding elements.
1760 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1761 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1762 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1763 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1764 FUTEX_PRIVATE_FLAG.
1765 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1766 futex to use private operations if possible.
1767 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1768 Likewise.
1769 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1770 Likewise.
1771 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1772 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1773 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1774 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1775 Likewise.
1776 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1777 Likewise.
1778 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1779 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1780
d8ff3792
UD
17812007-05-26 Ulrich Drepper <drepper@redhat.com>
1782
546346b6
UD
1783 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1784 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1785 * pthread_rwlock_timedrdlock.c: Likewise.
1786 * pthread_rwlock_tryrdlock.c: Likewise.
1787
a2dd3360
UD
1788 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1789 optimization.
1790
6df7ffad
UD
1791 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1792 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1793 duplication of __sem_wait_cleanup.
1794
1795 * allocatestack.c: Revert last change.
1796 * init.c: Likewise.
1797 * sysdeps/i386/tls.h: Likewise.
1798 * sysdeps/x86_64/tls.h: Likewise.
1799 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1800 header structure.
1801 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1802
d8ff3792
UD
1803 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1804 Add private field.
1805 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1806 * pthread_barrier_init.c: Set private flag if pshared and private
1807 futexes are supported.
1808 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1809 private field in futex command setup.
1810 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1811
3d2dd6ca
UD
18122007-05-25 Ulrich Drepper <drepper@redhat.com>
1813
42e6c665
UD
1814 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1815 support.
1816 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1817 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1818 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1819 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1820 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1821
3d2dd6ca
UD
1822 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1823 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1824 fields in the structure.
1825 (__old_sem_init): New function.
1826 * sem_open.c: Initialize all fields of the structure.
1827 * sem_getvalue.c: Adjust for renamed element.
1828 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1829 (gen-as-const-headers): Add structsem.sym.
1830 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1831 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1832 struct new_sem. Add struct old_sem.
1833 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1834 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1835 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1836 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1837 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1838 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1839 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1840 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1841 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1842 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1843 * tst-sem10.c: New file.
1844 * tst-sem11.c: New file.
1845 * tst-sem12.c: New file.
1846 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1847 of struct sem.
1848
20a4d722
JJ
18492007-05-25 Ulrich Drepper <drepper@redhat.com>
1850 Jakub Jelinek <jakub@redhat.com>
1851
1852 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1853 Move __pthread_enable_asynccancel right before futex syscall.
1854 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1855 Likewise.
1856
18572007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1858
1859 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1860 THREAD_COPY_PRIVATE_FUTEX): Define.
1861 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1862 THREAD_COPY_PRIVATE_FUTEX): Define.
1863 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1864 * init.c (__pthread_initialize_minimal_internal): Use
1865 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1866
1867 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1868 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1869 THREAD_GSCOPE_FLAG_WAIT): Define.
1870 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1871 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1872 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1873 PTR_DEMANGLE.
1874 (THREAD_GSCOPE_GET_FLAG): Define.
1875 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1876 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1877 instead of ->header.gscope_flag directly.
1878
5a8075b1
UD
18792007-05-23 Ulrich Drepper <drepper@redhat.com>
1880
1881 * init.c (__pthread_initialize_minimal_internal): Check whether
1882 private futexes are available.
1883 * allocatestack.c (allocate_stack): Copy private_futex field from
1884 current thread into the new stack.
1885 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1886 futexes if they are available.
1887 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1888 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1889 in libc-lowlevellock.S allow using private futexes.
1890 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1891 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1892 FUTEX_PRIVATE_FLAG.
1893 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1894 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1895 if they are available.
1896 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1897 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1898 * sysdeps/i386/tcb-offsets.sym: Likewise.
1899 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1900 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1901
6d59823c
UD
19022007-05-21 Ulrich Drepper <drepper@redhat.com>
1903
1904 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1905 Remove ptr_wait_lookup_done again.
1906 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1907 (__pthread_initialize_minimal_internal): Initialize
1908 _dl_wait_lookup_done pointer in _rtld_global directly.
1909 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1910 Remove code to code _dl_wait_lookup_done.
1911 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1912 encrypted for now.
1913
2c9718f3
JJ
19142007-05-21 Jakub Jelinek <jakub@redhat.com>
1915
1916 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1917 pthread_mutex_init failed with ENOTSUP.
1918
df94b641
UD
19192007-05-19 Ulrich Drepper <drepper@redhat.com>
1920
1921 * allocatestack.c (__wait_lookup_done): New function.
1922 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1923 Add ptr_wait_lookup_done.
1924 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1925 * pthreadP.h: Declare __wait_lookup_done.
1926 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1927 Define macros to implement reference handling of global scope.
1928 * sysdeps/x86_64/tls.h: Likewise.
1929 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1930 Initialize GL(dl_wait_lookup_done).
1931
bec51a30
UD
19322007-05-17 Ulrich Drepper <drepper@redhat.com>
1933
113ad5fc
UD
1934 [BZ #4512]
1935 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1936 is detected.
1937 * pthread_mutex_timedlock.c: Likewise.
1938 * pthread_mutex_trylock.c: Likewise.
1939 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1940
1941 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1942 * tst-robust9.c: New file.
1943 * tst-robustpi9.c: New file.
1944
bec51a30
UD
1945 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1946 unnecessary extra cancellation test.
1947
83d87915
UD
19482007-05-14 Ulrich Drepper <drepper@redhat.com>
1949
83d87915
UD
1950 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
1951 extra cancellation test.
1952 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1953
3771196d
UD
19542007-05-10 Ulrich Drepper <drepper@redhat.com>
1955
341c566f
UD
1956 * descr.h (struct pthread): Rearrange members to fill hole in
1957 64-bit layout.
1958
3771196d
UD
1959 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1960 (__pthread_setaffinity_new): If syscall was successful and
1961 RESET_VGETCPU_CACHE is defined, use it before returning.
1962 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
1963
7d29b542
JJ
19642007-05-10 Jakub Jelinek <jakub@redhat.com>
1965
1966 [BZ #4455]
1967 * tst-align2.c: Include stackinfo.h.
1968 * tst-getpid1.c: Likewise.
1969
16105fe0
UD
19702007-05-02 Carlos O'Donell <carlos@systemhalted.org>
1971
29c113f0
UD
1972 [BZ #4455]
1973 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
1974 * tst-getpid1.c (do_test): Likewise.
1975
16105fe0
UD
1976 [BZ #4456]
1977 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
1978 (allocate_stack): Likewise.
1979
6780bc44
UD
19802007-05-07 Ulrich Drepper <drepper@redhat.com>
1981
1982 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1983 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
1984 (__lll_robust_timedlock_wait): Likewise.
1985 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
1986
aa75f64c
UD
19872007-05-06 Mike Frysinger <vapier@gentoo.org>
1988
15eca720 1989 [BZ #4465]
aa75f64c
UD
1990 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
1991 * tst-cancel4.c (tf_fdatasync): New test.
1992
f672076e
UD
19932007-04-27 Ulrich Drepper <drepper@redhat.com>
1994
1bb5f5a1
UD
1995 [BZ #4392]
1996 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
1997 check mutexes like normal mutexes.
1998
f672076e
UD
1999 [BZ #4306]
2000 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
2001 Initialize the whole sigevent structure to appease valgrind.
2002
bce20b9a
UD
20032007-04-25 Ulrich Drepper <drepper@redhat.com>
2004
2005 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
2006 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
2007
0c786eac
UD
20082007-04-06 Ulrich Drepper <drepper@redhat.com>
2009
2010 * tst-locale1.c: Avoid warnings.
2011 * tst-locale2.c: Likewise.
2012
e1f0c5bc
UD
20132007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
2014
2015 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2016 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
2017
965cba04
UD
20182007-03-16 Jakub Jelinek <jakub@redhat.com>
2019
2020 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
2021 __extern_always_inline where appropriate.
2022 * sysdeps/pthread/pthread.h: Likewise.
2023
a5ea509b
RH
20242007-03-13 Richard Henderson <rth@redhat.com>
2025
2026 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
2027 separate cfi regions for the two subsections.
2028
00a1430e
UD
20292007-02-25 Ulrich Drepper <drepper@redhat.com>
2030
2031 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
2032 new thread, don't just decrement it.
2033 Patch by Suzuki K P <suzuki@in.ibm.com>.
2034
63a2f305
UD
20352007-02-21 Ulrich Drepper <drepper@redhat.com>
2036
2037 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
2038 PTHFCT_CALL definition.
2039
2484468b
UD
20402007-02-18 Ulrich Drepper <drepper@redhat.com>
2041
2042 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
2043 available, don't use it.
2044
5ed61e0f
UD
20452007-02-09 Jakub Jelinek <jakub@redhat.com>
2046
2047 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2048 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
2049 call into the kernel to delay.
2050
10ccaa5c
UD
20512007-01-18 Ulrich Drepper <drepper@redhat.com>
2052
f8a17855
UD
2053 * tst-initializers1.c: We want to test the initializers as seen
2054 outside of libc, so undefined _LIBC.
2055
10ccaa5c
UD
2056 * pthread_join.c (cleanup): Avoid warning.
2057
ea1533e0
UD
20582007-01-17 Ulrich Drepper <drepper@redhat.com>
2059
1476bce6
UD
2060 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2061 (__lll_timedwait_tid): Add unwind info.
2062
ea1533e0
UD
2063 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
2064 function table, mangle the pointers.
2065 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
2066 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
2067 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
2068 demangle pointers before use.
2069 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
2070 demangle pointer.
2071 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
2072 * sysdeps/pthread/setxid.h: Likewise.
2073
8980796b
UD
20742007-01-12 Ulrich Drepper <drepper@redhat.com>
2075
2076 * tst-rwlock7.c: Show some more information in case of correct
2077 behavior.
2078
a1d87b5d
UD
20792007-01-11 Ulrich Drepper <drepper@redhat.com>
2080
2081 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2082 (lll_futex_timed_wait): Undo part of last change, don't negate
2083 return value.
2084
11bf311e 20852007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 2086
11bf311e
UD
2087 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
2088 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 2089
11bf311e 20902006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 2091
11bf311e 2092 * shlib-versions: Fix sparc64 linux target specification.
a744da90 2093
11bf311e 20942007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 2095
11bf311e
UD
2096 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2097 Adjust include path for pthread_barrier_wait.c move.
fc242bef 2098
11bf311e 20992006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 2100
11bf311e
UD
2101 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
2102 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 2103
11bf311e
UD
21042006-12-06 Jakub Jelinek <jakub@redhat.com>
2105
2106 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
2107 6 argument cancellable syscalls.
2108 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
2109 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
2110 6 argument cancellable syscalls.
2111 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 2112
66f17705
UD
21132006-12-09 Ulrich Drepper <drepper@redhat.com>
2114
2115 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
2116 (__rtld_mrlock_initialize): Add missing closing parenthesis.
2117
11bf311e
UD
21182006-10-30 Jakub Jelinek <jakub@redhat.com>
2119
2120 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
2121 __sync_lock_release instead of __sync_lock_release_si.
2122
536e40e2
UD
21232006-10-29 Jakub Jelinek <jakub@redhat.com>
2124
2125 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
2126 Define.
2127 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
2128 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
2129 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
2130 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
2131 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
2132 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2133 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
2134 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2135 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2136 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2137 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
2138
11bf311e
UD
21392006-10-27 Ulrich Drepper <drepper@redhat.com>
2140
2141 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
2142 * pthread_barrier_wait.c: ...here.
2143 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
2144 * pthread_cond_broadcast.c: ...here.
2145 * sysdeps/pthread/pthread_cond_signal.c: Move to...
2146 * pthread_cond_signal.c: ...here.
2147 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
2148 * pthread_cond_timedwait.c: ...here.
2149 * sysdeps/pthread/pthread_cond_wait.c: Move to...
2150 * pthread_cond_wait.c: ...here.
2151 * sysdeps/pthread/pthread_once.c: Move to...
2152 * pthread_once.c: ...here.
2153 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
2154 * pthread_rwlock_rdlock.c: ...here.
2155 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
2156 * pthread_rwlock_timedrdlock.c: ...here.
2157 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
2158 * pthread_rwlock_timedwrlock.c: ...here.
2159 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
2160 * pthread_rwlock_unlock.c: ...here.
2161 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
2162 * pthread_rwlock_wrlock.c: ...here.
2163 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
2164 * pthread_spin_destroy.c: ...here.
2165 * sysdeps/pthread/pthread_spin_init.c: Move to...
2166 * pthread_spin_init.c: ...here.
2167 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
2168 * pthread_spin_unlock.c: ...here.
2169 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
2170 * pthread_getcpuclockid.c: ...here.
2171
2172 * init.c: USE_TLS support is now always enabled.
2173 * tst-tls5.h: Likewise.
2174 * sysdeps/alpha/tls.h: Likewise.
2175 * sysdeps/i386/tls.h: Likewise.
2176 * sysdeps/ia64/tls.h: Likewise.
2177 * sysdeps/powerpc/tls.h: Likewise.
2178 * sysdeps/s390/tls.h: Likewise.
2179 * sysdeps/sh/tls.h: Likewise.
2180 * sysdeps/sparc/tls.h: Likewise.
2181 * sysdeps/x86_64/tls.h: Likewise.
2182
006a8f6f 21832006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
2184
2185 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2186 __rtld_mrlock_change): Update oldval if atomic compare and exchange
2187 failed.
2188
2189 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2190 Define to THREAD_SELF->header.multiple_threads.
2191 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
2192 Likewise.
2193 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
2194 Likewise.
2195 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
2196 (SINGLE_THREAD_P): Likewise.
2197 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2198 (SINGLE_THREAD_P): Likewise.
2199 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2200 (SINGLE_THREAD_P): Likewise.
2201 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2202 (SINGLE_THREAD_P): Likewise.
2203 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
2204 Likewise.
2205 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2206 (SINGLE_THREAD_P): Likewise.
2207 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2208 (SINGLE_THREAD_P): Likewise.
2209 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
2210 Likewise.
2211
11bf311e 22122006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 2213
11bf311e
UD
2214 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
2215 by default rather than 2_3_3.
32c075e1 2216
11bf311e 22172006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 2218
11bf311e
UD
2219 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2220 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
2221 atomic_* instead of catomic_* macros.
2222
22232006-10-12 Ulrich Drepper <drepper@redhat.com>
2224
2225 [BZ #3285]
2226 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
2227 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2228 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2229 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2230 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2231 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
2232 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2233 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2234 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2235 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
2236 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2237 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2238 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2239
22402006-10-11 Ulrich Drepper <drepper@redhat.com>
2241
2242 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
2243 cancelable syscalls with six parameters.
2244
2245 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
2246 operations instead of atomic_*.
32c075e1 2247
11bf311e 22482006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 2249
11bf311e 2250 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 2251
11bf311e 22522006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 2253
11bf311e
UD
2254 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
2255 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
2256 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
2257 New file.
2258 * pthread_attr_setstack.c: Allow overwriting the version number of the
2259 new symbol.
2260 * pthread_attr_setstacksize.c: Likewise.
2261 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
2262 it.
2263 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
2264 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 2265
457b559e
UD
22662006-09-24 Ulrich Drepper <drepper@redhat.com>
2267
2268 [BZ #3251]
2269 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
2270 Patch by Petr Baudis.
2271
0466106e
UD
22722006-09-18 Jakub Jelinek <jakub@redhat.com>
2273
2274 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
2275
2276 * tst-cancel2.c (tf): Loop as long as something was written.
2277
bd6d3b7d
UD
22782006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2279
2280 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
2281 mutexes wake all mutexes.
2282 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
2283 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2284 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2285
30aa5785
UD
22862006-09-12 Ulrich Drepper <drepper@redhat.com>
2287
2288 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
2289 to guarantee the thread is always canceled.
2290
2b6a801e
UD
22912006-09-08 Jakub Jelinek <jakub@redhat.com>
2292
2293 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
2294 Include stdlib.h.
2295 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
2296 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
2297 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2298 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2299 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 2300
346e6ad4
UD
23012006-09-08 Ulrich Drepper <drepper@redhat.com>
2302
2303 [BZ #3123]
2304 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
2305 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
2306 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2307 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2308 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
2309 * Makefile (tests): Add tst-cond22.
2310 * tst-cond22.c: New file.
2311
b051fc44
UD
23122006-09-05 Ulrich Drepper <drepper@redhat.com>
2313
2314 [BZ #3124]
2315 * descr.h (struct pthread): Add parent_cancelhandling.
2316 * sysdeps/pthread/createthread.c (create_thread): Pass parent
2317 cancelhandling value to child.
2318 * pthread_create.c (start_thread): If parent thread was canceled
2319 reset the SIGCANCEL mask.
2320 * Makefile (tests): Add tst-cancel25.
2321 * tst-cancel25.c: New file.
2322
d052233c
UD
23232006-09-05 Jakub Jelinek <jakub@redhat.com>
2324 Ulrich Drepper <drepper@redhat.com>
2325
2326 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
2327 counterp if it is already zero.
2328 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
2329
cd248c3f
UD
23302006-03-04 Jakub Jelinek <jakub@redhat.com>
2331 Roland McGrath <roland@redhat.com>
2332
2333 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2334 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2335 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
2336 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2337 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2338 lll_robust_mutex_timedlock, lll_mutex_unlock,
2339 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2340 Add _L_*_ symbols around the subsection.
2341 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
2342 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2343
23442006-03-03 Jakub Jelinek <jakub@redhat.com>
2345 Roland McGrath <roland@redhat.com>
2346
2347 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2348 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2349 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
2350 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2351 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2352 lll_robust_mutex_timedlock, lll_mutex_unlock,
2353 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2354 Add _L_*_ symbols around the subsection.
2355 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
2356 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2357
b80770b2
UD
23582006-08-31 Ulrich Drepper <drepper@redhat.com>
2359
2360 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
2361 change because it can disturb too much existing code. If real hard
2362 reader preference is needed we'll introduce another type.
2363 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2364 (pthread_rwlock_timedwrlock): Likewise.
2365 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2366 Likewise.
2367
bee2df0b
UD
23682006-08-30 Ulrich Drepper <drepper@redhat.com>
2369
2370 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
2371 reader preference.
2372 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2373 (pthread_rwlock_timedwrlock): Likewise.
2374 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2375 Likewise.
2376
d678ebc1
UD
23772006-08-25 Jakub Jelinek <jakub@redhat.com>
2378
2379 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
2380 Only define ifdef SHARED.
2381
ba408f84
UD
23822006-08-23 Ulrich Drepper <drepper@redhat.com>
2383
2384 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2385 (free_stacks): ...here.
2386 (__free_stack_cache): New function.
2387 * pthreadP.h: Declare __free_stack_cache.
2388 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2389 ptr_freeres.
2390 * init.c (pthread_functions): Initialize ptr_freeres.
2391 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2392 New freeres function.
2393
376e973a
UD
23942006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2395
2396 [BZ #3018]
2397 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2398
2b34af01
UD
23992006-08-20 Ulrich Drepper <drepper@redhat.com>
2400
2401 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2402 _XOPEN_REALTIME_THREADS.
2403
89c85f87
UD
24042006-08-15 Jakub Jelinek <jakub@redhat.com>
2405
2406 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2407 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2408 HAVE_CLOCK_GETTIME_VSYSCALL.
2409 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2410
f17efcb4
UD
24112006-08-14 Jakub Jelinek <jakub@redhat.com>
2412
2413 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2414 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2415 * descr.h (struct priority_protection_data): New type.
2416 (struct pthread): Add tpp field.
2417 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2418 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2419 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2420 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2421 TPP mutexes.
2422 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2423 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2424 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2425 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2426 * tpp.c: New file.
2427 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2428 boosted by TPP.
2429 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2430 * pthread_mutexattr_getprioceiling.c
2431 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2432 in the SCHED_FIFO priority range.
2433 * pthread_mutexattr_setprioceiling.c
2434 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2435 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2436 if mutex is not TPP. Ceiling is now in __data.__lock.
2437 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2438 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2439 is now in __data.__lock. Add locking.
2440 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2441 * Makefile (libpthread-routines): Add tpp.
2442 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2443 * tst-tpp.h: New file.
2444 * tst-mutexpp1.c: New file.
2445 * tst-mutexpp6.c: New file.
2446 * tst-mutexpp10.c: New file.
2447 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2448 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2449
22bb134c
UD
24502006-08-12 Ulrich Drepper <drepper@redhat.com>
2451
2452 [BZ #2843]
2453 * pthread_join.c (pthread_join): Account for self being canceled
2454 when checking for deadlocks.
2455 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2456 (tf1): Don't print anything after pthread_join returns, this would be
2457 another cancellation point.
2458 (tf2): Likewise.
2459 * tst-join6.c: New file.
2460 * Makefile (tests): Add tst-join6.
2461
f1762c0c
UD
24622006-08-03 Ulrich Drepper <drepper@redhat.com>
2463
9c06eb66
UD
2464 [BZ #2892]
2465 * pthread_setspecific.c (__pthread_setspecific): Check
2466 out-of-range index before checking for unused key.
2467
f1762c0c
UD
2468 * sysdeps/pthread/gai_misc.h: New file.
2469
7bb1b2c9
UD
24702006-08-01 Ulrich Drepper <drepper@redhat.com>
2471
2472 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2473 file. Don't use sysctl.
2474 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2475 overwrite the file if this is likely not true.
2476
b06e7e9a
UD
24772006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2478
2479 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2480 * Makefile (tests): Add tst-getpid3.
2481 * tst-getpid3.c: New file.
2482
b894c2ea
RM
24832006-07-30 Roland McGrath <roland@redhat.com>
2484
2485 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2486
2487 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2488 (pause_not_cancel): New macro.
2489 (nanosleep_not_cancel): New macro.
2490 (sigsuspend_not_cancel): New macro.
2491 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2492 nanosleep_not_cancel macro from <not-cancel.h>.
2493 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2494 macro from <not-cancel.h>.
2495
df47504c
UD
24962006-07-28 Ulrich Drepper <drepper@redhat.com>
2497 Jakub Jelinek <jakub@redhat.com>
2498
2499 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2500 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2501 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2502 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2503 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2504 * pthread_mutex_lock.c: Likewise.
2505 * pthread_mutex_timedlock.c: Likewise.
2506 * pthread_mutex_trylock.c: Likewise.
2507 * pthread_mutex_unlock.c: Likewise.
2508 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2509 all mutexes.
2510 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2511 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2512 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2513 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2514 pthread-pi-defines.sym.
2515 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2516 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2517 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2518 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2519 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2520 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2521 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2522 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2523 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2524 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2525 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2526 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2527 * tst-mutex2.c: Likewise.
2528 * tst-mutex3.c: Likewise.
2529 * tst-mutex4.c: Likewise.
2530 * tst-mutex5.c: Likewise.
2531 * tst-mutex6.c: Likewise.
2532 * tst-mutex7.c: Likewise.
2533 * tst-mutex7a.c: Likewise.
2534 * tst-mutex8.c: Likewise.
2535 * tst-mutex9.c: Likewise.
2536 * tst-robust1.c: Likewise.
2537 * tst-robust7.c: Likewise.
2538 * tst-robust8.c: Likewise.
2539 * tst-mutexpi1.c: New file.
2540 * tst-mutexpi2.c: New file.
2541 * tst-mutexpi3.c: New file.
2542 * tst-mutexpi4.c: New file.
2543 * tst-mutexpi5.c: New file.
2544 * tst-mutexpi6.c: New file.
2545 * tst-mutexpi7.c: New file.
2546 * tst-mutexpi7a.c: New file.
2547 * tst-mutexpi8.c: New file.
2548 * tst-mutexpi9.c: New file.
2549 * tst-robust1.c: New file.
2550 * tst-robust2.c: New file.
2551 * tst-robust3.c: New file.
2552 * tst-robust4.c: New file.
2553 * tst-robust5.c: New file.
2554 * tst-robust6.c: New file.
2555 * tst-robust7.c: New file.
2556 * tst-robust8.c: New file.
2557 * Makefile (tests): Add the new tests.
2558
2559 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2560 * pthread_mutex_destroy.c: Remove unneeded label.
2561
f3be81a9
UD
25622006-07-01 Ulrich Drepper <drepper@redhat.com>
2563
2564 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2565 computations to compile time.
2566
c26ca5e1
UD
25672006-06-04 Ulrich Drepper <drepper@redhat.com>
2568
2569 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2570
6f8a7dff
UD
25712006-05-15 Ulrich Drepper <drepper@redhat.com>
2572
c26ca5e1 2573 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2574
3d237e42
UD
25752006-05-11 Ulrich Drepper <drepper@redhat.com>
2576
04974d63
UD
2577 * pthread_key_create.c (__pthread_key_create): Do away with
2578 __pthread_keys_lock.
2579
2580 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2581 (__kernel_cpumask_size): Mark as hidden.
2582 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2583
3d237e42
UD
2584 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2585 * semaphoreP.h (__sem_mappings_lock): Likewise.
2586
790fc6e4
UD
25872006-05-10 Ulrich Drepper <drepper@redhat.com>
2588
2589 * pthread_atfork.c: Mark __dso_handle as hidden.
2590
be434a72
UD
25912006-05-09 Ulrich Drepper <drepper@redhat.com>
2592
2593 [BZ #2644]
2594 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2595 the reload problem. Change the one path in pthread_cancel_init
2596 which causes the problem. Force gcc to reload. Simplify callers.
2597 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2598 (_Unwind_GetBSP): Undo last patch.
2599
3142b1ac
UD
26002006-05-07 Ulrich Drepper <drepper@redhat.com>
2601
bf3635d3
UD
2602 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2603 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2604
2605 [BZ #2644]
2606 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2607 pointers are reloaded after pthread_cancel_init calls.
2608
27488789
UD
26092006-05-01 Ulrich Drepper <drepper@redhat.com>
2610
2611 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2612 __always_inline.
2613
a6375d11
UD
26142006-04-27 Ulrich Drepper <drepper@redhat.com>
2615
2616 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2617 Allocate new object which is passed to timer_sigev_thread so that
2618 the timer can be deleted before the new thread is scheduled.
2619
16a1d952
RM
26202006-04-26 Roland McGrath <roland@redhat.com>
2621
2622 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2623
7960f2a7
UD
26242006-04-08 Ulrich Drepper <drepper@redhat.com>
2625
ab9a9ff8
UD
2626 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2627 suffix for conditional jumps.
2628 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2629 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2630 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2631 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2632 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2633 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2634
7960f2a7
UD
2635 * init.c (sigcancel_handler): Compare with correct PID even if the
2636 thread is in the middle of a fork call.
2637 (sighandler_setxid): Likewise.
2638 Reported by Suzuki K P <suzuki@in.ibm.com> .
2639
2035d91c
UD
26402006-04-07 Jakub Jelinek <jakub@redhat.com>
2641
2642 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2643
0292b0dd
UD
26442006-04-06 Ulrich Drepper <drepper@redhat.com>
2645
2646 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2647 fails [Coverity CID 105].
2648
6738b3c0
UD
26492006-04-05 Ulrich Drepper <drepper@redhat.com>
2650
2651 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2652
359157a5
RM
26532006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2654
2655 [BZ #2505]
2656 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2657 Define __lll_rel_instr using lwsync.
2658
cd277b2d
UD
26592006-03-27 Ulrich Drepper <drepper@redhat.com>
2660
2661 * allocatestack.c (allocate_stack): Always initialize robust_head.
2662 * descr.h: Define struct robust_list_head.
2663 (struct pthread): Use robust_list_head in robust mutex list definition.
2664 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2665 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2666 (__pthread_initialize_minimal_internal): Register robust_list with
2667 the kernel.
2668 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2669 Declare __set_robust_list_avail.
2670 * pthread_create.c (start_thread): Register robust_list of new thread.
2671 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2672 waiters.
2673 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2674 number of users, it's unreliable.
2675 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2676 set_robust_list syscall is available.
2677 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2678 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2679 Set robust_head.list_op_pending before trying to lock a robust mutex.
2680 * pthread_mutex_timedlock.c: Likewise.
2681 * pthread_mutex_trylock.c: Likewise.
2682 * pthread_mutex_unlock.c: Likewise for unlocking.
2683 * Makefile (tests): Add tst-robust8.
2684 * tst-robust8.c: New file.
2685
facac085
UD
26862006-03-08 Andreas Schwab <schwab@suse.de>
2687
2688 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2689 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2690
7ccbe1a1
RM
26912006-03-05 Roland McGrath <roland@redhat.com>
2692
2693 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2694 and $config_os doesn't match *linux*.
2695
043cee37
RM
26962006-03-05 David S. Miller <davem@sunset.davemloft.net>
2697
2698 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2699 Use __syscall_error.
2700 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2701 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2702 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2703 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2704 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2705 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2706
88bce79e
UD
27072006-03-02 Ulrich Drepper <drepper@redhat.com>
2708
2709 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2710
672ec465
UD
27112006-03-01 Ulrich Drepper <drepper@redhat.com>
2712
2713 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2714 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2715 mutex.
2716 (__lll_robust_timedlock_wait): Likewise.
2717 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2718 (__lll_robust_lock_wait): Likewise.
2719 (__lll_robust_timedlock_wait): Likewise.
2720 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2721 (__lll_robust_lock_wait): Likewise.
2722 (__lll_robust_timedlock_wait): Likewise.
2723
c4a4875d
RM
27242006-03-01 Jakub Jelinek <jakub@redhat.com>
2725
2726 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2727 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2728 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2729 lll_robust_mutex_unlock): Define.
2730 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2731
3192fd8e
RM
27322006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2733
2734 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2735 instead of <clone.S>.
2736
14d44b19
RM
27372006-02-27 Jakub Jelinek <jakub@redhat.com>
2738
2739 * Makefile (libpthread-routines): Add
2740 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2741 and pthread_mutex_[sg]etprioceiling.
2742 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2743 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2744 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2745 pthread_mutex_setprioceiling.
2746 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2747 PTHREAD_PRIO_PROTECT): New enum values.
2748 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2749 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2750 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2751 prototypes.
2752 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2753 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2754 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2755 Define.
2756 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2757 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2758 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2759 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2760 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2761 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2762 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2763 protocol mutexes.
2764 * pthread_mutex_getprioceiling.c: New file.
2765 * pthread_mutex_setprioceiling.c: New file.
2766 * pthread_mutexattr_getprioceiling.c: New file.
2767 * pthread_mutexattr_setprioceiling.c: New file.
2768 * pthread_mutexattr_getprotocol.c: New file.
2769 * pthread_mutexattr_setprotocol.c: New file.
2770
62f6b9b2
RM
27712006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2772
2773 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2774
e0a3ed4f
RM
27752006-02-27 Roland McGrath <roland@redhat.com>
2776
2777 * sysdeps/pthread/Subdirs: List nptl here too.
2778 * configure (libc_add_on_canonical): New variable.
2779
2780 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2781
2782 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2783 self to get main source tree's file.
2784 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2785 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2786 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2787 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2788 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2789 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2790 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2791 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2792 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2793 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2794 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2795 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2796 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2797
2798 * Makefile: Use $(sysdirs) in vpath directive.
2799
2800 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2801 (CPPFLAGS-timer_routines.c): Likewise.
2802
2803 * Makeconfig (includes): Variable removed.
2804
84cfa284
RM
28052006-02-26 Roland McGrath <roland@redhat.com>
2806
2807 * sysdeps/generic/pt-raise.c: Moved to ...
2808 * pt-raise.c: ... here.
2809 * sysdeps/generic/lowlevellock.h: Moved to ...
2810 * lowlevellock.h: ... here.
2811
c5132ca1
RM
28122006-02-23 Roland McGrath <roland@redhat.com>
2813
2814 * descr.h (struct pthread): Add final member `end_padding'.
2815 (PTHREAD_STRUCT_END_PADDING): Use it.
2816
28172006-02-20 Roland McGrath <roland@redhat.com>
2818
2819 * sysdeps/mips: Directory removed, saved in ports repository.
2820 * sysdeps/unix/sysv/linux/mips: Likewise.
2821
a93317a1
UD
28222006-02-18 Ulrich Drepper <drepper@redhat.com>
2823
2824 * tst-robust1.c: Add second mutex to check that the mutex list is
2825 handled correctly.
2826
f1740bc4
UD
28272006-02-17 Jakub Jelinek <jakub@redhat.com>
2828
2829 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2830 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2831 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2832 lll_robust_mutex_unlock): New macros.
2833 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2834 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2835 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2836 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2837 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2838
a7245bf5
UD
28392006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2840
2841 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2842 definitions.
2843 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2844
49bfc1fe
UD
28452006-02-17 Ulrich Drepper <drepper@redhat.com>
2846
2847 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2848 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2849 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2850 (lll_robust_mutex_unlock): Likewise.
2851
56e987ac
UD
28522006-02-13 Jakub Jelinek <jakub@redhat.com>
2853
2854 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2855 Set robust_list.__next rather than robust_list.
2856 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2857 (__pthread_list_t): New typedef.
2858 (pthread_mutex_t): Replace __next and __prev fields with __list.
2859 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2860 (__pthread_list_t): New typedef.
2861 (pthread_mutex_t): Replace __next and __prev fields with __list.
2862 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2863 (__pthread_list_t, __pthread_slist_t): New typedefs.
2864 (pthread_mutex_t): Replace __next and __prev fields with __list.
2865 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2866 (__pthread_list_t, __pthread_slist_t): New typedefs.
2867 (pthread_mutex_t): Replace __next and __prev fields with __list.
2868 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2869 (__pthread_list_t, __pthread_slist_t): New typedefs.
2870 (pthread_mutex_t): Replace __next and __prev fields with __list.
2871 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2872 (__pthread_slist_t): New typedef.
2873 (pthread_mutex_t): Replace __next field with __list.
2874
683040c3
UD
28752006-02-15 Ulrich Drepper <drepper@redhat.com>
2876
25bc77e6 2877 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2878 PTHREAD_MUTEX_OWNERDEAD.
2879 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2880 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2881 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2882 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2883 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2884 to PTHREAD_MUTEX_INCONSISTENT.
2885 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2886 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2887 * pthread_mutex_trylock.c: Likewise.
2888 * pthread_mutex_timedlock.c: Likewise.
2889 * pthread_mutex_unlock.c: Likewise.
2890 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2891 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2892 lowlevelrobustlock.sym.
2893 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2894 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2895 definitions.
2896 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2897 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2898 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2899 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2900 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2901
bbf209a4
UD
29022006-02-12 Ulrich Drepper <drepper@redhat.com>
2903
b007ce7c
UD
2904 * allocatestack.c (allocate_stack): Initialize robust_list.
2905 * init.c (__pthread_initialize_minimal_internal): Likewise.
2906 * descr.h (struct xid_command): Pretty printing.
2907 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2908 robust_list. Adjust macros.
2909 * pthread_create.c (start_thread): Adjust robust_list handling.
2910 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2911 but the owner for all robust mutex types.
2912 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2913 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2914 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2915 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2916
bbf209a4
UD
2917 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2918 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2919
b576fca1
UD
29202006-02-08 Jakub Jelinek <jakub@redhat.com>
2921
2922 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2923 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2924
a6df7387
UD
29252006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2926
2927 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2928 Return status.
2929 (lll_futex_timed_wait): Define.
2930
7c65e900
UD
29312006-01-19 Ulrich Drepper <drepper@redhat.com>
2932
2933 * tst-cancel4.c: Test ppoll.
2934
5f9f21e8
AJ
29352006-01-18 Andreas Jaeger <aj@suse.de>
2936
cf407dfb 2937 [BZ #2167]
5f9f21e8
AJ
2938 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2939 (pthread_mutex_t): Follow changes for other archs. Based on patch
2940 by Jim Gifford <patches@jg555.com>.
2941
251278c6
UD
29422006-01-13 Richard Henderson <rth@redhat.com>
2943
2944 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2945
de59a291
RM
29462006-01-10 Roland McGrath <roland@redhat.com>
2947
2948 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
2949 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2950 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2951 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2952 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2953 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2954 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2955 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2956 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 2957 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 2958
931786ee
RM
29592006-01-09 Roland McGrath <roland@redhat.com>
2960
5d42c8c3
RM
2961 * tst-initializers1-c89.c: New file.
2962 * tst-initializers1-c99.c: New file.
2963 * tst-initializers1-gnu89.c: New file.
2964 * tst-initializers1-gnu99.c: New file.
2965 * Makefile (tests): Add them.
2966 (CFLAGS-tst-initializers1-c89.c): New variable.
2967 (CFLAGS-tst-initializers1-c99.c): New variable.
2968 (CFLAGS-tst-initializers1-gnu89.c): New variable.
2969 (CFLAGS-tst-initializers1-gnu99.c): New variable.
2970
931786ee
RM
2971 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2972 Use __extension__ on anonymous union definition.
2973 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2974 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2975 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2976 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 2977 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 2978
8dd18431
RM
29792006-01-08 Jakub Jelinek <jakub@redhat.com>
2980
2981 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2982 Don't give the union a name because it changes the mangled name.
2983 Instead name the struct for __data.
2984 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
2985 Likewise.
2986 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
2987 Likewise.
2988
ae11e412
UD
29892006-01-09 Jakub Jelinek <jakub@redhat.com>
2990
2991 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
2992 stack bias to mc_ftp field.
2993
c6885aa1
UD
29942006-01-07 Ulrich Drepper <drepper@redhat.com>
2995
2996 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 2997 being too clever and reloading the futex value where it shouldn't.
c6885aa1 2998
ae4ad00a
UD
29992006-01-06 Ulrich Drepper <drepper@redhat.com>
3000
3001 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
3002 correct type.
3003
ced368f7
UD
30042006-01-06 Jakub Jelinek <jakub@redhat.com>
3005
3006 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
3007 Add cfi directives.
3008
d804f5df
UD
30092006-01-06 Ulrich Drepper <drepper@redhat.com>
3010
cbbbb188 3011 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
3012 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
3013 rename in tcbhead_t.
3014
d804f5df
UD
3015 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3016 Don't give the union a name because it changes the mangled name.
3017 Instead name the struct for __data.
3018 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3019 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3020 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3021 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3022 * pthread_create.c (start_thread): Adjust robust mutex free loop.
3023 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
3024
679d83ba
UD
30252006-01-05 Ulrich Drepper <drepper@redhat.com>
3026
3027 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
3028 Return status.
3029 (lll_futex_timed_wait): Define.
3030 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3031 * sysdeps/pthread/aio_misc.h: New file.
3032
06dc5bf3
RM
30332006-01-03 Joseph S. Myers <joseph@codesourcery.com>
3034
3035 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
3036
9759bbf1
UD
30372006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
3038
3039 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3040 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
3041 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3042
db59b28b
UD
30432006-01-04 Ulrich Drepper <drepper@redhat.com>
3044
3045 * tst-cancel24.cc: Use C headers instead of C++ headers.
3046
b01fe5f7
UD
30472006-01-03 Jakub Jelinek <jakub@redhat.com>
3048
3049 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
3050 sparc-linux configured glibc.
3051 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
3052 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
3053 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
3054 atomic_compare_and_exchange_val_24_acq instead of
3055 atomic_compare_and_exchange_val_acq.
3056 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
3057 instead of atomic_exchange_rel.
3058 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
3059 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
3060 file.
3061 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
3062 file.
3063 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
3064 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
3065 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
3066 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
3067 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
3068 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3069 New file.
3070 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3071 New file.
3072 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
3073 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
3074 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
3075 file.
3076 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
3077 file.
3078 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
3079
35c2fd59
UD
30802006-01-03 Ulrich Drepper <drepper@redhat.com>
3081
3082 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
3083 mutex initializers.
3084
305bb37e
UD
30852006-01-02 Jakub Jelinek <jakub@redhat.com>
3086
3087 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
3088 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3089 THREAD_COPY_POINTER_GUARD): Define.
3090 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
3091 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
3092
cc792128
UD
30932006-01-01 Ulrich Drepper <drepper@redhat.com>
3094
3095 * version.c: Update copyright year.
3096
db0a00d3
UD
30972005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3098
3099 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
3100 .eh_frame section, use cfi_* directives.
3101 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
3102
b36205c4
UD
31032005-12-30 Ulrich Drepper <drepper@redhat.com>
3104
3105 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
3106 now.
3107
8b4f1598
UD
31082005-12-29 Ulrich Drepper <drepper@redhat.com>
3109
3110 * sysdeps/pthread/sigaction.c: Removed.
3111 * sigaction.c: New file.
3112 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
3113
fec5592d
UD
31142005-12-28 Ulrich Drepper <drepper@redhat.com>
3115
3116 * Makefile (tests): Add tst-signal7.
3117 * tst-signal7.c: New file.
3118
db169ed5
RM
31192005-12-27 Roland McGrath <roland@redhat.com>
3120
3121 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
3122 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
3123 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
3124 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3125 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3126 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3127 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3128 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3129 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3130 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3131 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3132
bfffffae
UD
31332005-12-27 Jakub Jelinek <jakub@redhat.com>
3134
3135 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
3136 and __prev field to pthread_mutex_t.
3137 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3138 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3139 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3140 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3141 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
3142 to pthread_mutex_t.
3143
1bcfb5a5
UD
31442005-12-26 Ulrich Drepper <drepper@redhat.com>
3145
3146 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
3147 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
3148 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
3149 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
3150 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
3151 and PTHREAD_MUTEXATTR_FLAG_BITS.
3152 * descr.h (struct pthread): Add robust_list field and define
3153 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
3154 * pthread_mutexattr_getrobust.c: New file.
3155 * pthread_mutexattr_setrobust.c: New file.
3156 * pthread_mutex_consistent.c: New file.
3157 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
3158 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3159 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
3160 Adjust pthread_mutex_t initializers.
3161 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
3162 field to pthread_mutex_t.
3163 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
3164 and __prev field to pthread_mutex_t.
3165 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
3166 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
3167 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
3168 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
3169 * pthread_mutexattr_gettype.c: Likewise.
3170 * pthread_mutexattr_setpshared.c: Likewise.
3171 * pthread_mutexattr_settype.c: Likewise.
3172 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
3173 Initialize mutex kind according to robust flag.
3174 * pthread_mutex_lock.c: Implement local robust mutex.
3175 * pthread_mutex_timedlock.c: Likewise.
3176 * pthread_mutex_trylock.c: Likewise.
3177 * pthread_mutex_unlock.c: Likewise.
3178 * pthread_create.c (start_thread): Mark robust mutexes which remained
3179 locked as dead.
3180 * tst-robust1.c: New file.
3181 * tst-robust2.c: New file.
3182 * tst-robust3.c: New file.
3183 * tst-robust4.c: New file.
3184 * tst-robust5.c: New file.
3185 * tst-robust6.c: New file.
3186 * tst-robust7.c: New file.
3187 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
3188 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3189 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
3190 tst-robust5, tst-robust6, and tst-robust7.
3191
3192 * tst-typesizes.c: New file.
3193 * Makefile (tests): Add tst-typesizes.
3194
3195 * tst-once3.c: More debug output.
3196
9333ed0d
UD
31972005-12-24 Ulrich Drepper <drepper@redhat.com>
3198
d4d138a4
UD
3199 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
3200 missing after last change.
3201
bfffffae 3202 * version.c: Update copyright year.
9333ed0d 3203
dcc73a8d
UD
32042005-12-23 Ulrich Drepper <drepper@redhat.com>
3205
3206 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
3207 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
3208 * pthread_mutex_trylock.c: Likewise.
3209 * pthread_mutex_timedlock.c: Likewise.
3210 * pthread_mutex_unlock.c: Likewise.
3211
879f3ca6
RM
32122005-12-22 Roland McGrath <roland@redhat.com>
3213
3214 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
3215 so that #include_next's search location is not reset to the -I..
3216 directory where <nptl/...> can be found.
3217
077a0da7
UD
32182005-12-22 Ulrich Drepper <drepper@redhat.com>
3219
3220 [BZ #1913]
3221 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3222 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
3223 * tst-cancel24.cc: New file.
3224 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 3225
8dea90aa
RM
32262005-12-21 Roland McGrath <roland@redhat.com>
3227
3228 * libc-cancellation.c: Use <> rather than "" #includes.
3229 * pt-cleanup.c: Likewise.
3230 * pthread_create.c: Likewise.
3231 * pthread_join.c: Likewise.
3232 * pthread_timedjoin.c: Likewise.
3233 * pthread_tryjoin.c: Likewise.
3234 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
3235 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3236 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3237 * unwind.c: Likewise.
3238
8da21f96
UD
32392005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3240
3241 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
3242 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
3243 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3244 THREAD_COPY_POINTER_GUARD): Define.
3245
00c2b3b9
UD
32462005-12-19 Jakub Jelinek <jakub@redhat.com>
3247
3248 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
3249 rather than one.
3250 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3251 THREAD_COPY_POINTER_GUARD): Define.
3252 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
3253 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
3254 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3255 THREAD_COPY_POINTER_GUARD): Define.
3256 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
3257 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
3258 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
3259 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
3260 Use PTR_DEMANGLE for B0 if defined.
3261
827b7087
UD
32622005-12-17 Ulrich Drepper <drepper@redhat.com>
3263
3264 * pthread_create.c (__pthread_create_2_1): Use
3265 THREAD_COPY_POINTER_GUARD if available.
3266 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
3267 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3268 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
3269 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
3270 * sysdeps/x86_64/tls.h: Likewise.
3271
2826ac7e
RM
32722005-12-15 Roland McGrath <roland@redhat.com>
3273
3274 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
3275
b6ab06ce
UD
32762005-12-13 Ulrich Drepper <drepper@redhat.com>
3277
3278 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
3279 sysdeps/generic.
3280 * errno-loc.c: New file.
3281
f0d1a3b5
RM
32822005-12-12 Roland McGrath <roland@redhat.com>
3283
3284 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
3285 adjustments before choosing stack size. Update minimum stack size
3286 calculation to match allocate_stack change.
3287
db13ddbc
UD
32882005-12-12 Ulrich Drepper <drepper@redhat.com>
3289
3290 * allocatestack.c (allocate_stack): Don't demand that there is an
3291 additional full page available on the stack beside guard, TLS, the
3292 minimum stack.
3293
088f460f
UD
32942005-11-24 Ulrich Drepper <drepper@redhat.com>
3295
3296 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3297 (__cleanup_fct_attribute): Use __regparm__ not regparm.
3298
3299 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
3300 compiling 32-bit code we must define __cleanup_fct_attribute.
3301
16feadf2
UD
3302005-11-24 Jakub Jelinek <jakub@redhat.com>
3303
3304 [BZ #1920]
3305 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
3306 __attribute__ instead of __attribute.
3307 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3308 (__cleanup_fct_attribute): Likewise.
3309
e6e493bb
UD
33102005-11-17 Jakub Jelinek <jakub@redhat.com>
3311
3312 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
3313 a write barrier before writing libgcc_s_getcfa.
3314
8e635611
UD
33152005-11-06 Ulrich Drepper <drepper@redhat.com>
3316
3317 * sysdeps/unix/sysv/linux/configure: Removed.
3318
ce33ee7c
UD
33192005-11-05 Ulrich Drepper <drepper@redhat.com>
3320
3321 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
3322 optional init_array/fini_array support.
3323
20d511e0
RM
33242005-10-24 Roland McGrath <roland@redhat.com>
3325
3326 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
3327 versioned_symbol use.
3328
fe60d146
RM
33292005-10-16 Roland McGrath <roland@redhat.com>
3330
3331 * init.c (__pthread_initialize_minimal_internal): Even when using a
3332 compile-time default stack size, apply the minimum that allocate_stack
3333 will require, and round up to page size.
3334
0faa1cf5
RM
33352005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
3336
3337 * Makefile ($(test-modules)): Remove static pattern rule.
3338
f9126cc2
UD
33392005-10-14 Jakub Jelinek <jakub@redhat.com>
3340 Ulrich Drepper <drepper@redhat.com>
3341
3342 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
3343 alignment in callback function.
3344 * Makefile: Add rules to build and run tst-align3.
3345 * tst-align3.c: New file.
3346
015a5d22
RM
33472005-10-03 Jakub Jelinek <jakub@redhat.com>
3348
3349 * allocatestack.c (setxid_signal_thread): Add
3350 INTERNAL_SYSCALL_DECL (err).
3351
b71ce910
UD
33522005-10-02 Jakub Jelinek <jakub@redhat.com>
3353
3354 * allocatestack.c (setxid_signal_thread): Need to use
3355 atomic_compare_and_exchange_bool_acq.
3356
dff9a7a1
UD
33572005-10-01 Ulrich Drepper <drepper@redhat.com>
3358 Jakub Jelinek <jakub@redhat.com>
3359
3360 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
3361 CANCEL_RESTMASK.
3362 (struct pthread): Move specific_used field to avoid padding.
3363 Add setxid_futex field.
3364 * init.c (sighandler_setxid): Reset setxid flag and release the
3365 setxid futex.
3366 * allocatestack.c (setxid_signal_thread): New function. Broken
3367 out of the bodies of the two loops in __nptl_setxid. For undetached
3368 threads check whether they are exiting and if yes, don't send a signal.
3369 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
3370 * pthread_create.c (start_thread): For undetached threads, check
3371 whether setxid bit is set. If yes, wait until signal has been
3372 processed.
3373
3374 * allocatestack.c (STACK_VARIABLES): Initialize them.
3375 * pthread_create.c (__pthread_create_2_1): Initialize pd.
3376
560b4709
UD
33772004-09-02 Jakub Jelinek <jakub@redhat.com>
3378
3379 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
3380 waiters, awake all waiters on the associated mutex.
3381
5eac4760
RM
33822005-09-22 Roland McGrath <roland@redhat.com>
3383
3384 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3385 ../sysdeps/x86_64/hp-timing.h).
3386
a3615024
UD
33872005-08-29 Jakub Jelinek <jakub@redhat.com>
3388
3389 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3390 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3391 (lll_futex_wake_unlock): Define.
3392 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3393 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3394 (lll_futex_wake_unlock): Define.
3395 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3396 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3397 (lll_futex_wake_unlock): Define.
3398 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3399 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3400 (lll_futex_wake_unlock): Define.
3401 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3402 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3403 (lll_futex_wake_unlock): Define.
3404 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3405 lll_futex_wake_unlock.
3406 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3407 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3408 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3409 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3410 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3411 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3412
bf017034
UD
34132005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3414
3415 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3416 Fix typo in register name.
3417
fd4af664
UD
34182005-08-23 Ulrich Drepper <drepper@redhat.com>
3419
8558d715
UD
3420 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3421 Use __sigfillset. Document that sigfillset does the right thing wrt
3422 to SIGSETXID.
fd4af664 3423
3fd1bc67
UD
34242005-07-11 Jakub Jelinek <jakub@redhat.com>
3425
44d75caf 3426 [BZ #1102]
3fd1bc67
UD
3427 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3428 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3429 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3430 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3431 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3432 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3433 in the structure.
3434 * Makefile (tests): Add tst-initializers1.
3435 (CFLAGS-tst-initializers1.c): Set.
3436 * tst-initializers1.c: New test.
3437
553185e2
UD
34382005-07-11 Jakub Jelinek <jakub@redhat.com>
3439
3440 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3441 Make sure __flags are located at offset 48 from the start of the
3442 structure.
3443
8df08cb2
RM
34442005-07-02 Roland McGrath <roland@redhat.com>
3445
3446 * Makeconfig: Comment fix.
3447
253eb3a0
UD
34482005-07-05 Jakub Jelinek <jakub@redhat.com>
3449
3450 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3451 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3452 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3453 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3454 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3455 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3456 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3457 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3458 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3459 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3460
bb6e8ca3
UD
34612005-06-25 Jakub Jelinek <jakub@redhat.com>
3462
3463 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3464 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3465 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3466 fields.
3467 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3468 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3469 field. Put in sysinfo field unconditionally.
3470 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3471 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3472 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3473 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3474 fields.
3475 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3476 * pthread_create.c (__pthread_create_2_1): Use
3477 THREAD_COPY_STACK_GUARD macro.
3478 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3479 tests.
3480 * tst-stackguard1.c: New file.
3481 * tst-stackguard1-static.c: New file.
3482
99c7f870
UD
34832005-06-14 Alan Modra <amodra@bigpond.net.au>
3484
3485 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3486 Invoke CGOTSETUP and CGOTRESTORE.
3487 (CGOTSETUP, CGOTRESTORE): Define.
3488
8074c5c5
RM
34892005-05-29 Richard Henderson <rth@redhat.com>
3490
3491 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3492 (tf_write, tf_writev): Use it.
3493 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3494 the system minimum.
3495
c179df4e
UD
34962005-05-23 Jakub Jelinek <jakub@redhat.com>
3497
3498 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3499 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3500 __librt_*_asynccancel@local.
3501
b0e196a4
UD
35022005-05-17 Alan Modra <amodra@bigpond.net.au>
3503
3504 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3505 all occurrences of JUMPTARGET. Instead append @local to labels.
3506
f7d78e18
UD
35072005-05-20 Jakub Jelinek <jakub@redhat.com>
3508
3509 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3510 size/alignment of struct pthread rather than tcbhead_t.
3511 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3512 Likewise.
3513 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3514 Likewise.
3515 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3516 Likewise.
3517
363dd976
UD
35182005-05-19 Richard Henderson <rth@redhat.com>
3519
3520 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3521 __sync_val_compare_and_swap, not explicit _si variant.
3522 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3523
1ad9da69
UD
35242005-05-03 Ulrich Drepper <drepper@redhat.com>
3525
3526 [BZ #915]
3527 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3528
5085cd1f
UD
35292005-05-03 Jakub Jelinek <jakub@redhat.com>
3530
3531 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3532 .eh_frame section, use cfi_* directives.
3533
ad529081
UD
35342005-04-27 Jakub Jelinek <jakub@redhat.com>
3535
3536 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3537 of "" includes.
3538
dea99685
UD
35392005-04-27 Ulrich Drepper <drepper@redhat.com>
3540
c06aad09 3541 [BZ #1075]
dea99685
UD
3542 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3543 aio_write blocks.
3544
84060bad
RM
35452005-04-27 Roland McGrath <roland@redhat.com>
3546
5e2d8ac8
RM
3547 * Makefile (tests): Remove tst-clock2.
3548
84060bad
RM
3549 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3550 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3551 translating to the kernel clockid_t for our own process/thread clock.
3552
3553 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3554
4a035b9d
RM
35552005-04-15 Jakub Jelinek <jakub@redhat.com>
3556
3557 * old_pthread_cond_init.c: Include <errno.h>.
3558 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3559 process shared or uses clock other than CLOCK_REALTIME.
3560 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3561
edac0e8f
UD
35622005-04-13 David S. Miller <davem@davemloft.net>
3563
3564 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3565 * sysdeps/sparc/sparc64/clone.S: New file.
3566
613d8d52
RM
35672005-04-05 Jakub Jelinek <jakub@redhat.com>
3568
44d75caf 3569 [BZ #1102]
613d8d52
RM
3570 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3571 __inline instead of inline.
3572 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3573
ee618985
UD
35742005-03-31 Jakub Jelinek <jakub@redhat.com>
3575
3576 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3577 functionally equivalent, but shorter instructions.
3578 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3579 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3580 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3581 Likewise.
3582 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3583 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3584 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3585 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3586 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3587 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3588 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3589 Likewise.
3590 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3591 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3592 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3593 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3594 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3595
f850220b
AJ
35962005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3597
3598 * sysdeps/mips/Makefile: New file.
3599 * sysdeps/mips/nptl-sysdep.S: New file.
3600 * sysdeps/mips/tcb-offsets.sym: New file.
3601 * sysdeps/mips/pthread_spin_lock.S: New file.
3602 * sysdeps/mips/pthread_spin_trylock.S: New file.
3603 * sysdeps/mips/pthreaddef.h: New file.
3604 * sysdeps/mips/tls.h: New file.
3605 * sysdeps/mips/jmpbuf-unwind.h: New file.
3606 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3607 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3608 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3609 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3610 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3611 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3612 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3613 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3614 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3615 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3616
1e6da2b0
UD
36172005-03-23 Ulrich Drepper <drepper@redhat.com>
3618
c06aad09 3619 [BZ #1112]
1e6da2b0
UD
3620 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3621 variable to scerr.
3622
5233d576
RM
36232005-03-10 Jakub Jelinek <jakub@redhat.com>
3624
3625 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3626
3053ff11
RM
36272005-02-25 Roland McGrath <roland@redhat.com>
3628
3629 * alloca_cutoff.c: Correct license text.
3630 * tst-unload.c: Likewise.
3631 * sysdeps/pthread/allocalim.h: Likewise.
3632 * sysdeps/pthread/pt-initfini.c: Likewise.
3633 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3634 * sysdeps/pthread/bits/sigthread.h: Likewise.
3635 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3636 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3637
9cfe5381
RM
36382005-02-16 Roland McGrath <roland@redhat.com>
3639
3640 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3641 Use unsigned int * for ptr_nthreads.
3642
7de00121
RM
36432005-02-14 Alan Modra <amodra@bigpond.net.au>
3644
20d511e0 3645 [BZ #721]
7de00121
RM
3646 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3647 gcc4.
3648
4bae262d
UD
36492005-02-07 Richard Henderson <rth@redhat.com>
3650
613d8d52 3651 [BZ #787]
4bae262d
UD
3652 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3653 argument.
3654
75df54b7
RM
36552004-11-03 Marcus Brinkmann <marcus@gnu.org>
3656
3657 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3658 order of arguments in invocation of atomic_add_zero.
3659
ea9c93cc
UD
36602005-01-26 Jakub Jelinek <jakub@redhat.com>
3661
9cfe5381 3662 [BZ #737]
ea9c93cc
UD
3663 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3664 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3665 at least gotntpoff relocation and addition.
3666 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3667 Likewise.
3668 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3669 Likewise.
3670 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3671 Likewise.
3672
9dcafc55
UD
36732005-01-06 Ulrich Drepper <drepper@redhat.com>
3674
3675 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3676 entry for static tls deallocation fix.
3677 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3678 also contains information whether the memory pointed to is static
3679 TLS or not.
3680 * sysdeps/i386/tls.h: Likewise.
3681 * sysdeps/ia64/tls.h: Likewise.
3682 * sysdeps/powerpc/tls.h: Likewise.
3683 * sysdeps/s390/tls.h: Likewise.
3684 * sysdeps/sh/tls.h: Likewise.
3685 * sysdeps/sparc/tls.h: Likewise.
3686 * sysdeps/x86_64/tls.h: Likewise.
3687
a71c152c
UD
36882004-12-27 Ulrich Drepper <drepper@redhat.com>
3689
3690 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3691
d143c49e
UD
36922004-12-21 Jakub Jelinek <jakub@redhat.com>
3693
3694 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3695 %esp.
3696 * Makefile (tests): Add tst-align2.
3697 * tst-align2.c: New test.
3698 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3699 -mpreferred-stack-boundary=4.
3700
50130ded
RM
37012004-12-18 Roland McGrath <roland@redhat.com>
3702
3703 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3704 New file removed withdrawn for the moment.
3705
cbc53df0
RH
37062004-12-17 Richard Henderson <rth@redhat.com>
3707
3708 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3709 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3710
fb9d5c73
UD
37112004-12-16 Ulrich Drepper <drepper@redhat.com>
3712
03332aa6
UD
3713 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3714 Increased PTHREAD_STACK_MIN.
3715
fb9d5c73
UD
3716 * tst-context1.c (stacks): Use bigger stack size.
3717
e853ea00
UD
37182004-12-16 Jakub Jelinek <jakub@redhat.com>
3719
3720 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3721 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3722
f23673fc
UD
37232004-12-15 Jakub Jelinek <jakub@redhat.com>
3724
3725 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3726 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3727 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3728
917fbe70
UD
37292004-12-15 Ulrich Drepper <drepper@redhat.com>
3730
3731 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3732
1f9d7c27
UD
37332004-12-14 Ulrich Drepper <drepper@redhat.com>
3734
3735 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3736 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3737
3738 * tst-getpid1.c: If child crashes, report this first. Print which
3739 signal.
3740
bf7c04cd
UD
37412004-12-09 Ulrich Drepper <drepper@redhat.com>
3742
3743 * init.c (__pthread_initialize_minimal_internal): Also unblock
3744 SIGSETXID.
3745
37462004-12-01 Jakub Jelinek <jakub@redhat.com>
3747
3748 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3749 _POSIX_THREAD_CPUTIME): Define to 0.
3750 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3751 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3752 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3753 __timer_signal_thread_tclk): Remove.
3754 (init_module): Remove their initialization.
3755 (thread_cleanup): Remove their cleanup assertions.
3756 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3757 __timer_signal_thread_tclk): Remove.
3758 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3759 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3760 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3761
484cc801
UD
37622004-12-07 Jakub Jelinek <jakub@redhat.com>
3763
3764 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3765 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3766
3767 * Makefile (tests): Add tst-getpid2.
3768 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3769 (do_test): Use it. Use __clone2 instead of clone on ia64.
3770 * tst-getpid2.c: New test.
3771
2da9a6a1
UD
37722004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3773
3774 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3775
1ff241b8
UD
37762004-12-04 Ulrich Drepper <drepper@redhat.com>
3777
3778 * Makefile (tests): Add tst-getpid1.
3779 * tst-getpid1.c: New file.
3780 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3781 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3782
3f488b9c
RM
37832004-12-02 Roland McGrath <roland@redhat.com>
3784
3785 * Makefile (libpthread-nonshared): Variable removed.
3786 ($(objpfx)libpthread_nonshared.a): Target removed.
3787 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3788 These are now handled by generic magic from
3789 libpthread-static-only-routines being set.
3790
597ce09c
UD
37912004-11-27 Ulrich Drepper <drepper@redhat.com>
3792
3793 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3794 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3795 _POSIX_THREAD_PRIO_PROTECT): Define.
3796 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3797 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3798 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3799
60e4523a
UD
38002004-11-26 Jakub Jelinek <jakub@redhat.com>
3801
3802 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3803 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3804 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3805 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
3806 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3807 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3808 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3809
f1f2cafc
UD
38102004-11-24 Ulrich Drepper <drepper@redhat.com>
3811
bca2d208
UD
3812 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3813
f1f2cafc
UD
3814 * Makefile (libpthread-routines): Add pthread_setschedprio.
3815 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3816 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3817 * pthread_setschedprio.c: New file.
3818
b639d0c9
UD
38192004-11-20 Jakub Jelinek <jakub@redhat.com>
3820
ef2bb413
UD
3821 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3822 * pthread_cancel.c (pthread_create): Likewise.
3823
b639d0c9
UD
3824 * Makefile (libpthread-routines): Add vars.
3825 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3826 * init.c (__default_stacksize, __is_smp): Remove.
3827 * vars.c: New file.
3828 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3829 and define a wrapper macro.
3830 (PTHREAD_STATIC_FN_REQUIRE): Define.
3831 * allocatestack.c (__find_thread_by_id): Undefine.
3832 * pthread_create (__pthread_keys): Remove.
3833 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3834 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3835 PTHREAD_STATIC_FN_REQUIRE.
3836
3defcff3
UD
38372004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3838
3839 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3840 parameter to REGISTER macro.
3841
ec188f92
RM
38422004-11-17 Roland McGrath <roland@redhat.com>
3843
3844 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3845 Make sure SIGCANCEL is blocked as well.
3846
ccd8de9a
UD
38472004-11-10 Jakub Jelinek <jakub@redhat.com>
3848
3849 * sysdeps/pthread/setxid.h: New file.
3850 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3851 (struct xid_command): Add forward decl.
3852 (struct pthread_functions): Change return type of __nptl_setxid hook
3853 to int.
3854 * pthreadP.h (__nptl_setxid): Change return type to int.
3855 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3856 calling thread, return its return value and set errno on failure.
3857 * descr.h (struct xid_command): Change id type to long array.
3858
3859 * Makefile: Add rules to build and test tst-setuid1 and
3860 tst-setuid1-static.
3861 * tst-setuid1.c: New test.
3862 * tst-setuid1-static.c: New test.
3863
ed2ced8a
UD
38642004-11-10 Jakub Jelinek <jakub@redhat.com>
3865
3866 * Makefile (tests): Add tst-exit3.
3867 * tst-exit3.c: New test.
3868
948603ee
UD
38692004-11-09 Ulrich Drepper <drepper@redhat.com>
3870
3871 * Makefile (tests): Add tst-exit2.
3872 * tst-exit2.c: New file.
3873
ba5ffd2a
RM
38742004-11-09 Roland McGrath <roland@redhat.com>
3875
3876 [BZ #530]
3877 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3878 here, before calling clone.
3879 * pthread_create.c (start_thread): Don't do it here.
3880
c4d7bd39
RM
38812004-11-02 Jakub Jelinek <jakub@redhat.com>
3882
3883 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3884
543fb0c8
UD
38852004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3886
3887 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3888 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3889 assembler warning.
3890
a1fbd858
UD
38912004-10-28 Jakub Jelinek <jakub@redhat.com>
3892
3893 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3894 if sched_priority is not between minprio and maxprio.
3895
c2a4357a
UD
38962004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3897
3898 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3899 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3900
3901 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3902 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3903
78d8d211
UD
39042004-10-24 Ulrich Drepper <drepper@redhat.com>
3905
3906 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3907 not-cancelable I/O functions.
3908
dd28590f
UD
39092004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3910
3911 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3912 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3913 make sure 2 is stored in the futex and we looked at the old value.
3914 Fix a few other problems to return the correct value.
3915
f8c97af7
RH
39162004-10-14 Richard Henderson <rth@redhat.com>
3917
3918 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3919 make gcc4 happy.
3920
3feb8efa
UD
39212004-10-06 Jakub Jelinek <jakub@redhat.com>
3922
3923 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3924 of pthread-functions.h and pthreaddef.h.
3925 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3926
3927 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3928 Change __data.__nwaiters from int to unsigned int.
3929
3930 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3931 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3932
3933 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3934 before return type.
3935
3936 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3937 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3938
67060ef5
UD
39392004-10-06 Ulrich Drepper <drepper@redhat.com>
3940
3941 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3942 test fails, remove message queue.
3943 (tf_msgsnd): Likewise.
3944
f38a3086
UD
39452004-10-05 Jakub Jelinek <jakub@redhat.com>
3946
3947 * tst-clock1.c: Change #ifdef to #if defined.
3948 * tst-clock2.c: Likewise.
3949 * tst-cond11.c: Likewise.
3950
2c03b6db
UD
3951 * sysdeps/pthread/timer_create.c (timer_create): Use
3952 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
3953 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
3954 THREAD_CPUTIME.
3955
6ab5f50d
UD
39562004-10-05 Jakub Jelinek <jakub@redhat.com>
3957
3958 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
3959 _POSIX_THREAD_CPUTIME): Define to 0.
3960
e4bb4853
UD
39612004-10-04 Ulrich Drepper <drepper@redhat.com>
3962
3963 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
3964 and _POSIX_THREAD_CPUTIME to zero.
3965 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3966 * tst-barrier2.c: Fix testing for POSIX feature.
3967 * tst-clock1.c: Likewise.
3968 * tst-clock2.c: Likewise.
3969 * tst-cond11.c: Likewise.
3970 * tst-cond4.c: Likewise.
3971 * tst-cond6.c: Likewise.
3972 * tst-flock2.c: Likewise.
3973 * tst-mutex4.c: Likewise.
3974 * tst-mutex9.c: Likewise.
3975 * tst-rwlock12.c: Likewise.
3976 * tst-rwlock4.c: Likewise.
3977 * tst-signal1.c: Likewise.
3978 * tst-spin2.c: Likewise.
3979 * sysdeps/pthread/posix-timer.h: Likewise.
3980 * sysdeps/pthread/timer_create.c: Likewise.
3981 * sysdeps/pthread/timer_routines.c: Likewise.
3982
c1b48791
UD
39832004-10-01 Ulrich Drepper <drepper@redhat.com>
3984
927f0673
UD
3985 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3986 (__lll_mutex_timedlock_wait): Address futex correctly.
3987
c1b48791 3988 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 3989 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
3990 make sure 2 is stored in the futex and we looked at the old value.
3991 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3992 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
3993 which might very well made the code not working at all before.
7b87aca6 3994 [BZ #417]
c1b48791 3995
e9f4e844
UD
39962004-09-28 Ulrich Drepper <drepper@redhat.com>
3997
4f21c95d
UD
3998 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
3999 allow SIGSETXID to be sent.
4000 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
4001 for SIGSETXID to be defined.
4002 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
4003 SIGSETXID cannot be blocked.
4004
e9f4e844
UD
4005 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4006 Add __extension__ to long long types.
4007 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4008 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4009 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4010 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4011 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
4012 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4013 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4014
5f66b766
UD
40152004-09-25 Ulrich Drepper <drepper@redhat.com>
4016
4017 * descr.h (struct pthread): Add stopped_start field.
4018 * sysdeps/pthread/createthread.c (create_thread): Set
4019 start_stopped flag in descriptor for new thread appropriately.
4020 * pthread_create.c (start_thread): Only take lock to be stopped on
4021 startup if stopped_start flag says so.
4022
362038b0
UD
40232004-09-24 Ulrich Drepper <drepper@redhat.com>
4024
3f80a99b
UD
4025 * pthread_create.c (__pthread_create_2_1): Remember whether thread
4026 is created detached and if yes, do not try to free the stack in case
4027 the thread creation failed.
4028 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
4029 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
4030 case there has been no error. [BZ #405]
4031
362038b0
UD
4032 * pthread_create.c (start_thread): Don't wait for scheduler data
4033 etc to be set at the beginning of the function. The cancellation
4034 infrastructure must have been set up. And enable async
4035 cancellation before potentially going to sleep. [BZ #401]
4036
65f0beb9
UD
40372004-09-20 Ulrich Drepper <drepper@redhat.com>
4038
3c12b91a 4039 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
4040 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
4041 for now.
4042 * Makefile: Don't build pthread_set*id code for now.
4043
2edb61e3
UD
40442004-09-19 Ulrich Drepper <drepper@redhat.com>
4045
4046 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
4047 internal use.
4048 * allocatestack.c (__nptl_setxid): New function.
4049 * descr.h (struct xid_command): Define type.
4050 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
4051 (sighandler_setxid): New function.
4052 (__pthread_initialize_minimal): Register sighandler_setxid for
4053 SIGCANCEL.
4054 * pt-allocrtsig.c: Update comment.
4055 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
4056 Declare __nptl_setxid.
4057 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
4058 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
4059 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4060 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4061 and pthread_setresuid_np.
4062 * pthread_setgid_np.c: New file.
4063 * pthread_setuid_np.c: New file.
4064 * pthread_setegid_np.c: New file.
4065 * pthread_seteuid_np.c: New file.
4066 * pthread_setregid_np.c: New file.
4067 * pthread_setreuid_np.c: New file.
4068 * pthread_setresgid_np.c: New file.
4069 * pthread_setresuid_np.c: New file.
4070 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
4071 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4072 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4073 and pthread_setresuid_np.
4074 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
4075 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
4076 pthread_setregid, and pthread_setresgid.
4077
1ab1fa6f
UD
40782004-09-18 Ulrich Drepper <drepper@redhat.com>
4079
4080 * allocatestack.c (allocate_stack): Return EAGAIN instead of
4081 ENOMEM when out of memory.
4082
ae9e6b36
RM
40832004-09-10 Roland McGrath <roland@redhat.com>
4084
4085 [BZ #379]
4086 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
4087 code, since we don't try to use the broken CLONE_STOPPED any more.
4088 * pthread_create.c (start_thread): Likewise.
4089
424bd2f8
RH
40902004-09-15 Richard Henderson <rth@redhat.com>
4091
4092 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
4093
17b8a52d
UD
40942004-09-01 David Mosberger <davidm@hpl.hp.com>
4095
4096 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
4097 (__libc_unwind_longjmp): Delete macro and declare as function.
4098 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
4099 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
4100 nptl directory.
4101 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
4102 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
4103 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
4104
ccc63b07
UD
41052004-09-12 Ulrich Drepper <drepper@redhat.com>
4106
4107 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
4108 for __USE_XOPEN2K.
4109 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
4110 types also for __USE_XOPEN2K.
4111 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4112 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4113 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4114 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4115 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4116 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4117 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4118 [BZ #320]
4119
31f93b3b
UD
41202004-09-08 Ulrich Drepper <drepper@redhat.com>
4121
4122 * sysdeps/pthread/pthread.h
4123 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
4124 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
4125 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
4126 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
4127 [BZ #375]
4128
e0329987
UD
41292004-09-07 Ulrich Drepper <drepper@redhat.com>
4130
590b40f7
UD
4131 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
4132 PSEUDO to be used with . prefix.
4133
67254a97
UD
4134 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
4135 Use atomic_increment instead of atomic_exchange_and_add.
4136 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
4137 Likewise.
4138 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4139 Likewise.
4140 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
4141 Likewise.
4142
4143 * allocatestack.c (allocate_stack): Use atomic_increment_val
4144 instead of atomic_exchange_and_add.
4145 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
4146 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
4147 Likewise.
4148 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4149 Likewise.
4150
e0329987
UD
4151 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
4152 the initialization function might throw.
4153
42d86dd6 41542005-09-05 Richard Henderson <rth@redhat.com>
e0329987 4155
42d86dd6
RH
4156 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4157 Move definition inside libpthread, libc, librt check. Provide
4158 definition for rtld.
4159
73f7c32c
UD
41602004-09-02 Ulrich Drepper <drepper@redhat.com>
4161
f76c8499
UD
4162 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
4163 * sysdeps/i386/jmpbuf-unwind.h: Likewise
4164 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
4165 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
4166 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
4167 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
4168 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
4169 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
4170 * unwind.c: Use it.
4171
73f7c32c
UD
4172 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4173 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
4174 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4175 Likewise.
4176 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4177 Decrement __nwaiters. If pthread_cond_destroy has been called and
4178 this is the last waiter, signal pthread_cond_destroy caller and
4179 avoid using the pthread_cond_t structure after unlock.
4180 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4181 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4182 Read clock type from the least significant bits of __nwaiters instead
4183 of __clock.
4184 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4185 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
4186
41872004-08-31 Jakub Jelinek <jakub@redhat.com>
4188
4189 [BZ #342]
4190 * Makefile (tests): Add tst-cond20 and tst-cond21.
4191 * tst-cond20.c: New test.
4192 * tst-cond21.c: New test.
4193 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4194 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
4195 it unsigned int.
4196 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4197 Likewise.
4198 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4199 (pthread_cond_t): Likewise.
4200 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4201 Likewise.
4202 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4203 Likewise.
4204 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4205 Likewise.
4206 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
4207 (cond_nwaiters): New.
4208 (clock_bits): New.
4209 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
4210 if there are waiters not signalled yet.
4211 Wait until all already signalled waiters wake up.
4212 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
4213 __nwaiters. If pthread_cond_destroy has been called and this is the
4214 last waiter, signal pthread_cond_destroy caller and avoid using
4215 the pthread_cond_t structure after unlock.
4216 (__pthread_cond_wait): Increment __nwaiters in the beginning,
4217 decrement it when leaving. If pthread_cond_destroy has been called
4218 and this is the last waiter, signal pthread_cond_destroy caller.
4219 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4220 Likewise. Read clock type from the least significant bits of
4221 __nwaiters instead of __clock.
4222 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
4223 whether clock ID can be encoded in COND_CLOCK_BITS bits.
4224 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
4225 clock type just from the last COND_CLOCK_BITS bits of value.
4226 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
4227 instead of __clock, just from second bit of condattr's value.
4228
409f7493
UD
42292004-08-30 Jakub Jelinek <jakub@redhat.com>
4230
4231 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
4232 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
4233 != 64.
4234 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4235
92c6ccd1
RM
42362004-08-15 Roland McGrath <roland@frob.com>
4237
4238 * pthread_atfork.c: Update copyright terms including special exception
4239 for these trivial files, which are statically linked into executables
4240 that use dynamic linking for the significant library code.
4241
4d004cfb
UD
42422004-08-09 Jakub Jelinek <jakub@redhat.com>
4243
4244 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
4245 pthread_rwlock_rdlock.
4246 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
4247 Decrease __nr_readers_queued after reacquiring lock.
4248 * sysdeps/pthread/pthread_rwlock_timedrdlock
4249 (pthread_rwlock_timedrdlock): Likewise.
4250 Reported by Bob Cook <bobcook47@hotmail.com>.
4251
90595fb6
RM
42522004-08-11 Jakub Jelinek <jakub@redhat.com>
4253
4254 * tst-rwlock14.c (tf): Read main thread handle from *ARG
4255 before pthread_barrier_wait.
4256
fa46f7ab
UD
42572004-08-07 Ulrich Drepper <drepper@redhat.com>
4258
4259 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4260 Remove unnecessary exception handling data.
4261
15ef4b55
UD
42622004-07-23 Jakub Jelinek <jakub@redhat.com>
4263
4264 [BZ #284]
4265 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
4266 instead of clockid_t.
4267
4fb907b7
RM
42682004-07-21 Roland McGrath <roland@redhat.com>
4269
4270 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
4271
42722004-07-19 Roland McGrath <roland@redhat.com>
4273
4274 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
4275
8f73811b
RM
42762004-07-02 Roland McGrath <roland@redhat.com>
4277
4278 * configure: Don't exit.
4279
290639c3
UD
42802004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4281
4282 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4283 (__pthread_cond_timedwait): Check for invalid nanosecond in
4284 timeout value.
4285
8e5aaad9
UD
42862004-07-07 Ulrich Drepper <drepper@redhat.com>
4287
4288 * Makefile: Add rules to build and run tst-fini1.
4289 * tst-fini1.c: New file.
4290 * tst-fini1mod.c: New file.
4291
ce6e047f
UD
42922004-07-05 Ulrich Drepper <drepper@redhat.com>
4293
4294 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
4295 if no cancellation support is needed.
4296 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4297 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4298 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4299 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4300 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4301 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4302 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4303 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4304 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4305
4306 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
4307 only if not already defined.
4308
9b9ef823
UD
43092004-07-05 Jakub Jelinek <jakub@redhat.com>
4310
2dd18ce2
UD
4311 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
4312 constraint "m" instead of "0" for futex.
4313
9b9ef823
UD
4314 * shlib-versions: Add powerpc64-.*-linux.*.
4315
38205402
UD
43162004-07-04 Jakub Jelinek <jakub@redhat.com>
4317
4318 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
4319 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
4320 for valid tv_nsec.
4321 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
4322 1 billion and 64-bit tv_nsec which is valid when truncated to 32
4323 bits.
4324
78a9c837
RM
43252004-06-29 Roland McGrath <roland@redhat.com>
4326
4327 * Banner: NPTL no longer has its own version number.
4328 * Makefile (nptl-version): Variable removed.
4329 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
4330 using $(version), the glibc version number.
4331
d3d35527
UD
43322004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4333
4334 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4335 Fix branch offset for a PLT entry.
4336 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
4337 Likewise.
4338 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4339 Likewise.
4340 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
4341 Likewise.
4342 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
4343 Likewise.
4344
346f18ae
UD
43452004-06-28 Jakub Jelinek <jakub@redhat.com>
4346
4347 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
4348 unconditionally.
4349
f3a19754
UD
43502004-06-28 Jakub Jelinek <jakub@redhat.com>
4351
4352 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4353 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
4354 instead of tv_sec.
4355 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
4356 (pthread_rwlock_timedrdlock): Likewise.
4357
539842a4
UD
43582004-06-22 Jakub Jelinek <jakub@redhat.com>
4359
4360 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4361 Set __r7 to val, not mutex.
4362
46f4c578
UD
43632004-06-27 Ulrich Drepper <drepper@redhat.com>
4364
4365 * Makefile: Add rules to build tst-rwlock14.
4366 * tst-rwlock14.c: New file.
4367
43682004-06-24 Boris Hu <boris.hu@intel.com>
4369
4370 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
4371 check.
4372 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4373
9898e99c
AJ
43742004-06-19 Andreas Jaeger <aj@suse.de>
4375
4376 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
4377 assembler in last patch.
4378
7c3164bc
UD
43792004-06-17 Ulrich Drepper <drepper@redhat.com>
4380
4381 * sysdeps/pthread/pthread_cond_timedwait.c
4382 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4383 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4384 (__pthread_cond_timedwait): Check for invalid nanosecond in
4385 timeout value.
4386 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4387 * tst-cond19.c: New file.
4388 * Makefile: Add rules to build and run tst-cond19.
4389
72e61500
UD
43902004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4391
4392 * tst-context1.c (GUARD_PATTERN): Defined.
4393 (tst_context_t): Define struct containing ucontext_t & guard words.
4394 (ctx): Declare as an array of tst_context_t.
4395 (fct): Verify uc_link & guard words are still valid.
4396 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4397
7c370086
UD
43982004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4399
4400 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4401 Add __data.__futex field, reshuffle __data.__clock.
4402 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4403 (__pthread_cond_signal): Increment __futex at the same time as
4404 __wakeup_seq or __total_seq. Pass address of __futex instead of
4405 address of low 32-bits of __wakeup_seq to futex syscall.
4406 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4407 (__pthread_cond_wait): Likewise. Pass __futex value from before
4408 releasing internal lock to FUTEX_WAIT.
4409 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4410 (__pthread_cond_timedwait): Likewise.
4411 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4412 (FUTEX_CMP_REQUEUE): Define.
4413 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4414 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4415 Pass __futex value from before the unlock and __futex address instead
4416 of address of low 32-bits of __wakeup_seq to futex syscall.
4417 Fallback to FUTEX_WAKE all on any errors.
4418
a9e526e7
RM
44192004-06-08 Jakub Jelinek <jakub@redhat.com>
4420
4421 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4422 comment typo.
4423 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4424 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4425 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4426 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4427 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4428
f1847a84
RM
44292004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4430
4431 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4432 Add memory clobber to inline assembly.
4433 (__lll_mutex_trylock): Likewise.
4434 (__lll_mutex_cond_trylock): Likewise.
4435
f7c81e1a
UD
44362004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4437
4438 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4439 Pass val argument as 6th system call argument in %r7.
4440
75fccede
UD
44412004-05-21 Jakub Jelinek <jakub@redhat.com>
4442
4443 * Makefile (tests): Add tst-cond16.
4444 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4445 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4446 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4447 Add __data.__futex field, reshuffle __data.__clock.
4448 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
4449 (__pthread_cond_signal): Increment __futex at the same time as
4450 __wakeup_seq or __total_seq. Pass address of __futex instead of
4451 address of low 32-bits of __wakeup_seq to futex syscall.
4452 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
4453 (__pthread_cond_wait): Likewise. Pass __futex value from before
4454 releasing internal lock to FUTEX_WAIT.
4455 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
4456 (__pthread_cond_timedwait): Likewise.
4457 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
4458 (FUTEX_CMP_REQUEUE): Define.
4459 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4460 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4461 Pass __futex value from before the unlock and __futex address instead
4462 of address of low 32-bits of __wakeup_seq to futex syscall.
4463 Fallback to FUTEX_WAKE all on any errors.
4464 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4465 Define.
4466 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4467 internally. Return non-zero if error, zero if success.
4468 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4469 Add __data.__futex field, reshuffle __data.__clock.
4470 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4471 Define.
4472 (lll_futex_requeue): Add val argument, return 1 unconditionally
4473 for the time being.
4474 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4475 Add __data.__futex field, reshuffle __data.__clock.
4476 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4477 Define.
4478 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4479 internally. Return non-zero if error, zero if success.
4480 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4481 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4482 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4483 Define.
4484 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4485 internally. Return non-zero if error, zero if success.
4486 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4487 Add __data.__futex field, reshuffle __data.__clock.
4488 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4489 Define.
4490 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4491 internally. Return non-zero if error, zero if success.
4492 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4493 Add __data.__futex field, reshuffle __data.__clock.
4494 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4495 Add __data.__futex field, reshuffle __data.__clock.
4496 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4497 Increment __futex at the same time as __wakeup_seq or __total_seq.
4498 Pass address of __futex instead of address of low 32-bits of
4499 __wakeup_seq to futex syscall.
4500 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4501 Pass __futex value from before releasing internal lock
4502 to FUTEX_WAIT.
4503 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4504 Likewise. Avoid unnecessary shadowing of variables.
4505 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4506 Set __futex to 2 * __total_seq. Pass __futex value from before the
4507 unlock and __futex address instead of address of low 32-bits of
4508 __wakeup_seq to futex_requeue macro, adjust for new return value
4509 meaning.
4510 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4511 (__pthread_cond_signal): Increment __futex at the same time as
4512 __wakeup_seq or __total_seq. Pass address of __futex instead of
4513 address of low 32-bits of __wakeup_seq to futex syscall.
4514 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4515 (__pthread_cond_wait): Likewise. Pass __futex value from before
4516 releasing internal lock to FUTEX_WAIT.
4517 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4518 (__pthread_cond_timedwait): Likewise.
4519 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4520 (FUTEX_CMP_REQUEUE): Define.
4521 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4522 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4523 Pass __futex value from before the unlock and __futex address instead
4524 of address of low 32-bits of __wakeup_seq to futex syscall.
4525 Fallback to FUTEX_WAKE all on any errors.
4526
45272004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4528
4529 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4530 Add nop to align the end of critical section.
4531 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4532
fbf86dda
UD
45332004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4534
4535 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4536 Add __broadcast_seq field.
4537 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4538 all waiters as woken with woken_seq and bump broadcast counter.
4539 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4540 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4541 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4542 Comment typo fixes. Avoid returning -ETIMEDOUT.
4543
45442004-06-01 Ulrich Drepper <drepper@redhat.com>
4545
4546 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4547 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4548 Reported by Kaz Kojima.
4549
ffdd5e50
UD
45502004-05-25 Jakub Jelinek <jakub@redhat.com>
4551
4552 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4553
3abc82c8
UD
45542004-05-21 Jakub Jelinek <jakub@redhat.com>
4555
4556 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4557 __broadcast_seq with bc_seq after acquiring internal lock instead of
4558 before it.
4559
893a3511
UD
45602004-05-18 Jakub Jelinek <jakub@redhat.com>
4561
4562 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4563 compilation.
4564 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4565 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4566 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4567 (pthread_cond_t): Add __data.__broadcast_seq field.
4568 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4569 (FRAME_SIZE): Define.
4570 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4571 Comment typo fixes.
4572 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4573 Define.
4574 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4575 typo fixes.
4576 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4577 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4578 fixes.
4579
45802004-05-18 Ulrich Drepper <drepper@redhat.com>
4581
4582 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4583 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4584 Add __broadcast_seq field.
4585 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4586 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4587 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4588 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4589 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4590 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4591 all waiters as woken with woken_seq and bump broadcast counter.
4592 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4593 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4594 __broadcast_seq field.
4595 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4596 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4597 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4598 * pthread_cond_init.c: Initialize __broadcast_seq field.
4599 * Makefile (tests): Add tst-cond17 and tst-cond18.
4600 Add .NOTPARALLEL goal.
4601 * tst-cond16.c: New file. From Jakub.
4602 * tst-cond17.c: New file. From Jakub.
4603 * tst-cond18.c: New file. From Jakub.
4604
4123718e
UD
46052004-05-16 Ulrich Drepper <drepper@redhat.com>
4606
4607 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4608 unwind info.
4609
4610 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4611 Parametrize frame size. Correct some unwind info.
4612 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4613
2d7ae210
UD
46142004-05-04 Jakub Jelinek <jakub@redhat.com>
4615
4616 * tst-stack3.c: Note testing functionality beyond POSIX.
4617
50c2b6d7
UD
46182004-05-04 Jakub Jelinek <jakub@redhat.com>
4619
4620 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4621 Change conditional from ifdef to if.
4622
27b02589
UD
46232004-04-23 Jakub Jelinek <jakub@redhat.com>
4624
4625 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4626 SYSDEP_CANCEL_ERROR): Define.
4627 (PSEUDO): Use it.
4628
4bb8fc33
UD
46292004-05-01 Jakub Jelinek <jakub@redhat.com>
4630
4631 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4632
f9a06dc1
UD
46332004-04-20 Jakub Jelinek <jakub@redhat.com>
4634
4635 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4636
d3b52028
UD
46372004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4638
4639 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4640 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4641 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4642 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4643
a5dd0a6c
UD
46442004-04-19 Ulrich Drepper <drepper@redhat.com>
4645
4646 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4647 thread has all signals blocked.
4648
620c3354
AJ
46492004-04-18 Andreas Jaeger <aj@suse.de>
4650
4651 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4652 (SEM_VALUE_MAX): Add missing brace.
4653
1683daeb
UD
46542004-04-17 Jakub Jelinek <jakub@redhat.com>
4655
4656 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4657 in rt subdir.
4658 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4659 * sysdeps/pthread/tst-mqueue8x.c: New test.
4660 * tst-cancel4.c: Update comment about message queues.
4661
4662 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4663 return it_value { 0, 0 }.
4664 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4665 like SIGEV_SIGNAL.
4666 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4667 assertion for SIGEV_NONE.
4668 (thread_attr_compare): Compare all attributes, not just a partial
4669 subset.
4670
46712004-04-17 Jakub Jelinek <jakub@redhat.com>
4672
4673 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4674
f532641d
UD
46752004-04-17 Ulrich Drepper <drepper@redhat.com>
4676
4677 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4678 Just use a plain number.
4679 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4680 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4681 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4682 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4683 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4684 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4685 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4686
7eb7fdda
UD
46872004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4688
53392906
UD
4689 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4690 frame info.
4691 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4692
d7ba1313
UD
46932004-04-15 Jakub Jelinek <jakub@redhat.com>
4694
4695 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4696 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4697 of calling sigwaitinfo.
4698
5adac0e4
UD
46992004-04-16 Ulrich Drepper <drepper@redhat.com>
4700
4701 * allocatestack.c (allocate_stack): Set reported_guardsize
4702 unconditionally.
4703 * pthread_getattr_np.c (pthread_getattr_np): Use
4704 reported_guardsize instead of guardsize.
4705 * descr.h (struct pthread): Add reported_guardsize field.
4706
f93fa7d4
UD
47072004-04-13 Jakub Jelinek <jakub@redhat.com>
4708
4709 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4710
1b82c6c7
UD
47112004-04-12 Ulrich Drepper <drepper@redhat.com>
4712
4713 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4714
47152004-04-08 Jakub Jelinek <jakub@redhat.com>
4716
4717 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4718 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4719 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4720 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4721 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4722 Define.
4723 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4724 (_POSIX_MESSAGE_PASSING): Define.
4725 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4726 (_POSIX_MESSAGE_PASSING): Define.
4727 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4728 (_POSIX_MESSAGE_PASSING): Define.
4729
e6eb894e
UD
47302004-04-04 Ulrich Drepper <drepper@redhat.com>
4731
4732 * tst-context1.c (fct): Check whether correct stack is used.
4733
1e084487
UD
47342004-04-03 Ulrich Drepper <drepper@redhat.com>
4735
4e73e115
UD
4736 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4737 matching constraints for asm mem parameters.
4738
1e084487
UD
4739 * tst-clock2.c (tf): Don't define unless needed.
4740
feca5e0b
UD
47412004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4742
4743 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4744 $(gnulib).
4745
3fa21fd8
UD
47462004-03-30 Ulrich Drepper <drepper@redhat.com>
4747
4748 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4749 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4750 * pthreadP.h: Declare __nptl_deallocate_tsd.
4751 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4752 Adjust caller.
4753
4754 * Makefile (tests): Add tst-tsd5.
4755 * tst-tsd5.c: New file.
4756
8e32efa6
UD
47572004-03-29 Ulrich Drepper <drepper@redhat.com>
4758
4759 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4760 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4761 is SHLIB_COMPAT check.
4762 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4763 (__pthread_attr_getaffinity_old): Likewise.
4764 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4765 (__pthread_getaffinity_old): Likewise.
4766 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4767 (__pthread_setaffinity_old): Likewise.
4768
eec8b6ca
UD
47692004-03-26 Ulrich Drepper <drepper@redhat.com>
4770
4771 * allocatestack.c (_make_stacks_executable): Call
4772 _dl_make_stack_executable first.
4773
db2f05ba
RM
47742004-03-24 Roland McGrath <roland@redhat.com>
4775
4776 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4777 constraint instead of "0".
4778
6abbc501
UD
47792004-03-24 Ulrich Drepper <drepper@redhat.com>
4780
68dc4dcb
UD
4781 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4782 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4783
6abbc501
UD
4784 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4785 code to avoid warning.
4786
865e14d9
AJ
47872004-03-24 Andreas Jaeger <aj@suse.de>
4788
4789 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4790 (__pthread_attr_setaffinity_old): Remove const.
4791
16b06b70
UD
47922004-03-23 Ulrich Drepper <drepper@redhat.com>
4793
2c0b891a
UD
4794 * sysdeps/unix/sysv/linux/smp.h: New file.
4795 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4796 * init.c: Define __is_smp.
4797 (__pthread_initialize_minimal_internal): Call is_smp_system to
4798 initialize __is_smp.
4799 * pthreadP.h: Declare __is_smp.
4800 Define MAX_ADAPTIVE_COUNT is necessary.
4801 * pthread_mutex_init.c: Add comment regarding __spins field.
4802 * pthread_mutex_lock.c: Implement adaptive mutex type.
4803 * pthread_mutex_timedlock.c: Likewise.
4804 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4805 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4806 Add __spins field.
4807 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4808 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4809 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4810 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4811 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4812 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4813 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4814 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4815 lll_mutex_cond_trylock.
4816 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4817 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4818 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4819 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4820 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4821 Define BUSY_WAIT_NOP.
4822 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4823 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4824
4825 * tst-mutex5.c: Add support for testing adaptive mutexes.
4826 * tst-mutex7.c: Likewise.
4827 * tst-mutex5a.c: New file.
4828 * tst-mutex7a.c: New file.
4829 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4830
565699e4
UD
4831 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4832 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4833 vgettimeofday call might destroy the content.
565699e4 4834
7fe1586f
UD
4835 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4836 @pause in the loop.
4837
e408880b
UD
4838 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4839 No need to restrict type of ret. Make it int. Add comment.
4840
16b06b70
UD
4841 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4842 Remove unnecessary setne instruction.
4843
61645263
UD
48442004-03-22 Jakub Jelinek <jakub@redhat.com>
4845
4846 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4847 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4848 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4849 If realloc fails, break out of the loop.
4850
e3d4c585
AJ
48512004-03-20 Andreas Jaeger <aj@suse.de>
4852
4853 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4854 (__pthread_setaffinity_old): Fix interface.
4855 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4856 (__pthread_getaffinity_old): Likewise.
4857
4858 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4859 (__pthread_setaffinity_new): Remove duplicate declaration.
4860
3abb1ff7
UD
48612004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4862
4863 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4864 the return value to a safe register.
4865 (CDISABLE): Set the function argument correctly.
4866
07bd2a3f
UD
48672004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4868
4869 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4870 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4871 Rewrite so that only one locked memory operation per round is needed.
4872 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4873 (pthread_barrier_wait): After wakeup, release lock only when the
4874 last thread stopped using the barrier object.
4875 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4876 (__pthread_cond_wait): Don't store mutex address if the current
4877 value is ~0l. Add correct cleanup support and unwind info.
4878 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4879 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4880 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4881 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4882 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4883 Add correct cleanup support and unwind info.
4884 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4885 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4886 information for syscall wrappers.
4887
14c35863
UD
48882004-03-18 Ulrich Drepper <drepper@redhat.com>
4889
4890 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4891 cpusetsize field, remove next.
4892 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4893 parameter for size of the CPU set.
4894 (pthread_setaffinity_np): Likewise.
4895 (pthread_attr_getaffinity_np): Likewise.
4896 (pthread_attr_setaffinity_np): Likewise.
4897 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4898 interface change, keep compatibility code.
4899 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4900 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4901 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4902 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4903 __pthread_getaffinity_np.
4904 * Versions: Add version for changed interfaces.
4905 * tst-attr3.c: Adjust test for interface change.
4906 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4907 increasing buffer sizes.
4908 * pthread_attr_destroy.c: Remove unused list handling.
4909 * pthread_attr_init.c: Likewise.
4910
8e115d80
RM
49112004-03-17 Roland McGrath <roland@redhat.com>
4912
4913 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4914 first argument to clock_getres so we ever enable kernel timers.
4915
e3b22ad3
UD
49162004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4917
4918 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4919
841153fa
RH
49202004-03-12 Richard Henderson <rth@redhat.com>
4921
e3b22ad3
UD
4922 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4923 oldvalue from CENABLE to CDISABLE.
841153fa 4924
932dfea7
UD
49252004-03-12 Ulrich Drepper <drepper@redhat.com>
4926
4927 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4928 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4929 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4930 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4931
9852f6dc
RH
49322004-03-11 Richard Henderson <rth@redhat.com>
4933
4934 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4935 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4936 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4937
43513fb7
UD
49382004-03-11 Jakub Jelinek <jakub@redhat.com>
4939
4940 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4941 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4942 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4943
49442004-03-11 Jakub Jelinek <jakub@redhat.com>
4945
4946 * forward.c (__pthread_cond_broadcast_2_0,
4947 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
4948 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
4949 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
4950
8a3e10e0
UD
49512004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4952
4953 * sysdeps/sh/tcb-offsets.sym: Add PID.
4954 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
4955 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
4956
6d3a2bec
UD
49572004-03-10 Ulrich Drepper <drepper@redhat.com>
4958
4959 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
4960 include <sysdep-cancel.h>, vfork is no cancellation point.
4961 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
4962 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
4963 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
4964
d3a4a571
UD
49652004-03-10 Jakub Jelinek <jakub@redhat.com>
4966
73b4ce64
UD
4967 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
4968 libc_hidden_def.
4969 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
4970 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
4971 Likewise.
4972 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
4973 Likewise.
4974 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
4975 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
4976 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
4977 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
4978 of DO_CALL_VIA_BREAK. Work around a gas problem.
4979
d682a515
UD
4980 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
4981 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
4982 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
4983 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
4984 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
4985 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
4986
4987 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
4988 a local register for saving old PID. Negate PID in parent upon exit.
4989
d3a4a571
UD
4990 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
4991 tcb-offsets.h.
4992 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4993 before syscall, set to the old value in the parent afterwards.
4994 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
4995 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
4996 tcb-offsets.h.
4997 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4998 before syscall, set to the old value in the parent afterwards.
4999 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
5000 * sysdeps/s390/tcb-offsets.sym: Add PID.
5001
5002 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
5003 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
5004 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
5005 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
5006 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
5007 * sysdeps/sparc/tcb-offsets.sym: Add PID.
5008
50092004-03-10 Andreas Schwab <schwab@suse.de>
5010
5011 * sysdeps/ia64/tcb-offsets.sym: Add PID.
5012 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
5013 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
5014
3f2fb223 50152004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 5016
3f2fb223
UD
5017 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
5018 * tst-cancel21.c (do_one_test): Likewise.
5019 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 5020
8b9d6054
UD
50212004-02-09 Jakub Jelinek <jakub@redhat.com>
5022
5023 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
5024 if non-zero and set to INT_MIN if zero.
5025 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
5026 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
5027 (SAVE_PID, RESTORE_PID): Define.
5028 (__vfork): Use it.
5029 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
5030 Use relative path to avoid including NPTL i386/vfork.S.
5031 (SAVE_PID, RESTORE_PID): Define.
5032 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
5033 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
5034 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
5035 tst-vfork2x.
5036 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
5037 * tst-vfork1.c: New test.
5038 * tst-vfork2.c: New test.
5039 * tst-vfork1x.c: New test.
5040 * tst-vfork2x.c: New test.
5041
02287d05
UD
50422004-03-08 Ulrich Drepper <drepper@redhat.com>
5043
c072ef6d 5044 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 5045 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 5046 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 5047 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 5048
d4acd24b
UD
50492004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
5050
5051 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
5052
8acb4b81
UD
50532004-03-08 H.J. Lu <hongjiu.lu@intel.com>
5054
5055 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
5056 _rtld_global_ro.
5057
4d1a02ef
UD
50582004-03-07 Ulrich Drepper <drepper@redhat.com>
5059
001836c8 5060 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 5061 _rtld_global_ro.
001836c8 5062
4d1a02ef
UD
5063 * tst-once4.c: Remove unnecessary macro definition.
5064
5065 * tst-mutex7.c (do_test): Limit thread stack size.
5066 * tst-once2.c (do_test): Likewise.
5067 * tst-tls3.c (do_test): Likewise.
5068 * tst-tls1.c (do_test): Likewise.
5069 * tst-signal3.c (do_test): Likewise.
5070 * tst-kill6.c (do_test): Likewise.
5071 * tst-key4.c (do_test): Likewise.
5072 * tst-join4.c (do_test): Likewise.
5073 * tst-fork1.c (do_test): Likewise.
5074 * tst-context1.c (do_test): Likewise.
5075 * tst-cond2.c (do_test): Likewise.
5076 * tst-cond10.c (do_test): Likewise.
5077 * tst-clock2.c (do_test): Likewise.
5078 * tst-cancel10.c (do_test): Likewise.
5079 * tst-basic2.c (do_test): Likewise.
5080 * tst-barrier4.c (do_test): Likewise.
5081
aa420660
UD
50822004-03-05 Ulrich Drepper <drepper@redhat.com>
5083
5084 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
5085
cff08c81
UD
50862004-03-01 Ulrich Drepper <drepper@redhat.com>
5087
5088 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5089 (__pthread_cond_timedwait): Optimize wakeup test.
5090 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5091 (__pthread_cond_wait): Likewise.
5092 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5093 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5094 Likewise.
5095
b7fe377c
UD
50962004-02-29 Ulrich Drepper <drepper@redhat.com>
5097
5098 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5099 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
5100 the atomic instruction needed.
5101 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5102 (__lll_mutex_lock_wait): Likewise.
5103
4c771a3b
UD
51042004-02-28 Ulrich Drepper <drepper@redhat.com>
5105
5106 * Makefile (tests): Add tst-cond14 and tst-cond15.
5107 * tst-cond14.c: New file.
5108 * tst-cond15.c: New file.
5109
a2c33d5a
UD
51102004-02-27 Ulrich Drepper <drepper@redhat.com>
5111
5112 * sysdeps/pthread/createthread.c (create_thread): Remove use of
5113 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
5114 needs to be implemented differently to be useful.
5115
261eada2
UD
51162004-02-26 Ulrich Drepper <drepper@redhat.com>
5117
14ffbc83
UD
5118 * pthread_attr_setschedparam.c: Don't test priority against limits
5119 here. Set ATTR_FLAG_SCHED_SET flag.
5120 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
5121 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
5122 from parent thread to child. If attribute is used and scheduling
5123 parameters are not inherited, copy parameters from attribute or
5124 compute them. Check priority value.
5125 * pthread_getschedparam.c: If the parameters aren't known yet get
5126 them from the kernel.
5127 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
5128 ATTR_FLAG_POLICY_SET flag for thread.
5129 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
5130 and ATTR_FLAG_POLICY_SET.
5131
5132 * sysdeps/pthread/createthread.c: Use tgkill if possible.
5133
261eada2
UD
5134 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
5135 fail if stack address hasn't been set. Just return 0.
5136
701d185c
UD
51372004-02-25 Ulrich Drepper <drepper@redhat.com>
5138
25b8e63c
UD
5139 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
5140 libpthread for the files in this list.
5141 (CFLAGS-tst-unload): Removed.
5142 * tst-unload.c (do_test): Don't use complete path for
5143 LIBPHREAD_SO.
5144
701d185c
UD
5145 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
5146 tst-_res1mod2.
5147
a8fd5a02
UD
51482004-02-22 Ulrich Drepper <drepper@redhat.com>
5149
5150 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5151 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
5152 operation per round is needed.
5153 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5154 (__lll_mutex_lock_wait): Likewise.
5155
dd0b7b19
UD
51562004-02-20 Ulrich Drepper <drepper@redhat.com>
5157
5158 * tst-cancel9.c (cleanup): Don't print to stderr.
5159
5990e1fe
UD
51602004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5161
5162 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
5163
33ab3b66
UD
51642004-02-20 Jakub Jelinek <jakub@redhat.com>
5165
1be3130e
UD
5166 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
5167 (__syscall_error_handler2): Call CDISABLE.
5168 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
5169 (__syscall_error_handler2): Call CDISABLE.
5170
8ba5025a
UD
5171 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5172 Release lock before the loop, don't reacquire it.
8ba5025a 5173
33ab3b66
UD
5174 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
5175
11986c68
UD
51762004-02-19 Andreas Schwab <schwab@suse.de>
5177
5178 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5179 Fix last change.
5180
dc391246
UD
51812004-02-18 Ulrich Drepper <drepper@redhat.com>
5182
37c054c7
UD
5183 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5184 (pthread_barrier_wait): After wakeup, release lock only when the
5185 last thread stopped using the barrier object.
5186 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
5187 (pthread_barrier_wait): Likewise.
5188 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5189 Likewise.
5190 * Makefile (tests): Add tst-barrier4.
5191 * tst-barrier4.c: New file.
dc391246
UD
5192
5193 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5194 (__pthread_cond_timedwait): Perform timeout test while holding
5195 internal lock to prevent wakeup race.
5196 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5197 * sysdeps/pthread/pthread_cond_timedwait.c
5198 (__pthread_cond_timedwait): Likewise.
5199 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5200 (__pthread_cond_timedwait): Likewise.
5201
4a08113c
UD
52022004-02-18 Jakub Jelinek <jakub@redhat.com>
5203
5204 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
5205 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
5206 * Makefile (tests): Add tst-rwlock13.
5207 * tst-rwlock13.c: New test.
5208
71b1675e
UD
52092004-02-16 Ulrich Drepper <drepper@redhat.com>
5210
5211 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5212 (__condvar_tw_cleanup): Little optimization.
5213 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5214
cd9fdc72
UD
52152004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
5216
5217 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
5218 libpthread as "lib" parameter to SHLIB_COMPAT.
5219 (__novmx_siglongjmp): Fix typo in function name.
5220 (__novmx_longjmp): Fix typo in function name.
5221
82038750
UD
52222004-02-13 Ulrich Drepper <drepper@redhat.com>
5223
b078c591
UD
5224 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
5225 __builtin_expect.
5226
82038750
UD
5227 * sysdeps/generic/pt-longjmp.c: Moved to...
5228 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
5229
e2982bf0
UD
52302004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
5231
5232 * Makefile (libpthread-routines): Add pt-cleanup.
5233 * pt-longjmp.c: Removed.
5234 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
5235 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
5236 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
5237 Version longjmp, siglongjmp for GLIBC_2.3.4.
5238 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
5239
3730d95c
UD
52402004-02-13 Ulrich Drepper <drepper@redhat.com>
5241
219304ec
UD
5242 * sysdeps/pthread/pthread_cond_timedwait.c
5243 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
5244 Reuse code. Add __builtin_expects.
5245
3730d95c
UD
5246 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5247 (__pthread_cond_timedwait): Get internal lock in case timeout has
5248 passed before the futex syscall.
5249 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5250
5673ccc1
UD
52512004-01-20 Ulrich Drepper <drepper@redhat.com>
5252
debddf64
UD
5253 * allocatestack.c: Pretty printing.
5254
5673ccc1
UD
5255 * sysdeps/pthread/createthread.c (create_thread): Don't add
5256 CLONE_DETACHED bit if it is not necessary.
5257
6bae8725
UD
52582004-01-16 Ulrich Drepper <drepper@redhat.com>
5259
5260 * pthread_getattr_np.c: Include ldsodefs.h.
5261
ff151400
RH
52622004-01-16 Richard Henderson <rth@redhat.com>
5263
6bae8725
UD
5264 * allocatestack.c: Don't declare __libc_stack_end.
5265 * init.c (__pthread_initialize_minimal_internal): Likewise.
5266 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 5267
ba683832
RH
52682004-01-15 Richard Henderson <rth@redhat.com>
5269
5270 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
5271 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
5272 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
5273 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
5274 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
5275 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
5276 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
5277 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
5278
630d93a7
UD
52792004-01-14 Ulrich Drepper <drepper@redhat.com>
5280
219304ec 5281 * init.c (pthread_functions): Make array const.
630d93a7 5282
d1fc817e
UD
52832004-01-13 Ulrich Drepper <drepper@redhat.com>
5284
5285 * allocatestack.c (__make_stacks_executable): Change interface.
5286 Check parameters. Pass parameter on to libc counterpart.
5287 * pthreadP.h: Change declaration.
5288
dc927809
RH
52892004-01-13 Richard Henderson <rth@redhat.com>
5290
10677727
UD
5291 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
5292 prototype form.
5293 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
5294 Likewise.
5295
d1fc817e
UD
5296 * sysdeps/alpha/Makefile: New file.
5297 * sysdeps/alpha/tcb-offsets.sym: New file.
5298 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
5299 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 5300
d1fc817e
UD
5301 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
5302 on powerpc version.
dc927809 5303
249a3d0c
UD
53042004-01-08 Jakub Jelinek <jakub@redhat.com>
5305
5306 * Makefile (tests): Add tst-backtrace1.
5307 * tst-backtrace1.c: New test.
5308
763c0490
RM
53092003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
5310
5311 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
5312 register as second parameter to the REGISTER macro.
5313 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
5314 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
5315 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
5316 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
5317 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
5318 of thread register as second parameter to REGISTER macro in 64 case.
5319
c7baafd5
UD
53202004-01-03 Ulrich Drepper <drepper@redhat.com>
5321
5322 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
5323 (CFLAGS-getpid.o): Defined.
5324 (CFLAGS-getpid.os): Defined.
5325
25ac0258
UD
53262003-12-31 Ulrich Drepper <drepper@redhat.com>
5327
5328 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
5329 returned for main thread does not overlap with any other VMA.
5330 Patch by Jakub Jelinek.
5331
795985e4
UD
53322003-12-29 Jakub Jelinek <jakub@redhat.com>
5333
5334 * tst-raise1.c: Include stdio.h.
5335
cb5b9388
UD
53362003-12-23 Jakub Jelinek <jakub@redhat.com>
5337
5338 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
5339 setting with __ASSUME_TGKILL || defined __NR_tgkill.
5340 If pid is 0, set it to selftid.
5341 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
5342 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
5343 != 0, return self->tid without doing a syscall.
5344 * descr.h (struct pthread): Move pid field after tid.
5345
5346 * Makefile (tests): Add tst-raise1.
5347 * tst-raise1.c: New file.
5348
432aaf5b
RM
53492003-12-23 Roland McGrath <roland@redhat.com>
5350
5351 * tst-oddstacklimit.c: New file.
5352 * Makefile (tests): Add it.
5353 (tst-oddstacklimit-ENV): New variable.
5354
5355 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
5356 value up to page size for __default_stacksize.
5357
33ebea17
UD
53582003-12-21 Ulrich Drepper <drepper@redhat.com>
5359
5360 * Makefile (tests): Add tst-eintr5.
5361 * tst-eintr5.c: New file.
5362
5363 * eintr.c (eintr_source): Prevent sending signal to self.
5364
5365 * tst-eintr2.c (tf1): Improve error message.
5366
bbe35eb5
UD
53672003-12-20 Ulrich Drepper <drepper@redhat.com>
5368
5369 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
5370 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
5371 * pthread_cancel.c: Add comment explaining use of PID field.
5372 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5373 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
5374 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
5375 temporarily to signal the field must not be relied on and updated
5376 by getpid().
5377 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
5378 temporarily negative.
5379 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 5380
4efdd8d3
UD
53812003-12-19 Ulrich Drepper <drepper@redhat.com>
5382
5383 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5384 (eintr_source): If ARG != NULL, use pthread_kill.
5385 * tst-eintr1.c: Adjust for this change.
5386 * tst-eintr2.c: Likewise.
5387 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5388 * tst-eintr3.c: New file.
5389 * tst-eintr4.c: New file.
5390
53912003-12-19 Jakub Jelinek <jakub@redhat.com>
5392
5393 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5394 if CANCELSTATE_BITMASK is set.
5395 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5396 Likewise.
5397
5398 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5399 (tests-reverse): Add tst-cancel23.
5400 * tst-cancel22.c: New test.
5401 * tst-cancel23.c: New test.
5402
675620f7
UD
54032003-12-18 Ulrich Drepper <drepper@redhat.com>
5404
5405 * tst-eintr1.c: Better error messages.
5406
5407 * Makefile (tests): Add tst-eintr2.
5408 * tst-eintr2.c: New file.
5409
54102003-12-18 Jakub Jelinek <jakub@redhat.com>
5411
5412 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5413 (CFLAGS-tst-cancelx21.c): Set.
5414 * tst-cancel21.c: New test.
5415 * tst-cancelx21.c: New test.
5416
5417 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5418 comparison operand.
5419 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5420 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5421 * pt-longjmp.c: Include jmpbuf-unwind.h.
5422 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5423 _JMPBUF_UNWINDS. Adjust compared pointers.
5424 * init.c (__pthread_initialize_minimal_internal): Initialize
5425 pd->stackblock_size.
5426 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5427 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5428 * sysdeps/i386/jmpbuf-unwind.h: New file.
5429 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5430 * sysdeps/s390/jmpbuf-unwind.h: New file.
5431 * sysdeps/sh/jmpbuf-unwind.h: New file.
5432 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5433 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5434 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5435 (_JMPBUF_CFA_UNWINDS): Remove.
5436 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5437
54382003-12-12 Jakub Jelinek <jakub@redhat.com>
5439
5440 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5441 (CFLAGS-tst-cancelx20.c): Set.
5442 * tst-cancel20.c: New test.
5443 * tst-cancelx20.c: New test.
5444
2d951ab6
UD
54452003-12-17 Ulrich Drepper <drepper@redhat.com>
5446
5447 * init.c (__pthread_initialize_minimal_internal): Don't treat
5448 architectures with separate register stack special here when
5449 computing default stack size.
5450
f8a3a2e7
RM
54512003-12-17 Roland McGrath <roland@redhat.com>
5452
5453 * Makefile (tst-cancelx7-ARGS): New variable.
5454 Reportd by Greg Schafer <gschafer@zip.com.au>.
5455
e796f92f
UD
54562003-12-17 Jakub Jelinek <jakub@redhat.com>
5457
5458 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5459 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5460 (tst-stack3-ENV): Set.
5461 ($(objpfx)tst-stack3-mem): New.
5462 * tst-stack3.c: New test.
5463
092eb73c
UD
54642003-12-10 David Mosberger <davidm@hpl.hp.com>
5465
5466 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5467 Add unwind directives. Drop unused .regstk directive.
5468 (_fini_EPILOG_BEGINS): Add unwind directives.
5469
ff48874d
UD
54702003-12-11 Ulrich Drepper <drepper@redhat.com>
5471
5472 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5473 Assume parameter is a pointer.
5474 (lll_futex_wake): Likewise.
20945457
UD
5475 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5476 Likewise.
5477 (lll_futex_wake): Likewise.
ff48874d
UD
5478 Reported by Boris Hu.
5479 * sysdeps/unix/sysv/linux/unregister-atfork.c
5480 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5481
5482 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5483
1d9d0b80
UD
54842003-12-10 Ulrich Drepper <drepper@redhat.com>
5485
5486 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5487 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5488 __rtld_lock_initialize for ld.so lock.
5489 Patch in part by Adam Li <adam.li@intel.com>.
5490
c776b3d7
UD
54912003-12-02 David Mosberger <davidm@hpl.hp.com>
5492
5493 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5494 in $(gnulib). Also, remove stale comment.
5495
54962003-11-12 David Mosberger <davidm@hpl.hp.com>
5497
5498 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5499 advantage of new syscall stub and optimize accordingly.
5500
5501 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5502 from SYS_futex, to match expectations of
5503 sysdep.h:DO_INLINE_SYSCALL.
5504 (lll_futex_clobbers): Remove.
5505 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5506 (lll_futex_wake): Likewise.
5507 (lll_futex_requeue): Likewise.
5508 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5509 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5510 Jelinek).
5511 (__lll_mutex_lock): Likewise.
5512 (__lll_mutex_cond_lock): Likewise.
5513 (__lll_mutex_timed_lock): Likewise.
5514 (__lll_mutex_unlock): Likewise.
5515 (__lll_mutex_unlock_force): Likewise.
5516
5517 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5518 comes before the include of <sysdep.h>.
5519 (THREAD_SELF_SYSINFO): New macro.
5520 (THREAD_SYSINFO): Likewise.
5521 (INIT_SYSINFO): New macro.
5522 (TLS_INIT_TP): Call INIT_SYSINFO.
5523
5524 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5525
5526 * sysdeps/pthread/createthread.c (create_thread): Use
5527 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5528 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5529 THREAD_SELF_SYSINFO instead of open code.
5530 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5531 (THREAD_SYSINFO): Likewise.
5532
5533 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5534
5535 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5536
57d20ee7
UD
55372003-12-06 Ulrich Drepper <drepper@redhat.com>
5538
5539 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5540 instead of .init. Patch by David Mosberger.
5541
67aeab2a
AJ
55422003-11-30 Thorsten Kukuk <kukuk@suse.de>
5543
5544 * sysdeps/pthread/configure.in: Remove broken declaration in C
5545 cleanup handling check.
5546
8ca203e6
AJ
55472003-11-30 Andreas Jaeger <aj@suse.de>
5548
5549 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5550 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5551 Likewise.
5552
46bf9de7
UD
55532003-11-27 Jakub Jelinek <jakub@redhat.com>
5554
5555 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5556 * pthread_attr_destroy.c: Include shlib-compat.h.
5557 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5558 is set in iattr->flags.
5559 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5560
1d9b73ab
UD
55612003-11-21 Jakub Jelinek <jakub@redhat.com>
5562
5563 * Makefile (distribute): Add tst-cleanup4aux.c.
5564
5565 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5566 include.
5567
53f9084e
UD
55682003-11-21 Ulrich Drepper <drepper@redhat.com>
5569
1d9b73ab
UD
5570 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5571 pthread_cond_signal.
5572
e42a990e
UD
5573 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5574 store mutex address if the current value is ~0l.
5575 * sysdeps/pthread/pthread_cond_timedwait.c
5576 (__pthread_cond_timedwait): Likewise.
5577 * sysdeps/pthread/pthread_cond_broadcast.c
5578 (__pthread_cond_broadcast): Don't use requeue for pshared
5579 condvars.
5580
5581 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5582 (__pthread_cond_wait): Don't store mutex address if the current
5583 value is ~0l.
5584 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5585 (__pthread_cond_timedwait): Likewise.
5586 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5587 (__pthread_cond_broadcast): Don't use requeue for pshared
5588 condvars.
5589
5590 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5591 element with ~0l for pshared condvars, with NULL otherwise.
5592
5593 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5594 (__pthread_cond_wait): Don't store mutex address if the current
5595 value is ~0l.
5596 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5597 (__pthread_cond_timedwait): Likewise.
5598 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5599 (__pthread_cond_broadcast): Don't use requeue for pshared
5600 condvars.
5601
bf68b236 5602 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5603 * tst-cond12.c: New file.
bf68b236 5604 * tst-cond13.c: New file.
53f9084e 5605
9780c971
UD
56062003-11-17 Ulrich Drepper <drepper@redhat.com>
5607
5608 * sysdeps/pthread/configure.in: Make missing forced unwind support
5609 fatal.
5610
74e12fbc
UD
56112003-11-11 Ulrich Drepper <drepper@redhat.com>
5612
5613 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5614
c685b2b0
UD
56152003-11-06 Ulrich Drepper <drepper@redhat.com>
5616
5617 * Makefile: Add magic to clean up correctly.
5618
44e94149
UD
56192003-11-05 Jakub Jelinek <jakub@redhat.com>
5620
5621 * unwind.c (FRAME_LEFT): Define.
5622 (unwind_stop): Handle old style cleanups here.
5623 (__pthread_unwind): Handle old style cleanups only if
5624 !HAVE_FORCED_UNWIND.
5625 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5626 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5627 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5628 ($(objpfx)tst-cleanupx4): Likewise.
5629 * tst-cleanup4.c: New test.
5630 * tst-cleanup4aux.c: New.
5631 * tst-cleanupx4.c: New test.
5632
c28422b5
UD
56332003-11-04 Ulrich Drepper <drepper@redhat.com>
5634
5635 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5636 lll_mutex_*lock macros to skip atomic operations on some archs.
5637
27176677
UD
56382003-11-03 Ulrich Drepper <drepper@redhat.com>
5639
5640 * sysdeps/pthread/tst-timer.c (main): Initialize
5641 sigev2.sigev_value as well.
5642
026395a2
RM
56432003-10-15 Roland McGrath <roland@redhat.com>
5644
5645 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5646 is missing.
5647 * sysdeps/pthread/configure: Regenerated.
5648
fa3cbe3d
UD
56492003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5650
5651 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5652 locking macros. No distinction between normal and mutex locking
5653 anymore.
5654 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5655 Merge bits from lowlevelmutex.S we still need.
5656 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5657 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5658 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5659 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5660 new mutex implementation.
5661 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5662 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5663 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5664 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5665 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5666 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5667 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5668 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5669 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5670 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5671 symbol for entry point to avoid cancellation.
5672
e700a908
UD
56732003-10-07 Jakub Jelinek <jakub@redhat.com>
5674
5675 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5676 changes.
5677 (SAVE_OLDTYPE_0): Fix a typo.
5678
c70a86b6
UD
56792003-10-03 Ulrich Drepper <drepper@redhat.com>
5680
5681 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5682 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5683
134abcb5
UD
56842003-10-02 Ulrich Drepper <drepper@redhat.com>
5685
5686 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5687 correct offset.
5688
b77ca0e8
UD
56892003-10-02 Jakub Jelinek <jakub@redhat.com>
5690
5691 * Makefile (tests): Add tst-cancel19.
5692 * tst-cancel19.c: New test.
5693
4d961dc7
UD
56942003-10-02 Ulrich Drepper <drepper@redhat.com>
5695
5696 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5697 restoring of the old cancellation type.
5698
1d5b20ad 56992003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5700
1d5b20ad
UD
5701 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5702
4106a403
RM
57032003-09-27 Wolfram Gloger <wg@malloc.de>
5704
4d961dc7 5705 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5706
fca9d8e4
RM
57072003-09-24 Roland McGrath <roland@redhat.com>
5708
5709 * allocatestack.c (__make_stacks_executable): Don't ignore return
5710 value from _dl_make_stack_executable.
5711
c9c60884
UD
57122003-09-24 Ulrich Drepper <drepper@redhat.com>
5713
69c9fa04
UD
5714 * allocatestack.c (__make_stacks_executable): Also change
5715 permission of the currently unused stacks.
5716
279f1143
UD
5717 * allocatestack.c (change_stack_perm): Split out from
5718 __make_stacks_executable.
5719 (allocate_stack): If the required permission changed between the time
5720 we started preparing the stack and queueing it, change the permission.
5721 (__make_stacks_executable): Call change_stack_perm.
5722
c9c60884
UD
5723 * Makefile: Build tst-execstack-mod locally.
5724 * tst-execstack-mod.c: New file.
5725
54ee14b3
UD
57262003-09-23 Jakub Jelinek <jakub@redhat.com>
5727
5728 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5729
57302003-09-23 Roland McGrath <roland@redhat.com>
5731
5732 * tst-execstack.c: New file.
5733 * Makefile (tests): Add it.
5734 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5735 (LDFLAGS-tst-execstack): New variable.
5736
5737 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5738 whether to use PROT_EXEC for stack mmap.
5739 (__make_stacks_executable): New function.
5740 * pthreadP.h: Declare it.
5741 * init.c (__pthread_initialize_minimal_internal): Set
5742 GL(dl_make_stack_executable_hook) to that.
5743
365b1602
UD
57442003-09-22 Ulrich Drepper <drepper@redhat.com>
5745
5746 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5747 recommendation from AMD re avoidance of lock prefix.
5748
39358e8b
UD
57492003-09-22 Jakub Jelinek <jakub@redhat.com>
5750
5751 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5752 lll_futex_timed_wait instead of lll_futex_wait.
5753 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5754 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5755 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5756 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5757 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5758 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5759 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5760 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5761 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5762 Completely revamp the locking macros. No distinction between
5763 normal and mutex locking anymore.
5764 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5765 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5766 __lll_lock_timedwait): Fix prototypes.
5767 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5768 __lll_lock_timedwait): Likewise.
5769 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5770 macros, add __builtin_expect.
5771 (lll_mutex_timedlock): Likewise. Fix return value.
5772 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5773 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5774 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5775 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5776 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5777 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5778 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5779 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5780
9d08fbbb
UD
57812003-09-22 Ulrich Drepper <drepper@redhat.com>
5782
c0df57e1
UD
5783 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5784 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5785 operation if possible.
5786
9d08fbbb
UD
5787 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5788 like jumping over the lock prefix.
5789
71451de2
UD
57902003-09-21 Ulrich Drepper <drepper@redhat.com>
5791
5792 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5793 locking macros. No distinction between normal and mutex locking
5794 anymore.
3a226d33 5795 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5796 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5797 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5798 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5799 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5800 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5801 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5802 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5803 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5804 * Makefile (routines): Remove libc-lowlevelmutex.
5805 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5806 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5807 for new mutex implementation.
5808 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5809 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5810 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5811 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5812 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5813 Likewise.
5814 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5815 Likewise.
5816 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5817 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5818 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5819 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5820 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5821 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5822 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5823 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5824 Likewise.
5825 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5826 Likewise.
5827 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5828 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5829 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5830 Don't use requeue.
5831 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5832 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5833
8f31c0ef
UD
58342003-09-20 Ulrich Drepper <drepper@redhat.com>
5835
56a4aa98
UD
5836 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5837 in parameters of asm with output parameters.
5838
8f31c0ef
UD
5839 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5840 type of DECR parameter to int.
5841 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5842
8b8074da
UD
58432003-09-18 Jakub Jelinek <jakub@redhat.com>
5844
5845 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5846 guardsize for each thread.
5847
65af7e61
UD
58482003-09-17 Jakub Jelinek <jakub@redhat.com>
5849
9ba96eda
UD
5850 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5851 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5852 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5853
06f6ca90
UD
5854 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5855 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5856 NULL.
5857 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5858 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5859 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5860 (pthread_getaffinity_np): Add hidden_def.
5861
5862 * Makefile (tests): Add tst-attr3.
5863 * tst-attr3.c: New test.
5864
65af7e61
UD
5865 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5866
3402852c
UD
58672003-09-15 Jakub Jelinek <jakub@redhat.com>
5868
5869 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5870 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5871
a4db3439
UD
58722003-09-17 Jakub Jelinek <jakub@redhat.com>
5873
5874 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5875 * tst-align.c: Include tst-stack-align.h.
5876 (tf, do_test): Use TEST_STACK_ALIGN macro.
5877
58782003-09-17 Ulrich Drepper <drepper@redhat.com>
5879
5880 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5881 variable.
5882
92ce4676
UD
58832003-09-16 Ulrich Drepper <drepper@redhat.com>
5884
5885 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5886 stack-related values for the initial thread.
5887
e07bb02a
UD
58882003-09-15 Jakub Jelinek <jakub@redhat.com>
5889
5890 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5891
d087b5dc
UD
58922003-09-11 Ulrich Drepper <drepper@redhat.com>
5893
5894 * pthread_mutex_lock.c: Minor code rearrangements.
5895
7f08f55a
RM
58962003-09-05 Roland McGrath <roland@redhat.com>
5897
5898 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5899 Instead, include ../nptl_db/db_info.c to do its magic.
5900 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5901 (__pthread_pthread_key_2ndlevel_size): Likewise.
5902 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5903 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5904 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5905 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5906 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5907 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5908 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5909 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5910 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5911 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5912 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5913 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5914 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5915 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5916 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5917 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5918 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5919
806e4a4a
UD
59202003-09-08 Ulrich Drepper <drepper@redhat.com>
5921
5922 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5923 of pthread_t to be compatible with LT.
5924 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5925 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5926 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5927 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5928 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5929 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5930 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5931
17f83e56
UD
59322003-09-04 Ulrich Drepper <drepper@redhat.com>
5933
5934 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5935
58e8ec84
UD
59362003-09-04 Jakub Jelinek <jakub@redhat.com>
5937
5938 * unwind-forcedunwind.c: Move to...
5939 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5940 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5941 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5942 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5943 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5944 * unwind.c: Include jmpbuf-unwind.h.
5945 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5946
abf1cf21
JJ
59472003-09-02 Jakub Jelinek <jakub@redhat.com>
5948
4a244f0d
UD
5949 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
5950 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
5951 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
5952 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
5953 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5954 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
5955 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
5956 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
5957 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
5958 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
5959 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
5960 function.
5961 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
5962 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
5963 * Makefile (tests): Add tst-stack2.
5964 * tst-stack2.c: New test.
5965 * tst-stack1.c: Include limits.h and sys/param.h.
5966 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
5967
e29ef647
UD
5968 * pthread_condattr_setpshared.c: Include errno.h.
5969 (pthread_condattr_setpshared): Return EINVAL if pshared
5970 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
5971
5777d565
UD
5972 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
5973 defined symbol for entry point to avoid cancellation.
5974 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5975 Likewise.
5976 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5977 Likewise.
5978 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5979 Likewise.
5980 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
5981 Likewise.
5982 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5983 Likewise.
5984 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
5985 __close_nocancel, __read_nocancel, __write_nocancel,
5986 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
5987 libpthread.so or librt.so, define to corresponding function
5988 without _nocancel suffix.
5989 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
5990 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
5991 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
5992
abf1cf21
JJ
5993 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
5994
8348dcc8
UD
59952003-09-02 Ulrich Drepper <drepper@redhat.com>
5996
5997 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 5998 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
5999
6000 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
6001 in subsections has a symbol associated with it.
6002
6003 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
6004 defined symbol for entry point to avoid cancellation.
6005 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
6006
c874a32e
UD
60072003-09-01 Jakub Jelinek <jakub@redhat.com>
6008
6009 * Makefile (tests): Add tst-tls5.
6010 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
6011 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
6012 ($(objpfx)tst-tls5): New.
6013 ($(objpfx)tst-tls6.out): Likewise.
6014 (tests): Depend on $(objpfx)tst-tls6.out.
6015 * tst-tls3.c: Include stdint.h and pthreaddef.h.
6016 (do_test): Check pthread_self () return value alignment.
6017 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
6018 (tf): Check pthread_self () return value alignment.
6019 * tst-tls5.c: New test.
6020 * tst-tls5.h: New.
6021 * tst-tls5mod.c: New.
6022 * tst-tls5moda.c: New.
6023 * tst-tls5modb.c: New.
6024 * tst-tls5modc.c: New.
6025 * tst-tls5modd.c: New.
6026 * tst-tls5mode.c: New.
6027 * tst-tls5modf.c: New.
6028 * tst-tls6.sh: New test.
6029
c503d3dc
UD
6030 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
6031 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
6032 * init.c (pthread_functions): Initialize them.
6033 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
6034 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
6035 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
6036 pthread_cond_timedwait@@GLIBC_2.3.2.
6037
48614753
JJ
60382003-09-01 Jakub Jelinek <jakub@redhat.com>
6039
56a1b877
JJ
6040 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
6041 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
6042 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
6043 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
6044 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
6045 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6046
6047 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
6048
48614753
JJ
6049 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
6050 _POSIX_THREAD_PRIORITY_SCHEDULING.
6051 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6052
28c97261
UD
60532003-08-31 Ulrich Drepper <drepper@redhat.com>
6054
eef80cf8
UD
6055 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
6056 nested function, use static inline function from libio.h.
6057 Code by Richard Henderson.
6058
28c97261
UD
6059 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
6060 weak.
6061
cd2fbe58
UD
60622003-08-30 Jakub Jelinek <jakub@redhat.com>
6063
6064 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
6065 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
6066 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
6067 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
6068 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
6069 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
6070 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
6071 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
6072 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
6073 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
6074 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
6075 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
6076 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
6077 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
6078 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
6079 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
6080 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
6081 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
6082 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
6083 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
6084 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
6085 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
6086 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
6087 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
6088 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
6089 * sysdeps/sparc/tls.h: New file.
6090 * sysdeps/sparc/tcb-offsets.sym: New file.
6091 * sysdeps/sparc/Makefile: New file.
6092 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
6093 * init.c [__sparc__] (__NR_set_tid_address): Define.
6094
feda52c0
UD
60952003-08-29 Jakub Jelinek <jakub@redhat.com>
6096
6097 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
6098 _IO_release_lock): Define.
6099
7c868816
JJ
61002003-08-29 Jakub Jelinek <jakuB@redhat.com>
6101
0261d33f 6102 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
6103 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
6104
68b9e1ae
UD
61052003-08-27 Ulrich Drepper <drepper@redhat.com>
6106
6107 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
6108 (__pthread_cleanup_class): Add missing return types of member
6109 functions.
6110
13b3edfc
UD
61112003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
6112
6113 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6114 (lll_mutex_unlock_force): Add memory barrier between store and futex
6115 syscall.
6116
bb606fbe
UD
61172003-08-25 Ulrich Drepper <drepper@redhat.com>
6118
6119 * tst-cancel4.c (do_test): Also unlink tempfname and remove
6120 tempmsg in first loop.
6121
ee4e5a3d
UD
61222003-08-18 Ulrich Drepper <drepper@redhat.com>
6123
6124 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6125 _POSIX_THREAD_PRIORITY_SCHEDULING.
6126 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6127
334fcf2a
UD
61282003-08-07 Jakub Jelinek <jakub@redhat.com>
6129
6130 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
6131 (__rtld_lock_default_lock_recursive,
6132 __rtld_lock_default_unlock_recursive): Define.
6133 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
6134 __rtld_lock_unlock_recursive): Define using
6135 GL(_dl_rtld_*lock_recursive).
6136 * init.c (__pthread_initialize_minimal_internal): Initialize
6137 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
6138 Lock GL(_dl_load_lock) the same number of times as
6139 GL(_dl_load_lock) using non-mt implementation was nested.
6140
6141 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
6142 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
6143
a30fb2df
UD
61442003-08-06 Jakub Jelinek <jakub@redhat.com>
6145
6146 * tst-cancel17.c (do_test): Make len2 maximum of page size and
6147 PIPE_BUF.
6148
ce0d30a0
JJ
61492003-08-07 Jakub Jelinek <jakub@redhat.com>
6150
6151 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
6152
9c988b83
UD
61532003-08-03 Jakub Jelinek <jakub@redhat.com>
6154
6155 * sysdeps/pthread/createthread.c (do_clone): Move error handling
6156 to first syscall error check. Move syscall error check for tkill
6157 into __ASSUME_CLONE_STOPPED #ifdef.
6158
5c5252bd
UD
61592003-08-02 Ulrich Drepper <drepper@redhat.com>
6160
f1205aa7
UD
6161 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
6162 is not defined, do explicit synchronization.
6163 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
6164 is not defined also unlock pd->lock for non-debugging case in case
6165 it is necessary.
6166 * pthread_create.c (start_thread): Always get and release pd->lock
6167 if __ASSUME_CLONE_STOPPED is not defined.
6168 (start_thread_debug): Removed. Adjust users.
6169 * allocatestack.c (allocate_stack): Always initialize lock if
6170 __ASSUME_CLONE_STOPPED is not defined.
6171 * Makefile (tests): Add tst-sched1.
6172 * tst-sched1.c: New file.
6173
5c5252bd
UD
6174 * sysdeps/pthread/createthread.c (do_clone): Only use
6175 sched_setschduler and pass correct parameters.
6176
973d66e4
UD
61772003-07-31 Jakub Jelinek <jakub@redhat.com>
6178
6179 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
6180 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
6181 PTHREAD_STACK_MIN in comments.
6182
d347a4ab
UD
61832003-07-31 Jakub Jelinek <jakub@redhat.com>
6184
6185 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6186 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
6187 argument.
6188 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
6189 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
6190 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
6191 (__pthread_cleanup_upto): Fix prototype.
6192 (_longjmp_unwind): Adjust caller.
6193 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
6194 Change second argument to const struct pointer.
6195 * tst-sem8.c (main): Remove unused s2 and s3 variables.
6196 * tst-sem9.c (main): Likewise.
6197 * unwind.c: Include string.h for strlen prototype.
6198
1b26e9a5
UD
61992003-07-31 Ulrich Drepper <drepper@redhat.com>
6200
6201 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6202 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
6203 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
6204 Define HAVE_CMOV.
6205 Patch by Nicholas Miell <nmiell@attbi.com>.
6206
adc12574
UD
62072003-07-30 Jakub Jelinek <jakub@redhat.com>
6208
6209 * init.c (__pthread_initialize_minimal_internal): Initialize
6210 GL(dl_init_static_tls).
6211 * pthreadP.h (__pthread_init_static_tls): New prototype.
6212 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
6213 New functions.
6214 * Makefile (tests): Add tst-tls4.
6215 (modules-names): Add tst-tls4moda and tst-tls4modb.
6216 ($(objpfx)tst-tls4): Link against libdl and libpthread.
6217 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
6218 tst-tls4modb.so.
6219 * tst-tls4.c: New file.
6220 * tst-tls4moda.c: New file.
6221 * tst-tls4modb.c: New file.
6222
a7f6c66e
RM
62232003-06-19 Daniel Jacobowitz <drow@mvista.com>
6224
6225 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
6226 before __timer_dealloc.
6227 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
6228 Don't call list_unlink.
6229
172ce013
RM
62302003-07-29 Roland McGrath <roland@redhat.com>
6231
6232 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
6233
7b787f85
UD
62342003-07-25 Jakub Jelinek <jakub@redhat.com>
6235
6236 * tst-cancel17.c (do_test): Check if aio_cancel failed.
6237 Don't reuse struct aiocb A if it failed.
6238 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
6239 not just one byte, as that does not block.
6240
0e9d6240
UD
62412003-07-22 Jakub Jelinek <jakub@redhat.com>
6242
9d79e037
UD
6243 * sysdeps/pthread/unwind-resume.c: New file.
6244 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
6245 unwind-resume in csu subdir.
6246 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
6247 exceptions.
6248 (librt-sysdep_routines, librt-shared-only-routines): Add
6249 rt-unwind-resume.
6250 * sysdeps/pthread/rt-unwind-resume.c: New file.
6251 * unwind-forcedunwind.c: New file.
6252 * Makefile (libpthread-routines): Add unwind-forcedunwind.
6253 (libpthread-shared-only-routines): Likewise.
6254 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
6255 * pthreadP.h (pthread_cancel_init): New prototype.
6256 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
6257
6258 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
6259 attr argument const struct pthread_attr *.
6260
0e9d6240
UD
6261 * res.c (__res_state): Return __resp.
6262 * descr.h: Include resolv.h.
6263 (struct pthread): Add res field.
6264 * pthread_create.c: Include resolv.h.
6265 (start_thread): Initialize __resp.
6266 * Makefile (tests): Add tst-_res1.
6267 (module-names): Add tst-_res1mod1, tst-_res1mod2.
6268 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
6269 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
6270 libpthread.
6271 * tst-_res1.c: New file.
6272 * tst-_res1mod1.c: New file.
6273 * tst-_res1mod2.c: New file.
6274
1a379ea0
UD
62752003-07-21 Ulrich Drepper <drepper@redhat.com>
6276
7e939b21
UD
6277 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
6278
1a379ea0
UD
6279 * Makefile: Define various *-no-z-defs variables for test DSOs
6280 which has undefined symbols.
6281
ca86a763
UD
62822003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
6283
6284 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6285 Retry if the stwcx fails to store once_control.
6286
80f536db
UD
62872003-07-20 Ulrich Drepper <drepper@redhat.com>
6288
6289 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
6290 pthread_attr_setaffinity.
6291 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
6292 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
6293 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
6294 * pthread_attr_destroy.c: Free cpuset element if allocated.
6295 * pthread_create.c: Pass iattr as additional parameter to
6296 create_thread.
6297 * sysdeps/pthread/createthread.c: If attribute is provided and
6298 a new thread is created with affinity set or scheduling parameters,
6299 start thread with CLONE_STOPPED.
6300 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
6301 pthread_attr_setaffinity.
6302 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
6303 cpuset element.
6304
73299943
UD
63052003-07-15 Ulrich Drepper <drepper@redhat.com>
6306
6307 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
6308
da35d15e
UD
63092003-07-14 Ulrich Drepper <drepper@redhat.com>
6310
6311 * sysdeps/pthread/configure.in: Require CFI directives also for
6312 ppc and s390.
6313
75540d8a
UD
63142003-07-15 Jakub Jelinek <jakub@redhat.com>
6315
6316 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6317 Add cfi directives.
6318
4a17085f
UD
63192003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6320
6321 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
6322 CLEANUP_JMP_BUF.
6323 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
6324 registers as variables. Call __pthread_mutex_unlock_usercnt.
6325 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6326 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
6327 not self pointer in __writer. Compare with TID to determine
6328 deadlocks.
6329 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6330 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
6331 Likewise.
6332 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
6333 Likewise.
6334 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
6335 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
6336 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
6337 macros also when compiling librt.
6338
6080ecdf
UD
63392003-07-11 Jakub Jelinek <jakub@redhat.com>
6340
6341 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
6342 -fasynchronous-unwind-tables.
6343 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
6344 (PSEUDO): Add cfi directives.
6345 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
6346 Likewise.
6347 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6348 Likewise.
6349
da0c02ee
UD
63502003-07-08 Jakub Jelinek <jakub@redhat.com>
6351
6352 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
6353 __pthread_unregister_cancel): Add prototypes and hidden_proto.
6354 * unwind.c (__pthread_unwind_next): Add hidden_def.
6355 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
6356 Likewise.
6357 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6358 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6359 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6360 Likewise.
6361 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
6362 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
6363 Likewise.
6364 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
6365 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
6366 __pthread_unregister_cancel and __pthread_unwind_next.
6367
57a5ea02
UD
63682003-07-04 Jakub Jelinek <jakub@redhat.com>
6369
6370 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
6371 different symbol for the cancellation syscall wrapper and
6372 non-cancellation syscall wrapper.
6373 (PSEUDO_END): Define.
6374
d810b358
UD
63752003-07-05 Richard Henderson <rth@redhat.com>
6376
6377 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
6378 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
6379 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6380 return actual return value from the syscall, not 0.
d810b358 6381
db54f488
UD
63822003-07-07 Ulrich Drepper <drepper@redhat.com>
6383
6384 * descr.h (struct pthread): Add pid field.
6385 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6386 (__reclaim_stacks): Likewise.
6387 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6388 also check for PID of the signal source.
6389 (__pthread_initialize_minimal_internal): Also initialize pid field
6390 of initial thread's descriptor.
6391 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6392 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6393 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6394 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6395 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6396
5e497a41
UD
63972003-07-05 Ulrich Drepper <drepper@redhat.com>
6398
6399 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6400 Fix use of parameter.
6401 (__libc_cleanup_pop): Likewise.
6402
86a0c4fa
UD
64032003-07-04 Ulrich Drepper <drepper@redhat.com>
6404
6405 * init.c (sigcancel_handler): Change parameters to match handler
6406 for SA_SIGACTION. Check signal number and code to recognize
6407 invalid invocations.
6408
bdbecaa3
RM
64092003-07-03 Roland McGrath <roland@redhat.com>
6410
6411 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6412 Apply sizeof (struct pthread) bias to r13 value.
6413
56421b23
UD
64142003-07-03 Ulrich Drepper <drepper@redhat.com>
6415
fbd90f6c
UD
6416 * sysdeps/pthread/configure.in: Require CFI directives.
6417
56421b23
UD
6418 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6419 definition.
6420 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6421 libpthread compilation.
6422 * unwind.c (__pthread_unwind): Add hidden_def.
6423 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6424
ca2b4cd7
UD
64252003-07-01 Ulrich Drepper <drepper@redhat.com>
6426
6427 * libc-cancellation.c (__libc_cleanup_routine): Define.
6428 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6429 (__pthread_cleanup_pop): Define.
6430
f036e569
UD
64312003-07-01 Richard Henderson <rth@redhat.com>
6432
6433 * sysdeps/alpha/elf/pt-initfini.c: New file.
6434 * sysdeps/alpha/pthread_spin_lock.S: New file.
6435 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6436 * sysdeps/alpha/pthreaddef.h: New file.
6437 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6438 * sysdeps/alpha/tls.h: New file.
6439 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6440 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6441 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6442 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6443 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6444 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6445 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6446 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6447 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6448 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6449
3b985826
UD
64502003-07-01 Ulrich Drepper <drepper@redhat.com>
6451
6452 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6453 cleanup support and unwind info.
6454
3a4d1e1e
UD
64552003-06-30 Ulrich Drepper <drepper@redhat.com>
6456
6457 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6458 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6459 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6460 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6461 * tst-once3.c: Add cleanup handler and check it is called.
6462 * tst-once4.c: Likewise.
6463 * tst-oncex3.c: New file.
6464 * tst-oncex4.c: New file.
6465 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6466
e479cc8e
UD
64672003-06-29 Ulrich Drepper <drepper@redhat.com>
6468
6469 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6470
7d7ff54c
UD
64712003-06-27 Ulrich Drepper <drepper@redhat.com>
6472
483e95d0
UD
6473 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6474 (tf_msgsnd): Likewise.
6475
7d7ff54c
UD
6476 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6477 premature returns a bit more.
6478
7539c7ec
UD
64792003-06-26 Ulrich Drepper <drepper@redhat.com>
6480
6481 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6482 definition to the front.
6483
6484 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6485 the cleanup functions to make the names unique. Fix dwarf opcode
6486 un unwind table.
6487 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6488 functions to make the names unique. Fix CFA offset for two blocks.
6489
0af6a1d9
UD
64902003-06-25 Ulrich Drepper <drepper@redhat.com>
6491
6492 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6493 missing closing braces.
6494 Patch by Christophe Saout <christophe@saout.de>.
6495
eef4a9f3
RM
64962003-06-24 Roland McGrath <roland@redhat.com>
6497
6498 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6499
4165d44d
UD
65002003-06-24 Ulrich Drepper <drepper@redhat.com>
6501
7f8f7b9d
UD
6502 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6503 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6504
4165d44d
UD
6505 * pthreadP.h: Declare __find_thread_by_id.
6506 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6507 * pthread_clock_gettime.c: Allow using other thread's clock.
6508 * pthread_clock_settime.c: Likewise.
6509 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6510 * Makefile: Add rules to build and run tst-clock2.
6511 * tst-clock2.c: New file.
6512
67b78ef9
UD
65132003-06-23 Ulrich Drepper <drepper@redhat.com>
6514
6515 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6516 to use exception-based cleanup handler.
6517 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6518
6519 * tst-cond8.c (ch): Announce that we are done.
6520
6521 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6522
6523 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6524 Also test aio_suspend with timeout value.
6525
61623643
UD
65262003-06-22 Ulrich Drepper <drepper@redhat.com>
6527
3a4f2043
UD
6528 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6529 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6530 attribute_hidden.
6531
61623643
UD
6532 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6533 (__pthread_mutex_lock_internal): Likewise.
6534 (__pthread_mutex_unlock_internal): Likewise.
6535 (__pthread_mutex_unlock_usercnt): Declare.
6536 * pthread_mutex_destroy.c: Always fail if used in any way.
6537 * pthread_mutex_init.c: Update comment.
6538 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6539 * pthread_mutex_timedlock.c: Adjust __nusers.
6540 * pthread_mutex_trylock.c: Adjust __nusers.
6541 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6542 and public interfaces are wrapper with pass additional parameter.
6543 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6544 parameter zero.
6545 * tst-mutex8.c: New file.
6546 * Makefile (tests): Add tst-mutex8.
6547 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6548 __pthread_mutex_unlock_usercnt.
6549 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6550 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6551 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6552 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6553 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6554 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6555 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6556 Add __nusers.
6557 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6558 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6559 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6560 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6561 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6562
6563 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6564 * pthread_mutex_timedlock.c: Likewise.
6565 * pthread_mutex_trylock.c: Adjust __nusers.
6566 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6567 * tst-mutex9.c: New file.
6568 * Makefile (tests): Add tst-mutex9.
6569 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6570 * sysdeps/ia64/tls.h: Likewise.
6571 * sysdeps/powerpc/tls.h: Likewise.
6572 * sysdeps/s390/tls.h: Likewise.
6573 * sysdeps/sh/tls.h: Likewise.
6574 * sysdeps/x86_64/tls.h: Likewise.
6575 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6576 Change type of __owner.
6577 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6578 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6579 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6580 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6581 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6582
9bdabb94
UD
65832003-06-19 Jakub Jelinek <jakub@redhat.com>
6584
6585 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6586 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6587
6588 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6589 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6590 instead of nr to lll_futex_wake. Only set errno and return -1
6591 if err < 0.
6592
6593 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6594 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6595 return actual return value from the syscall, not 0.
6596
f6c93bd9
UD
65972003-06-18 Ulrich Drepper <drepper@redhat.com>
6598
ca343e73
UD
6599 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6600 find a random value.
6601 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6602 errno==EIDRM.
6603
50441a98
UD
6604 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6605 compat_timer_settime.
6606 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6607 compat_timer_gettime.
6608 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6609 compat_timer_getoverrun.
50441a98
UD
6610 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6611 compat_timer_delete.
6612
f6c93bd9
UD
6613 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6614 error-checking mutex detect busy mutexes.
6615
047aec8f
UD
66162003-06-17 Ulrich Drepper <drepper@redhat.com>
6617
1d53508d
UD
6618 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6619 Add ax to clobber list.
6620 (lll_mutex_cond_lock): Likewise.
6621 (lll_mutex_unlock): Likewise.
6622 (lll_lock): Likewise.
6623 (lll_unlock): Likewise.
6624
f23b30e2
UD
6625 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6626 * tst-cancel18.c: New file.
6627 * tst-cancelx18.c: New file.
6628
6629 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6630 and tcdrain.
6631
6632 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6633 * tst-cancel17.c: New file.
6634 * tst-cancelx17.c: New file.
6635
6636 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6637 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6638 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6639
047aec8f
UD
6640 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6641
bbde8527
UD
66422003-06-16 Jakub Jelinek <jakub@redhat.com>
6643
6644 * sysdeps/pthread/createthread.c (create_thread): Set
6645 header.multiple_threads unconditionally.
6646 * allocatestack.c (allocate_stack): Likewise.
6647 * descr.h (struct pthread): Add header.multiple_threads
6648 unconditionally.
6649 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6650 Define for librt. #error if neither libpthread, libc nor librt.
6651 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6652 Likewise.
6653 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6654 CDISABLE): Likewise.
6655 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6656 CDISABLE): Likewise.
6657 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6658 CDISABLE): Likewise.
6659 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6660 CDISABLE): Likewise. Access header.multiple_threads outside of
6661 libc and libpthread.
6662 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6663 Likewise.
6664 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6665 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6666
26676450
UD
66672003-06-17 Ulrich Drepper <drepper@redhat.com>
6668
6669 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6670 Also test early cancellation before the thread reaches the cancellation
6671 point.
6672
6673 * Makefile: Compile forward.c with exceptions.
6674
6675 * sysdeps/unix/sysv/linux/sleep.c: New file.
6676
301a6724
UD
66772003-06-16 Ulrich Drepper <drepper@redhat.com>
6678
0e0deb03
UD
6679 * Makefile: Add CFLAGS definition to compile function wrappers
6680 duplicated from libc with exceptions.
6681 * tst-cancel4.c: Also check cancellation handlers.
6682
301a6724
UD
6683 * Makefile: Add rules to build and run tst-cancel16 and
6684 tst-cancelx16. Add missing CFLAGS definitions.
6685 * tst-cancel16.c: New file.
6686 * tst-cancelx16.c: New file.
6687
7a114794
UD
66882003-06-15 Ulrich Drepper <drepper@redhat.com>
6689
452aea84
UD
6690 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6691 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6692 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6693 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6694
7a114794
UD
6695 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6696 (LIBC_CANCEL_RESET): Likewise.
6697 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6698 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6699 librt-cancellation.
6700 (CFLAGS-libcrt-cancellation.c): Define.
6701 * sysdeps/pthread/librt-cancellation.c: New file.
6702 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6703 macros also when compiling librt.
6704 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6705 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6706 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6707 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6708 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6709 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6710 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6711
6712 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6713 compat_timer_create.
6714
8ba1d429
UD
67152003-06-14 Ulrich Drepper <drepper@redhat.com>
6716
cc8fb6f3
UD
6717 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6718
8ba1d429
UD
6719 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6720 __register_atfork.
6721 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6722 Add libc_hidden_def.
6723
d4f100e2
RM
67242003-06-13 Roland McGrath <roland@redhat.com>
6725
6726 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6727 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6728
dd9423a6
UD
67292003-06-11 Ulrich Drepper <drepper@redhat.com>
6730
6731 * allocatestack.c (queue_stack): Always inline.
6732 * ptreadhP.h (__do_cancel): Likewise.
6733
ed24330d
JJ
67342003-06-10 Jakub Jelinek <jakub@redhat.com>
6735
6736 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6737 a typo.
6738
06120d79
UD
67392003-06-10 Ulrich Drepper <drepper@redhat.com>
6740
6741 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6742 (__pthread_cond_signal): Remove incorrect second addition for
6743 cond_lock!=0.
6744
b1720346
UD
67452003-06-09 Ulrich Drepper <drepper@redhat.com>
6746
5b318f85
UD
6747 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6748 (__pthread_cond_signal): Use correct futex pointer in
6749 __lll_mutex_lock_wait call.
6750
b1720346
UD
6751 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6752 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6753
3e36c37d
UD
67542003-06-08 Ulrich Drepper <drepper@redhat.com>
6755
ecf7955d
UD
6756 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6757 cancelable.
ed24330d 6758 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6759 Likewise.
6760
3e36c37d
UD
6761 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6762 hand-written CFI generation code. Since ENTRY/END also initiated
6763 CFI frames this caused two CFI sets to be generated.
6764
7726edc2
UD
67652003-06-07 Ulrich Drepper <drepper@redhat.com>
6766
6767 * cleanup_routine.c: New file.
6768 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6769 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6770 cleanup handling.
6771 * Makefile (libpthread-routines): Add cleanup_routine.
6772 Add more CFLAGS variables to compile with exceptions. Add comments
6773 why which file needs unwind tables.
6774 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6775 tests.
6776 * tst-cancelx1.c: New file.
6777 * tst-cancelx2.c: New file.
6778 * tst-cancelx3.c: New file.
6779 * tst-cancelx4.c: New file.
6780 * tst-cancelx5.c: New file.
6781 * tst-cancelx6.c: New file.
6782 * tst-cancelx7.c: New file.
6783 * tst-cancelx8.c: New file.
6784 * tst-cancelx9.c: New file.
6785 * tst-cancelx10.c: New file.
6786 * tst-cancelx11.c: New file.
6787 * tst-cancelx12.c: New file.
6788 * tst-cancelx13.c: New file.
6789 * tst-cancelx14.c: New file.
6790 * tst-cancelx15.c: New file.
6791 * tst-cleanupx0.c: New file.
6792 * tst-cleanupx0.expect: New file.
6793 * tst-cleanupx1.c: New file.
6794 * tst-cleanupx2.c: New file.
6795 * tst-cleanupx3.c: New file.
6796
6797 * tst-cleanup0.c: Make standard compliant.
6798 * tst-cleanup1.c: Likewise.
6799
6800 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6801 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6802 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6803 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6804 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6805 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6806 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6807 CLEANUP_JMP_BUF.
6808 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6809 * tst-cancel12.c: New file.
6810 * tst-cancel13.c: New file.
6811 * tst-cancel14.c: New file.
6812 * tst-cancel15.c: New file.
6813 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6814 and tst-cancel15.
6815
6816 * tst-cancel1.c: Add some comments.
6817
6818 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6819 timeout correctly.
6820
7a8a8e21
UD
68212003-06-06 Ulrich Drepper <drepper@redhat.com>
6822
6823 * Makefile (CFLAGS-pthread_cancel.c): Define.
6824
4ad0bbf4
UD
68252003-06-05 Ulrich Drepper <drepper@redhat.com>
6826
6827 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6828 Change type of __writer element to int.
6829 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6830 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6831 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6832 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6833 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6834 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6835 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6836 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6837 Compare with TID to determine deadlocks.
6838 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6839 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6840 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6841 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6842 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6843 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6844 Likewise.
6845 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6846 Likewise.
6847 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6848 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6849 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6850 Likewise.
6851 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6852 Likewise.
6853 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6854 * Makefile (tests): Add tst-rwlock12.
6855 * tst-rwlock12.c: New file.
6856
332faa96
JJ
68572003-06-05 Jakub Jelinek <jakub@redhat.com>
6858
6859 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6860 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6861 Remove bogus hidden_proto.
6862 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6863 Likewise.
6864 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6865 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6866 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6867 ___lll_mutex_timedlock): Likewise.
6868
29d9e2fd
UD
68692003-06-04 Ulrich Drepper <drepper@redhat.com>
6870
6871 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6872 (__pthread_cond_signal): Add some code to eventually handle
6873 cond_lock!=0.
6874
6f1acb30
UD
68752003-06-01 Ulrich Drepper <drepper@redhat.com>
6876
6877 * Makefile (tests): Add tst-exec4.
6878 (tst-exec4-ARGS): Define.
6879 * tst-exec4.c: New file.
6880
49b65043
UD
68812003-05-31 Ulrich Drepper <drepper@redhat.com>
6882
31195be2
UD
6883 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6884 Also fail if tv_nsec < 0.
6885 (__lll_timedwait_tid): Likewise.
6886 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6887 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6888 Likewise.
6889 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6890 Likewise.
6891 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6892 Likewise.
6893 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6894 Likewise.
80b54217
UD
6895 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6896 Likewise.
6897 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6898 Likewise.
31195be2 6899
dcfc8224
UD
6900 * Makefile (tests): Add tst-sem8 and tst-sem9.
6901 * tst-sem8.c: New file.
6902 * tst-sem9.c: New file.
6903 * sem_open.c: Fix creation of in_use record if the file exists but
6904 no internal record.
6905
49b65043
UD
6906 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6907 definitions.
6908
6909 * sysdeps/pthread/timer_create.c (timer_create): In case
6910 evp==NULL, assign timer ID to sival_ptr.
6911
6912 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6913 struct pthread_unwind_buf *.
6914 (struct pthread): Likewise for cleanup_jmp_buf element.
6915
6916 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6917 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6918 * unwind.c (__pthread_unwind_next): Likewise.
6919
50794a45
UD
69202003-05-30 Ulrich Drepper <drepper@redhat.com>
6921
5d4f57bd
UD
6922 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6923 (lll_futex_timed_wait): Use int for futex value parameter.
6924 (lll_futex_wake): Likewise.
6925 (lll_futex_requeue): Likewise.
6926
6927 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6928 Replace one memory operation with one register operation.
6929
6930 * tst-join4.c (do_test): Fix error message.
6931
7ab7ea33
UD
6932 * tst-rwlock6.c (do_test): Use correct format specifier.
6933
6934 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6935 (__lll_mutex_lock_wait): Replace one memory operation with one
6936 register operation.
6937 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6938 (__lll_mutex_lock_wait): Likewise.
6939
50794a45
UD
6940 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6941 (__lll_mutex_cond_lock): Add one to value parameter of
6942 __lll_lock_wait to reflect reality in the futex syscall.
6943 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6944 (lll_mutex_cond_lock): Likewise.
6945
5a70784e
JJ
69462003-05-30 Jakub Jelinek <jakub@redhat.com>
6947
6948 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
6949 New function.
6950 (lll_mutex_cond_lock): Define.
6951
e7c5ac68
UD
69522003-05-29 Ulrich Drepper <drepper@redhat.com>
6953
586d1748
UD
6954 * Makefile (tests): Add tst-signal6.
6955 * tst-signal6.c: New file.
6956
b8ba4a27
UD
6957 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
6958 (__lll_mutex_unlock_force): New function
6959 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6960
65d46efe
UD
6961 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6962 (__lll_mutex_unlock_force): New function.
6963 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6964
6965 * tst-rwlock7.c (do_test): Use correct format specifier.
6966
e7c5ac68
UD
6967 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
6968 Find break parameter in correct asm argument.
6969
284bdc42
UD
69702003-05-27 Jakub Jelinek <jakub@redhat.com>
6971
6972 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
6973 Remove out4.
6974 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
6975 error occured.
6976 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6977 Add __mutex.
6978 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
6979 lll_futex_requeue, lll_mutex_unlock_force): Define.
6980
e7c5ac68
UD
69812003-05-30 Jakub Jelinek <jakub@redhat.com>
6982
6983 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6984 (pthread_cond_t): Add __mutex.
6985 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
6986 lll_futex_requeue, lll_mutex_unlock_force): Define.
6987
ea2630c6
UD
69882003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6989
6990 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
6991 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 6992 Add __mutex field.
ea2630c6
UD
6993 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
6994 Define.
6995 (lll_futex_wait, lll_futex_wake): Define.
6996 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
6997 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
6998 FUTEX_REQUEUE instead of FUTEX_WAIT.
6999 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
7000 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
7001 mutex which was used in condvar structure. Call
7002 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
7003 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
7004
7005 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
7006 include tcb-offsets.h. Read wakeup value in locked region.
7007 Use the value of gbr register as THREAD_ID.
7008 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7009 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7010 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7011
7012 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
7013 macros.
7014
5a77f150
UD
70152003-05-28 Ulrich Drepper <drepper@redhat.com>
7016
7017 * sysdeps/pthread/pthread_cond_broadcast.c
7018 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
7019
7661d9f7
UD
70202003-05-26 Ulrich Drepper <drepper@redhat.com>
7021
7022 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
7023 typo in register name.
7024 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
7025 correctly. Actually use requeue. Little optimization.
7026 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
7027 mutex address early. Handle cancellation state as 32-bit value.
7028 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7029 Remove unnecessary label.
7030
69431c9a
UD
70312003-05-25 Ulrich Drepper <drepper@redhat.com>
7032
7033 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
7034 instead of FUTEX_WAIT.
7035 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
7036 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
7037 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
7038 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
7039 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7040 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
7041 used in condvar structure. Call __pthread_mutex_cond_lock instead
7042 of __pthread_mutex_lock_internal.
7043 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7044 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7045 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7046 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
7047 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7048 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7049 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
7050 Add pthread_mutex_cond_lock.
7051 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
7052 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
7053 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
7054 lll_mutex_cond_lock.
7055 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7056 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 7057 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 7058 Add __mutex field.
248a3490 7059 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
7060 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7061
7062 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
7063 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7064
7065 * pthreadP.h: Declare __pthread_mutex_cond_lock.
7066 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
7067 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
7068 macro don't define aliases.
7069
7070 * cancellation.c: Remove __pthread_enable_asynccancel_2.
7071 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
7072 * sysdeps/pthread/pthread_cond_timedwait.c: Use
7073 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
7074 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7075 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7076 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7077 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7078 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7079
fddfebbd
UD
70802003-05-17 Ulrich Drepper <drepper@redhat.com>
7081
7082 * sem_open.c: Fix one endless loop. Implement correct semantics
7083 wrt opening the same semaphore more then once.
7084 * sem_close.c: Adjust for sem_open change.
7085 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
7086 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
7087 * Makefile (tests): Add tst-sem7.
7088 * tst-sem7.c: New file.
7089
1eefffb0
RM
70902003-05-16 Roland McGrath <roland@redhat.com>
7091
7092 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
7093 uninitialized variable braino.
7094
6e66dc78
UD
70952003-05-16 Ulrich Drepper <drepper@redhat.com>
7096
23ae6451
UD
7097 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
7098 test for syscall availability.
7099
7100 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
7101 __no_posix_timers to -1 if the syscalls don't exist.
7102
7ac5b8e2
UD
7103 * pthread_join.c (pthread_join): Set tid field of the joined
7104 thread to -1. This isn't necessary but helps to recognize some
7105 error conditions with almost no cost.
7106
7107 * allocatestack.c (FREE_P): Also negative values indicate an
7108 unused stack.
7109
6e66dc78
UD
7110 * unwind.c: Include <unistd.h>.
7111
855dba3c
UD
71122003-05-14 Ulrich Drepper <drepper@redhat.com>
7113
7114 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
7115
81f3ac4c
UD
71162003-05-14 Jakub Jelinek <jakub@redhat.com>
7117
7118 * Makefile (crti-objs, crtn-objs): New variables.
7119 (omit-deps, extra-objs): Add crtn.
7120 ($(objpfx)libpthread.so): Depend on both crti and crtn
7121 and links to them in multidir.
7122 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
7123
7158eae4
UD
71242003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
7125
7126 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7127 (lll_mutex_unlock): Use atomic_exchange_rel.
7128
edf205d5
UD
71292003-05-11 Ulrich Drepper <drepper@redhat.com>
7130
7131 * cond-perf.c (cons): Add missing locking around setting of alldone.
7132
a3f979a7
UD
71332003-05-10 Ulrich Drepper <drepper@redhat.com>
7134
7135 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
7136 related macros.
7137 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7138
880867a4
UD
71392003-05-09 Ulrich Drepper <drepper@redhat.com>
7140
949ec764
UD
7141 * tst-sem6.c: New file.
7142 * Makefile (tests): Add tst-sem6.
7143
7144 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
7145 Use atomic_exchange_rel instead of atomic_exchange.
7146 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
7147 Likewise.
7148
7149 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
7150 code for lll_futex_wait and lll_futex_wake in static apps. Use
7151 vsyscall is possible.
7152
7153 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
7154 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
7155 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
7156 pthread_setaffinity_np.
7157 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
7158 and pthread_setaffinity_np.
7159 * Makefile (libpthread-routines): Add pthread_getaffinity and
7160 pthread_setaffinity.
7161
880867a4
UD
7162 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
7163 use it in case mmap to allocate the stack fails.
7164 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
7165 ARCH_MAP_FLAGS here.
7166 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
7167 ARCH_RETRY_MMAP.
7168
92d83c72
UD
71692003-05-08 Ulrich Drepper <drepper@redhat.com>
7170
7171 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
7172 handler implementation. It is now lockless in fork().
7173 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
7174 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
7175 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
7176 declare the __fork_*_lists.
7177 (struct fork_handler): Include pointers to all three functions.
7178 Add next, refcntr and need_signal elements.
7179 (__fork_handlers): New declaration.
7180 (__register_atfork_malloc): Remove declaration.
7181 (HAVE_register_atfork_malloc): Remove definition.
7182 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
7183 __pthread_child_handler variable.
7184 (__libc_pthread_init): Use __register_atfork instead of explicitly
7185 adding to the list.
7186 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
7187 and lll_futex_wake.
7188 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7189
7190 * unwind.c (unwind_cleanup): Print error message and then abort. This
7191 function must never be reached.
7192
7193 * cond-perf.c: New file.
7194
be4d8038
UD
71952003-05-05 Ulrich Drepper <drepper@redhat.com>
7196
7197 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
7198
c6696b79
RM
71992003-05-04 Roland McGrath <roland@redhat.com>
7200
7201 * Makefile ($(objpfx)../libc.so): New target.
7202
7da168bf
UD
72032003-05-02 Ulrich Drepper <drepper@redhat.com>
7204
7205 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7206 (pthread_condattr_t): Size is only an int, don't use long for
7207 alignment.
7208 (pthread_mutexattr_t): Likewise.
7da168bf
UD
7209 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7210 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7211 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7212
9a7178d6
UD
72132003-05-01 Ulrich Drepper <drepper@redhat.com>
7214
7215 * sysdeps/i386/tls.h: Define THREAD_ID.
7216 * sysdeps/ia64/tls.h: Likewise.
7217 * sysdeps/powerpc/tls.h: Likewise.
7218 * sysdeps/s390/tls.h: Likewise.
7219 * sysdeps/sh/tls.h: Likewise.
7220 * sysdeps/x86_64/tls.h: Likewise.
7221 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
7222 record ownership.
7223 * pthread_mutex_timedlock.c: Likewise.
7224 * pthread_mutex_trylock.c: Likewise.
7225 * pthread_mutex_unlock.c: Likewise.
7226 * pthread_rwlock_trywrlock.c: Likewise.
7227 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
7228 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7229 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
7230 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7231
7232 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
7233 flag.
7234
a234e27d
UD
72352003-04-29 Jakub Jelinek <jakub@redhat.com>
7236
7237 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7238 (__SIZEOF_PTHREAD_COND_T): Define to 48.
7239 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
7240 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7241 Make __align long long instead of long.
7242 (pthread_rwlock_t): Formatting.
7243 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
7244 (pthread_rwlock_t): Formatting.
7245 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7246 (pthread_cond_t): Make __align long long instead of long.
7247 (pthread_rwlock_t): Move __flags field to the same position as in
7248 linuxthreads.
7249
f025c136
UD
72502003-04-30 Ulrich Drepper <drepper@redhat.com>
7251
7252 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
7253 * tst-rwlock7.c (do_test): Likewise.
7254
7531ab9e
RM
72552003-04-26 Roland McGrath <roland@redhat.com>
7256
7257 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
7258
299601a1
UD
72592003-04-22 Jakub Jelinek <jakub@redhat.com>
7260
299601a1
UD
7261 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
7262 sizeof (struct pthread).
7263 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 7264 1 struct pthread.
299601a1
UD
7265 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
7266 to 0.
7267 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
7268 struct pthread.
7269 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
7270 to 32-bit bytes.
7271 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
7272 tcbp.
7273 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
7274 unneccessarily.
7275 (NO_TLS_OFFSET): Define.
299601a1
UD
7276 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
7277 add TLS_TCB_SIZE unnecessarily.
299601a1 7278
950094f8
RM
72792003-04-22 Roland McGrath <roland@redhat.com>
7280
7281 * Makeconfig (shared-thread-library): Reverse link order to work
7282 around linker bug.
7283
dc2f6455
UD
72842003-04-22 Ulrich Drepper <drepper@redhat.com>
7285
7286 * semaphore.h: Fix typo in comment.
7287
e7608d77
UD
72882003-04-21 Ulrich Drepper <drepper@redhat.com>
7289
6a87ee19
UD
7290 * sysdeps/pthread/sigfillset.c: New file.
7291
e7608d77
UD
7292 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
7293 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
7294 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
7295 * sysdeps/pthread/sigaction.c: Likewise.
7296 * sysdeps/pthread/sigprocmask.c: New file.
7297 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
7298 __SIGRTMIN+1.
7299 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7300 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
7301 in this case.
7302
0b3df49e
UD
73032003-04-19 Ulrich Drepper <drepper@redhat.com>
7304
58a7a325
UD
7305 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7306 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
7307
0b3df49e
UD
7308 * sysdeps/unix/sysv/linux/unregister-atfork.c
7309 (__unregister_atfork): Don't free memory not allocated dynamically.
7310
7311 * semaphore.h: Remove __THROW marker from cancellation points.
7312 * nptl/sysdeps/pthread/pthread.h: Likewise.
7313
7d74651e
UD
73142003-04-18 Ulrich Drepper <drepper@redhat.com>
7315
76a67697
UD
7316 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
7317 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
7318 __THROW.
7319
dd9d6538
JJ
73202003-04-16 Jakub Jelinek <jakub@redhat.com>
7321
7322 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
7323
4ab6f47c
RM
73242003-04-15 Roland McGrath <roland@redhat.com>
7325
7326 * forward.c (__pthread_unwind): Tweak to avoid warning.
7327
162434a6
UD
73282003-04-15 Ulrich Drepper <drepper@redhat.com>
7329
7330 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
7331
35909161
UD
73322003-04-14 Ulrich Drepper <drepper@redhat.com>
7333
18ddd3aa 7334 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
7335 overflow CFA advance instructions.
7336 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7337
18a8e730
UD
73382003-04-14 Jakub Jelinek <jakub@redhat.com>
7339
bd4f43b4
UD
7340 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
7341 * sysdeps/i386/pthread_spin_lock.c: Likewise.
7342 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
7343 defined.
7344
18a8e730
UD
7345 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
7346 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
7347 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
7348 DW_CFA_advance_loc for .Laddl-.Lsubl.
7349
08c765fa
UD
73502003-04-13 Ulrich Drepper <drepper@redhat.com>
7351
18a8e730
UD
7352 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
7353 position-independent unwind data for static libraries.
7354 Add missing unwind info. Add comments.
7355
ad2be852
UD
7356 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
7357 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7358 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
7359 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7360
177d1ad3
UD
73612003-04-12 Ulrich Drepper <drepper@redhat.com>
7362
08c765fa
UD
7363 * Makefile: Make sure all cancellation points are compiled with
7364 exception and asynchronous unwind tables.
7365
177d1ad3
UD
7366 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
7367 which mishandles loading of global object addresses in PIC.
7368 (THREAD_SETMEM_NC): Likewise.
7369
09d65ff3
UD
73702003-04-11 Ulrich Drepper <drepper@redhat.com>
7371
7372 * pthread.h: Define new data structure for cleanup buffer. Declare
7373 new cleanup handler interfaces.
7374 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
7375 (struct pthread): Add cleanup_jmp_buf pointer. Define
7376 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
7377 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
7378 it. Declare old cleanup handler installation functions.
7379 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
7380 handling.
7381 * cleanup_defer.c: Likewise.
7382 * cleanup_compat.c: New file. Old cleanup code.
7383 * cleanup_def_compat.c: New file. Old cleanup code.
7384 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7385 if own thread descriptor.
7386 * unwind.c: New file.
7387 * forward.c: Add __pthread_unwind.
7388 * init.c (pthread_functions): Add __pthread_unwind.
7389 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7390 Add ptr___pthread_unwind.
7391 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7392 and unwind function.
7393 * Makefile (libpthread-routines): Add cleanup_compat,
7394 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7395 table generation if necessary.
7396 * version.c: Record whether unwind support is compiled in.
7397 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7398 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7399 handler interfaces.
7400 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7401 complication to generate unwind information for syscall wrappers.
68107ec0 7402 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7403 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7404 __cleanup_fct_attribute.
7405
7406 * Makefile: Add rules to build and run tst-cleanup0.
7407 * tst-cleanup0.c: New file.
7408 * tst-cleanup0.expect: New file.
7409
7410 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7411 caller. Optimize to avoid often unecessary local variable.
7412
0dc44b51
RM
74132003-04-11 Roland McGrath <roland@redhat.com>
7414
7415 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7416 sets variable `multidir'; include that.
7417 (generated): Add it.
7418 ($(objpfx)$(multidir)/crti.o): New target.
7419 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7420
84a80719
UD
74212003-04-11 Ulrich Drepper <drepper@redhat.com>
7422
7423 * tst-attr2.c (do_test): Add cast to avoid warning.
7424 * tst-mutex4.c (do_test): Likewise.
7425
88ff4759
UD
74262003-04-10 Ulrich Drepper <drepper@redhat.com>
7427
7428 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7429 in child.
7430
b2041097
UD
74312003-04-09 Ulrich Drepper <drepper@redhat.com>
7432
7433 * Makefile (tests): Add tst-detach1.
7434 * tst-detach1.c: New file.
7435
f9657e88
UD
74362003-04-08 Ulrich Drepper <drepper@redhat.com>
7437
9afe4964
UD
7438 * sysdeps/pthread/pthread.h: Remove duplicate
7439 pthread_cleanup_{push,pop} definitions.
7440
f9657e88
UD
7441 * tst-barrier2.c: Eliminate warnings.
7442 * tst-cancel4.c: Likewise.
7443 * tst-cond4.c: Likewise.
7444 * tst-cond6.c: Likewise.
7445 * tst-detach1.c: Likewise.
7446 * tst-rwlock4.c: Likewise.
7447 * tst-rwlock6.c: Likewise.
7448 * tst-rwlock7.c: Likewise.
7449 * tst-sem3.c: Likewise.
7450 * tst-spin2.c: Likewise.
7451 * tst-umask1.c: Likewise.
7452
69b35e86
UD
74532003-04-07 Ulrich Drepper <drepper@redhat.com>
7454
7455 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7456
c70ad7d7
UD
74572003-04-06 Ulrich Drepper <drepper@redhat.com>
7458
7459 * descr.h (struct pthread): Move cancelhandling member to the front.
7460
54e0138f
UD
74612003-04-05 Ulrich Drepper <drepper@redhat.com>
7462
7463 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7464 malloc_parent, and malloc_child statically.
7465 (__register_atfork_malloc): New function.
7466 (free_mem): Don't free any of the malloc_* variables on the list.
7467 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7468 Define HAVE_register_atfork_malloc.
7469
b22d701b
UD
74702003-04-04 Ulrich Drepper <drepper@redhat.com>
7471
7472 * sysdeps/pthread/createthread.c (create_thread): Add some more
7473 comments explaining when to set multiple_threads and when not.
7474
7475 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7476 THREAD_ATOMIC_BIT_SET if not already defined.
7477 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7478 THREAD_ATOMIC_BIT_SET:
7479 * sysdeps/x86_64/tls.h: Likewise.
7480 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7481 THREAD_ATOMIC_CMPXCHG_VAL.
7482 (_pthread_cleanup_pop_restore): Likewise.
7483 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7484 (__pthread_enable_asynccancel_2): Likewise.
7485 (__pthread_disable_asynccancel): Likewise.
7486 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7487 (__libc_disable_asynccancel): Likewise.
7488 * init.c (sigcancel_handler): Likewise.
7489 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7490 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7491
86246935
UD
74922003-04-03 Ulrich Drepper <drepper@redhat.com>
7493
7494 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7495 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7496 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7497 * Makefile (tests): Add tst-cancel11.
7498 * tst-cancel11.c: New file.
7499
6b4686a5
UD
75002003-04-01 Ulrich Drepper <drepper@redhat.com>
7501
7502 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7503 round, not the first. Use specific_used flag instead of local
7504 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7505 (__free_tcb): Don't call deallocate_tsd here.
7506 (start_thread): Call deallocate_tsd here.
7507 * pthread_setspecific.c: Set specific_used flag really only when
7508 needed.
0d73a73b 7509 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7510 * tst-tsd3.c: New file.
0d73a73b 7511 * tst-tsd4.c: New file.
6b4686a5 7512
42b2395d
UD
75132003-03-31 Ulrich Drepper <drepper@redhat.com>
7514
211d90c5
UD
7515 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7516 Use atomic_exchange_and_add instead of __lll_add.
7517 (__lll_mutex_timedlock): Likewise.
7518 Patch by Ian Wienand.
7519
75202003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7521
7522 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7523 (SINGLE_THREAD_P): Fix typo.
7524 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7525
75262003-03-31 Ulrich Drepper <drepper@redhat.com>
7527
7528 * Makefile (tests): Add tst-align.
7529 * tst-align.c: New file.
7530 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7531
42b2395d
UD
7532 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7533 function correctly.
7534
211d90c5
UD
7535 * tst-tsd2.c: Add casts to avoid warnings.
7536
163b180f
UD
75372003-03-30 Ulrich Drepper <drepper@redhat.com>
7538
7539 * descr.h (struct pthread): Move most often used elements to the front.
7540
ea473bad
UD
75412003-03-29 Ulrich Drepper <drepper@redhat.com>
7542
7543 * Makefile (libpthread-routines): Add pthread_atfork.
7544 (libpthread-static-only-routines): Add pthread_atfork.
7545
dd731d53
UD
75462003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7547
7548 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7549 of TLS_DTV_AT_TP.
7550 (INSTALL_DTV): Add parens.
7551 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7552 Use passed descr instead of THREAD_SELF.
7553 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7554 (__lll_mutex_timedlock_wait): Correct expected value after
7555 spurious wakeup.
7556 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7557 Release lock before waking up the waiters.
7558 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7559 criteria. Reorderstruct passed to cleanup handler. Fix
7560 handling of cancellation and failung pthread_mutex_unlock call.
7561 Use __pthread_enable_asynccancel_2 instead of
7562 __pthread_enable_asynccancel.
7563 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7564 Return result of lock re-get if it fails.
7565 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7566 for __pthread_cleanup_push.
7567 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7568 completely broken rwlock implementation.
7569 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7570 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7571 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7572 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7573 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7574 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7575 versioned_symbol macro.
7576 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7577 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7578
c75d02f0
UD
75792003-03-27 Ulrich Drepper <drepper@redhat.com>
7580
5f5004df
UD
7581 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7582 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7583 and __helper_tid.
7584 (struct timer): Remove th and bar field.
7585 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7586 debugging code. Create only one helper thread.
7587 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7588 helper thread.
7589 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7590 Renamed. Define statically. Use thread info from siginfo.
7591 (__helper_once): New variable.
7592 (__helper_tid): New variable.
7593 (__reset_helper_control): New function.
7594 (__start_helper_thread): New function.
7595
18d009ca
UD
7596 * pthread_create.c (start_thread): Don't use setjmp inside
7597 __builtin_expect to work around gcc bug.
7598
c75d02f0
UD
7599 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7600 timer_delete syscall fails, but not with ENOSYS, set
7601 __no_posix_timers.
7602
7603 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7604 (timer_settime): Fix typo.
28cf3058
UD
7605 * sysdeps/unix/sysv/linux/timer_getoverr.c
7606 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7607
049ac259
JJ
76082003-03-27 Jakub Jelinek <jakub@redhat.com>
7609
7610 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7611 offset of cleanupbuf.__prev.
7612
f93d39dd
JJ
76132003-03-26 Jakub Jelinek <jakub@redhat.com>
7614
7615 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7616 of included file.
7617
f064e4c5
UD
76182003-03-26 Ulrich Drepper <drepper@redhat.com>
7619
7620 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7621 NULL provide default definition to syscall.
7622
83e886a3
RM
76232003-03-25 Roland McGrath <roland@redhat.com>
7624
7625 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7626 (timer_id2ptr): Fix typo.
7627
09402f5b
UD
76282003-03-25 Ulrich Drepper <drepper@redhat.com>
7629
7630 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7631 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7632 * sysdeps/ia64/pthreaddef.h: Likewise.
7633 * sysdeps/powerpc/pthreaddef.h: Likewise.
7634 * sysdeps/s390/pthreaddef.h: Likewise.
7635 * sysdeps/sh/pthreaddef.h: Likewise.
7636 * sysdeps/x86_64/pthreaddef.h: Likewise.
7637 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7638 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7639 being changed.
7640 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7641 SIGTIMER is not unblocked.
7642 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7643 RT signal taken.
7644 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7645 be send.
7646 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7647 pass pointer through as ID.
7648 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7649 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7650 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7651 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7652 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7653 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7654 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7655 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7656 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7657 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7658 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7659 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7660 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7661 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7662 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7663 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7664 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7665 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7666 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7667 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7668 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7669 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7670 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7671 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7672 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7673 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7674 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7675 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7676 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7677 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7678 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7679 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7680 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7681
7682 * pthreadP.h: Remove FRAME_LEFT definition.
7683 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7684 already left frame. Programs which have this problem are not POSIX
7685 compliant.
7686 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7687
5e826ab5
UD
76882003-03-24 Ulrich Drepper <drepper@redhat.com>
7689
7690 * sysdeps/pthread/tst-timer.c: Check return values of the
7691 functions we test.
7692
b910f788
RM
76932003-03-23 Roland McGrath <roland@redhat.com>
7694
3045a1fe
RM
7695 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7696 * tst-tls3mod.c: Likewise.
7697 * tst-tls1.c: Likewise.
7698 * tst-tls2.c: Likewise.
7699
85047fe3
RM
7700 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7701 undefined behavior.
7702
b910f788
RM
7703 * tst-join5.c (tf1, tf2): Add a cast.
7704
7705 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7706
7707 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7708 Don't test anything.
7709 * tst-cond4.c: Likewise.
7710 * tst-cond6.c: Likewise.
7711 * tst-flock2.c: Likewise.
7712 * tst-mutex4.c: Likewise.
7713 * tst-rwlock4.c: Likewise.
7714 * tst-signal1.c: Likewise.
7715 * tst-spin2.c: Likewise.
7716 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7717
7718 * tst-mutex4.c: Use test-skeleton.c.
7719 * tst-spin2.c: Likewise.
7720 * tst-sysconf.c: Likewise.
7721 * tst-barrier2.c: Likewise.
7722 * tst-cond4.c: Likewise.
7723 * tst-cond6.c: Likewise.
7724 * tst-rwlock4.c: Likewise.
7725 * tst-unload.c: Likewise.
7726 * tst-flock2.c (do_test): Use return instead of exit.
7727
4baa087a
RM
77282003-03-22 Jakub Jelinek <jakub@redhat.com>
7729
7730 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7731
5a3ab2fc
UD
77322003-03-21 Ulrich Drepper <drepper@redhat.com>
7733
9f07eae2
UD
7734 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7735 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7736 instead of __lll_compare_and_swap.
7737 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7738 Likewise.
7739 Removed definition if __lll_compare_and_swap.
7740
5a3ab2fc
UD
7741 * cancellation.c: Adjust for new form of compare&exchange macros.
7742 * cleanup_defer.c: Likewise.
7743 * init.c: Likewise.
7744 * libc-cancellation.c: Likewise.
7745 * old_pthread_cond_broadcast.c: Likewise.
7746 * old_pthread_cond_signal.c: Likewise.
7747 * old_pthread_cond_timedwait.c: Likewise.
7748 * old_pthread_cond_wait.c: Likewise.
7749 * pthread_cancel.c: Likewise.
7750 * pthread_create.c: Likewise.
7751 * pthread_detach.c: Likewise.
7752 * pthread_join.c: Likewise.
7753 * pthread_key_delete.c: Likewise.
7754 * pthread_setcancelstate.c: Likewise.
7755 * pthread_setcanceltype.c: Likewise.
7756 * pthread_timedjoin.c: Likewise.
7757 * pthread_tryjoin.c: Likewise.
7758 * sysdeps/pthread/createthread.c: Likewise.
7759
b1aea098
UD
77602003-03-20 Ulrich Drepper <drepper@redhat.com>
7761
7762 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7763 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7764 definitions. Replace uses with calls to atomic_* functions.
7765 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7766 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7767 __lll_test_and_set calls with atomic_exchange_and_add and
7768 atomic_exchange calls respectively.
7769 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7770 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7771 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7772 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7773 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7774 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7775 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7776
7777 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7778 returns the old value.
7779
100a7100
RM
77802003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7781
7782 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7783 int for variable OLDVAL and correct inline assembler contraint.
7784 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7785 type int for variable OLD.
7786
7787 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7788 only for s390-32.
7789 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7790 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7791 instead of multiple_threads field in the TCB.
7792
95767b36
UD
77932003-03-19 Ulrich Drepper <drepper@redhat.com>
7794
4009bf40
UD
7795 * sysdeps/i386/i686/bits/atomic.h: Removed.
7796 * sysdeps/i386/i586/bits/atomic.h: Removed.
7797 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7798 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7799 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7800 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7801 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7802 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7803 * atomic.h: Removed. Moved to glibc.
7804
560a784f
UD
7805 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7806 support for clock selection.
7807
95767b36
UD
7808 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7809 signalling waiters.
7810
043ad426
RM
78112003-03-18 Roland McGrath <roland@redhat.com>
7812
94659495
RM
7813 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7814 Add __lll_rel_instr first. Add memory clobber.
7815 (lll_mutex_unlock): Use __lll_test_and_set.
7816 From Paul Mackerras <paulus@samba.org>.
7817
7818 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7819 unconditionally.
7820 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7821 (SINGLE_THREAD_P): Add `header.' prefix.
7822 From Paul Mackerras <paulus@samba.org>.
7823
043ad426
RM
7824 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7825 pthread_timedjoin_np to ...
7826 (libpthread: GLIBC_2.3.3): ... here.
7827 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7828
7829 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7830 Avoid shadowing VAL variable.
7831
7832 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7833 New macro.
7834
86a9ee5e
UD
78352003-03-18 Ulrich Drepper <drepper@redhat.com>
7836
ac9e0aa1
UD
7837 * Makefile (tests): Add tst-cond11.
7838 * tst-cond11.c: New file.
7839
a14b373c
UD
7840 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7841 struct passed to cleanup handler to eliminate one more
7842 instruction.
7843 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7844
24a49f38
UD
7845 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7846 (pthrad_cond_t): Replace __unused field with __clock.
7847
7848 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7849 waken all waiters in cleanup handler.
7850 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7851 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7852
86a9ee5e
UD
7853 * pthread_condattr_getclock.c: New file.
7854 * pthread_condattr_setclock.c: New file.
7855 * sysdeps/pthread/pthread.h: Declare these new functions.
7856 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7857 * Makefile (libpthread-routines): Add the new functions.
7858 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7859 Renamed field to value. Document use of the bits.
7860 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7861 change.
7862 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7863 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7864 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7865 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7866 Add __clock field.
7867 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7868 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7869 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7870 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7871 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7872 Implement clock selection.
7873 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7874 * pthread-errnos.sym: Add ENOSYS.
7875 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7876 _POSIX_CLOCK_SELECTION.
7877 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7878
7879 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7880 invalid .size directive.
7881
98054a05
RM
78822003-03-17 Roland McGrath <roland@redhat.com>
7883
7884 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7885 Formatting tweaks.
7886
001bea71
UD
78872003-03-17 Ulrich Drepper <drepper@redhat.com>
7888
4773086e
UD
7889 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7890 Use __lll_add instead of spelling it out. Use protected symbol names.
7891 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7892 Use __lll_add.
7893 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7894 Renamed from lll_compare_and_swap. Use new name where necessary.
7895 (__lll_add): Defined.
7896 (__lll_dec_if_positive): Defined.
7897 (__lll_test_and_set): Defined.
7898 * sysdeps/ia64/pthread_spin_init.c: Removed.
7899 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7900 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7901 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7902 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7903 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7904 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7905 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7906 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7907 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7908 __sync_lock_release_si.
7909 Patch by Jakub Jelinek.
7910
7911 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7912 Fix timeout handling.
7913 (__lll_timedwait_tid): Likewise.
7914 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7915 Patch by Jakub Jelinek.
7916
7917 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7918
de4471dd
RM
79192003-03-17 Roland McGrath <roland@redhat.com>
7920
7921 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7922 * sysdeps/pthread/pthread_spin_init.c: New file.
7923 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7924 * sysdeps/powerpc/Makefile: New file.
7925 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7926 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7927 * sysdeps/powerpc/pthreaddef.h: New file.
7928 * sysdeps/powerpc/tcb-offsets.sym: New file.
7929 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7930 * sysdeps/powerpc/tls.h: New file.
7931 * sysdeps/powerpc/bits/atomic.h: New file.
7932 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7933 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7934 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7935
de4471dd
RM
7936 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7937 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7938 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7939 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7940 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7941 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7942 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7943 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7944 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7945 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7946 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7947 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
7948 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
7949 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
7950 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
7951
7952 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
7953 not gettimeofday.
7954 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
7955 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7956 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
7957 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
7958 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7959
5778033f
UD
79602003-03-17 Ulrich Drepper <drepper@redhat.com>
7961
7962 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
7963 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7964 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7965 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7966 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
7967
796038f8
RM
79682003-03-16 Roland McGrath <roland@redhat.com>
7969
7970 * tst-fork4.c: Include <string.h>.
7971 * tst-signal2.c: Likewise.
7972 * tst-mutex5.c (do_test): exit -> return.
7973 * tst-mutex2.c: Include <stdlib.h>.
7974
51d0678c
UD
79752003-03-16 Ulrich Drepper <drepper@redhat.com>
7976
5778033f
UD
7977 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7978 (__lll_mutex_timedlock_wait): Correct expected value after
7979 spurious wakeup. Otherwise we would never wait again.
7980
b6e2f87a
UD
7981 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
7982 zone versus inline asm stupidity. Use correct instructions.
7983
51d0678c
UD
7984 * tst-rwlock6.c: Add some more status output.
7985
8112cc70
RM
79862003-03-15 Roland McGrath <roland@redhat.com>
7987
7988 * sysdeps/pthread/configure.in: New file.
7989 * sysdeps/pthread/configure: New file (generated).
7990
49773c19
UD
79912003-03-15 Ulrich Drepper <drepper@redhat.com>
7992
7993 * allocatestack.c (allocate_stack): Store the exact stack size of
7994 user allocated stacks.
7995
eec0ca9f
JJ
79962003-03-15 Jakub Jelinek <jakub@redhat.com>
7997
7998 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
7999 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
8000 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8001 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
8002 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
8003 Use `header.' prefix.
8004 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8005
a87731e2
UD
80062003-03-15 Ulrich Drepper <drepper@redhat.com>
8007
8008 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
8009 __builtin_frame_address, use stack pointer.
8010
8011 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
8012 instead of __builtin_frame_pointer.
8013
e22a221d
UD
80142003-03-14 Ulrich Drepper <drepper@redhat.com>
8015
92ed3daf
UD
8016 * tst-basic1.c (do_test): Add cast to avoid warning.
8017 * tst-basic2.c (do_test): Likewise.
8018
9b89567d
UD
8019 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
8020 amount of stack correction.
8021
e22a221d
UD
8022 * tst-fork4.c: Use test-skeleton.c.
8023
2e49caba
RM
80242003-03-14 Roland McGrath <roland@redhat.com>
8025
8026 * init.c: Fix typo "#eli" for "#else".
8027
415ef7d8
RM
80282003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
8029
8030 * allocatestack.c (__stack_user): Use hidden_data_def.
8031 * pthread_create.c (__pthread_keys): Likewise.
8032
8033 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
8034
52287505
RM
80352003-03-14 Roland McGrath <roland@redhat.com>
8036
415ef7d8
RM
8037 * tst-fork4.c: New file.
8038 * Makefile (tests): Add it.
8039
52287505
RM
8040 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
8041 we always define the padding space.
8042 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
8043 stopped supporting its own extensions fully.
8044 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
8045 struct also called `header', so `header.multiple_threads' is the field
8046 name to use on all machines.
8047 * allocatestack.c (allocate_stack): Use `header.' prefix.
8048 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8049 * pthread_create.c (__pthread_create_2_1): Likewise.
8050 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
8051 (THREAD_SELF): Likewise.
8052 * sysdeps/x86_64/tls.h: Likewise.
8053 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8054 (SINGLE_THREAD_P): Likewise.
8055 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8056 (SINGLE_THREAD_P): Likewise.
8057 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8058 (SINGLE_THREAD_P): Likewise.
8059
8060 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
8061 value directly.
8062
c44bf9aa
UD
80632003-03-14 Ulrich Drepper <drepper@redhat.com>
8064
e22a221d
UD
8065 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
8066 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
8067
0eb18281
UD
8068 * pthread_create.c (start_thread): setjmp is expected to return 0.
8069
c44bf9aa
UD
8070 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
8071 (THREAD_GETMEM_NC): Likewise.
8072
564cd8b6
UD
80732003-03-13 Ulrich Drepper <drepper@redhat.com>
8074
8075 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
8076 and the size of the stack which must be allocated is a multiple,
8077 allocate one more page.
8078 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
8079 MULTI_PAGE_ALIASING.
8080
6461e577
RM
80812003-03-13 Roland McGrath <roland@redhat.com>
8082
8083 * pthread_create.c (start_thread): Set EXITING_BIT after the
8084 event-reporting (and destructors), not before.
8085
b5ec5617
UD
80862003-03-13 Jakub Jelinek <jakub@redhat.com>
8087
6461e577
RM
8088 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
8089 lll_futex_wake): Declare register variables as long int instead of
8090 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
8091 Make syscall arguments clobbered by the syscall.
8092 (lll_futex_wait): Define using lll_futex_timed_wait.
8093
8094 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
8095 to void *.
8096
8097 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
8098 PPID if [! NDEBUG].
8099
8100 * allocatestack.c (nptl_ncreated): Only declare if
8101 COLORING_INCREMENT != 0.
8102
8103 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
8104 (__libc_enable_asynccancel_2): Remove prototype.
8105
b5ec5617
UD
8106 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
8107 ctid to match kernel.
8108
d0369fb8
UD
81092003-03-12 Ulrich Drepper <drepper@redhat.com>
8110
7588880f
UD
8111 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
8112 libc_multiple_threads.
8113 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
8114 __libc_multiple_threads to...
8115 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
8116
8117 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
8118 versioning.
8119 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8120 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8121
8122 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
8123 (__pthread_once_internal): Define.
8124
8125 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
8126 macros instead of .symver directly.
8127 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8128 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8129
d0369fb8
UD
8130 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
8131 * sysdeps/x86_64/tcb-offsets.sym: New file.
8132 * sysdeps/x86_64/Makefile: New file.
8133
8134 * sysdeps/i386/tcb-offsets.sym: Add SELF.
8135 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
8136 to access own pthread_t in TCB.
8137 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8138 Likewise.
8139 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8140 Likewise.
8141 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8142
0bb2ac85
RM
81432003-03-12 Roland McGrath <roland@redhat.com>
8144
8145 * pthread-errnos.sym: New file.
8146 * Makefile (gen-as-const-headers): New variable, list that file.
8147 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
8148 header <pthread-errnos.h> instead of defining errno values here.
8149 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8150 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8151 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8152 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8153 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8154 Likewise.
8155 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8156 Likewise.
8157 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8158 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8159 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8160 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8161 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8162 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8163 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8164 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8165 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8166 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8167 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
8168 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
8169 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8170 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
8171 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
8172 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8173 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8174 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8175 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8176 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8177 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8178 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8179 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
8180 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
8181 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
8182 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8183 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8184
8185 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
8186 CLONE_CHILD_SETTID worked.
8187
35e148cb
UD
81882003-03-12 Ulrich Drepper <drepper@redhat.com>
8189
d0369fb8
UD
8190 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
8191 file.
8192 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
8193 file.
8194
8195 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8196 (pthread_cond_t): Add padding.
8197
da49194d
UD
8198 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
8199 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
8200 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
8201
35e148cb
UD
8202 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
8203 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
8204 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
8205 (__pthread_rwlock_timedrdlock): Likewise.
8206 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
8207 (__pthread_rwlock_wrlock): Likewise.
8208 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
8209 (__pthread_rwlock_rdlock): Likewise.
8210
8211 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
8212
8213 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
8214 result of lock re-get if it fails.
8215
3e976b96
UD
82162003-03-11 Ulrich Drepper <drepper@redhat.com>
8217
5a03acfe
UD
8218 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
8219 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
8220 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8221 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
8222 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8223 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8224 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8225 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8226 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8227 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8228
8229 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
8230 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
8231
8232 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
8233 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
8234 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
8235 (create_thread): Likewise.
8236 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
8237 * init.c (__pthread_initialize_minimal_internal): Initialize
8238 __libc_multiple_threads_ptr if necessary.
8239 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
8240 __pthread_multiple_threads and __libc_multiple_threads_ptr.
8241 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
8242 __libc_multiple_threads.
8243 (__libc_pthread_init): Return pointer to __libc_pthread_init if
8244 necessary.
8245
8246 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
8247 (THREAD_SETMEM_NC): Likewise.
8248
8249 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
8250 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
8251 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
8252 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
8253
8254 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
8255 Eliminate one entire instruction.
8256
32a589b1
UD
8257 * cancellation.c (__pthread_enable_asynccancel_2): New function.
8258 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
8259 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8260 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
8261 instead of __pthread_enable_asynccancel.
8262 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8263 (__pthread_cond_wait): Likewise.
8264 * sysdeps/pthread/pthread_cond_timedwait.c
8265 (__pthread_cond_timedwait): Likewise.
8266 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
8267
3e976b96
UD
8268 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8269 (__condvar_cleanup): Wake up all waiters in case we got signaled
8270 after being woken up but before disabling asynchronous
8271 cancellation.
8272 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8273 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
8274 (__condvar_cleanup): Likewise.
8275
8276 * init.c (__NR_set_tid_address): If already defined, don't redefine.
8277 Make it an error if architecture has no #if case. Add x86-64.
8278
8279 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
8280 pt-initfini.s generation.
8281
8282 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
8283 (TLS_INIT_TP): Fix typo.
8284
6c477888
UD
82852003-03-11 Jakub Jelinek <jakub@redhat.com>
8286
8287 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
8288 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
8289
8290 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
8291 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8292 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
8293 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
8294 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
8295 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8296 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8297 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
8298
ea694823
UD
82992003-03-11 Ulrich Drepper <drepper@redhat.com>
8300
6c477888
UD
8301 * sysdeps/pthread/pthread_cond_timedwait.c
8302 (__pthread_cond_timedwait): Return the result of the final
8303 locking. If it succeeds, the regular function return value.
8304
8305 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
8306 Return result of the final locking.
8307 * version.c (__nptl_main): Work around problems with the strange
8308 INTERNAL_SYSCALL macro on ppc32.
8309 * init.c (__pthread_initialize_minimal_internal): Unblock
8310 SIGCANCEL in case the parent blocked it.
8311 Reported by Paul Mackerras <paulus@samba.org>.
8312
ea694823
UD
8313 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
8314 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
8315 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
8316
b33e6163
RM
83172003-03-11 Jakub Jelinek <jakub@redhat.com>
8318
8319 * sysdeps/pthread/pthread_cond_timedwait.c
8320 (__pthread_cond_timedwait): Unlock and fail if
8321 __pthread_mutex_unlock_internal failed.
8322
8323 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
8324 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
8325 Use ARCH_CLONE.
8326 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
8327 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
8328 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
8329 ALLOCATE_STACK): New macros.
8330 (TLS_TPADJ): New macro.
8331 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
8332 (allocate_stack): Handle TLS_DTV_AT_TP and
8333 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
8334 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
8335 Don't set PD->self.
8336 * init.c [__ia64__] (__NR_set_tid_address): Define.
8337
8338 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
8339 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
8340 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
8341 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
8342 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
8343 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
8344 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
8345 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
8346 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
8347 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
8348 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
8349 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
8350 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
8351 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
8352 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
8353 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
8354 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
8355 * sysdeps/ia64/bits/atomic.h: New file.
8356 * sysdeps/ia64/Makefile: New file.
8357 * sysdeps/ia64/pthread_spin_init.c: New file.
8358 * sysdeps/ia64/pthread_spin_lock.c: New file.
8359 * sysdeps/ia64/pthread_spin_trylock.c: New file.
8360 * sysdeps/ia64/pthread_spin_unlock.c: New file.
8361 * sysdeps/ia64/pthreaddef.h: New file.
8362 * sysdeps/ia64/tcb-offsets.sym: New file.
8363 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
8364 * sysdeps/ia64/tls.h: New file.
8365
8366 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
8367 to syscall instead of no arguments.
8368
2b30b2e5
UD
83692003-03-10 Ulrich Drepper <drepper@redhat.com>
8370
db5f2fc9
UD
8371 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
8372 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
8373 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
8374 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
8375
8376 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
8377 unused code.
8378
6a4263e3
UD
8379 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
8380
3de7c2a9
UD
8381 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8382 lowlevelbarrier.sym.
8383 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8384 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8385 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8386 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8387
2a544d82
UD
8388 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8389 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8390 (__lll_mutex_timedlock_wait): Likewise.
8391 (lll_mutex_lock): Adjust asm for that.
8392 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8393 (lll_lock): Adjust asm for operand order change.
8394 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8395 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8396
ec06436c
UD
8397 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8398 Reverse order of parameters.
8399 (__lll_timedwait_tid): Remove regparms attribute.
8400 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8401 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8402
3273832c
UD
8403 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8404 (__lll_timedwait_tid): Remove one unnecessary instruction.
8405
51f32ab8
UD
8406 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8407 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8408 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8409 lowlevelmutex.S.
8410
8411 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8412 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8413 for NOT_IN_libc.
8414 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8415 lowlevellock.S.
8416
fad48d9e
UD
8417 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8418 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8419 for libc.so.
8420 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8421 define LOCK here (if UP is not defined). The actual code is in
8422 lowlevelmutex.S.
8423
9356d063
UD
8424 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8425 LOCK is already defined. Don't define lll_unlock_wake_cb and
8426 __lll_timedwait_tid for libc.so.
8427 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8428 define LOCK here (if UP is not defined). The actual code is in
8429 lowlevellock.S.
8430
ebf0cbc5 8431 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8432 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8433 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8434 instead of lowlevelsem.h.
8435 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8436 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8437 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8438
c915e5ad
UD
8439 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8440 lowlevelrwlock.sym.
8441 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8442 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8443 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8444
4c3c2e8a
UD
8445 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8446 register loading.
8447 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8448 last changed. D'oh.
8449
2b30b2e5
UD
8450 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8451
8452 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8453 of __libc_locking_needed.
8454 (lll_trylock): Initialize %eax to zero.
8455
2b30b2e5
UD
8456 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8457 pthread_cond_t definition.
8458
e48f9638
RM
84592003-03-10 Roland McGrath <roland@redhat.com>
8460
8461 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8462 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8463 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8464 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8465 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8466
8467 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8468 Instead of setting PD->multiple_threads, set globals
8469 __pthread_multiple_threads and __libc_multiple_threads.
8470 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8471 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8472 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8473
8474 * descr.h (struct pthread): Conditionalize first member on
8475 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8476 containing an anonymous tcbhead_t. Move `list' member out.
8477 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8478 * allocatestack.c: Remove use of `header.data.' prefix.
8479 * pthread_create.c: Likewise.
8480 * init.c (__pthread_initialize_minimal_internal): Likewise.
8481 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8482 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8483 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8484 * sysdeps/x86_64/tls.h: Likewise.
8485 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8486 (SINGLE_THREAD_P): Likewise.
8487 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8488 (SINGLE_THREAD_P): Likewise.
8489 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8490 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8491
c37cae9e
UD
84922003-03-09 Ulrich Drepper <drepper@redhat.com>
8493
d38c777e
RM
8494 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8495
7b44a5e0 8496 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8497 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8498
c2e5e085
UD
8499 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8500 leftovers from the ia32 code.
8501
8502 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8503 memory load.
8504 (clear_once_control): Don't load %esi.
8505
8506 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8507 handling.
8508
8509 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8510
cd4b2a55
UD
8511 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8512 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8513
c37cae9e
UD
8514 * Makefile (tests): Add tst-cond10.
8515 * tst-cond10.c: New file.
8516
d130a341
UD
85172003-03-08 Ulrich Drepper <drepper@redhat.com>
8518
ccf1d573
UD
8519 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8520 * tst-signal3.c (do_test): Likewise.
8521 * tst-sem5.c (do_test): Likewise.
8522 * tst-kill6.c (do_test): Likewise.
8523 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8524
8525 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8526 of inc/dec.
8527 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8528 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8529 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8530 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8531 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8532 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8533 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8534 Likewise.
8535 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8536 Likewise.
8537 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8538 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8539 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8540 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8541 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8542 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8543 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8544 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8545
d130a341
UD
8546 * allocatestack.c (allocate_stack): If mprotect() fails free the
8547 TLS memory.
8548
bc6389ad
UD
85492003-03-07 Ulrich Drepper <drepper@redhat.com>
8550
41d4d223
UD
8551 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8552
8553 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8554 lll_wake_tid. This was used only to work around kernel limits in
8555 the early days.
8556 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8557 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8558 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8559 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8560
bc6389ad
UD
8561 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8562 (__pthread_initialize_minimal_internal): Change initialization of
8563 __static_tls_align_m1 appropriately.
8564 * pthreadP.h (__static_tls_align_m1): Renamed from
8565 __static_tls_align.
8566 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8567 instead of __static_tls_align-1.
8568
cc775edf
UD
85692003-03-04 Ulrich Drepper <drepper@redhat.com>
8570
0de28d5c 8571 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8572
518b5308
UD
8573 * pthread_create.c: Define __pthread_keys using nocommon
8574 attribute, not by placing it explicitly in bss.
8575 Remove DEFINE_DEALLOC definition. Not needed anymore.
8576
8577 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8578 Use it in mmap call to allocate stacks.
8579
8580 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8581
cc775edf
UD
8582 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8583 result of the thread function.
8584
4f6f0a8f
UD
85852003-03-03 Ulrich Drepper <drepper@redhat.com>
8586
f04a2721
UD
8587 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8588 version is just fine.
8589
4f6f0a8f
UD
8590 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8591 (__pthread_child_handler): Renamed from pthread_child_handler,
8592 exported, and marked hidden. Change all users.
8593 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8594 free __pthread_child_handler from child list.
8595
7ce5c164
UD
85962003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8597
8598 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8599
8600 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8601 Fix handling of cancellation and failing pthread_mutex_unlock call.
8602 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8603 (__pthread_cond_wait): Likewise.
8604
8605 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8606 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8607 lll_futex_timed_wait call.
8608 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8609 (pthread_rwlock_timedwrlock): Likewise.
8610
8611 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8612 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8613 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8614
8615 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8616 check of lll_futex_wake return value.
8617
ea6a015b
RM
86182003-03-03 Roland McGrath <roland@redhat.com>
8619
8620 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8621
8622 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8623 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8624 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8625
4adacf57
UD
86262003-03-02 Ulrich Drepper <drepper@redhat.com>
8627
1be3d664
UD
8628 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8629 error for CPU clocks.
8630
885bafa1
UD
8631 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8632 _POSIX_MONOTONIC_CLOCK.
8633 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8634
4adacf57
UD
8635 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8636 recent kernels.
8637
86bfff4d
UD
86382003-03-01 Ulrich Drepper <drepper@redhat.com>
8639
8640 * descr.h (struct pthread): Move cleanup field to the front.
8641
d1149385
RM
86422003-03-01 Roland McGrath <roland@redhat.com>
8643
8644 * sem_open.c (sem_open): Braino fix.
8645
bd8bb78b
UD
86462003-03-01 Ulrich Drepper <drepper@redhat.com>
8647
748bec08
UD
8648 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8649 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8650 __pthread_cleanup_pop functionality.
8651 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8652
bd8bb78b
UD
8653 * descr.h (struct pthread): Move tid field to the front now that
8654 it is often used.
8655
8656 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8657 (__lll_mutex_timedlock_wait): Remove.
8658 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8659 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8660 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8661 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8662 (lll_unlock_wake_cb): Don't save and restore %esi.
8663 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8664 %esi.
8665 (__lll_timedwait_tid): Add alignment.
8666 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8667 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8668 %esi.
8669 (__lll_timedwait_tid): Removed.
8670 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8671 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8672 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8673 (pthread_barrier_wait): Don't save, load, and restore %esi for
8674 last thread.
8675 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8676 (__pthread_cond_signal): Don't save, load, and restore %esi.
8677 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8678 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8679 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8680 Don't save, load, and restore %esi.
8681
d2637c70
UD
86822003-02-27 Ulrich Drepper <drepper@redhat.com>
8683
567fb22a
UD
8684 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8685 Release lock before waking up the waiters.
8686
427f5fa1
UD
8687 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8688
a2d83cfb
UD
8689 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8690 (reader_thread): Likewise.
8691
d2637c70
UD
8692 * sysdeps/pthread/pthread_rwlock_unlock.c
8693 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8694 to wake up readers if there are none.
8695
8696 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8697 Release internal lock before wake threads.
8698
b1531183
UD
86992003-02-26 Ulrich Drepper <drepper@redhat.com>
8700
dbf6131c
UD
8701 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8702 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8703 predefined.
8704 * tst-rwlock9.c: Likewise.
8705 * tst-rwlock10.c: New file.
8706 * tst-rwlock11.c: New file.
8707
695799fe
UD
8708 * Makefile (tests): Add tst-dlsym1.
8709 * tst-dlsym1.c: New file.
8710
b1531183
UD
8711 * init.c (__pthread_initialize_minimal_internal): Set
8712 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8713 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8714
3724f268
UD
87152003-02-24 Ulrich Drepper <drepper@redhat.com>
8716
3857ca78
UD
8717 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8718
80d80779
UD
8719 * tst-cond2.c: Fix sychronization with child.
8720
86371308
UD
8721 * tst-rwlock8.c (reader_thread): Remove unused variable.
8722
ffeb4481
UD
8723 * Makefile: Add rules to build and run tst-tls3.
8724 * tst-tls3.c: New file.
8725 * tst-tls3mod.c: New file.
8726
3724f268
UD
8727 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8728 * tst-rwlock8.c: New file.
8729 * tst-rwlock9.c: New file.
8730 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8731 complete broken rwlock implementation.
8732 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8733 Likewise.
8734 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8735 Likewise.
8736 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8737 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8738 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8739 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8740 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8741 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8742 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8743
8915cc40
RM
87442003-02-23 Roland McGrath <roland@redhat.com>
8745
8746 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8747
fd1a0d0c
UD
87482003-02-23 Ulrich Drepper <drepper@redhat.com>
8749
ecf28959
UD
8750 * Makefile (tests): Add tst-context1.
8751 * tst-context1.c: New file.
8752
5e47b76b
UD
8753 * Makefile (tests): Add tst-tls1 and tst-tls2.
8754 * tst-tls1.c: New file.
8755 * tst-tls2.c: New file.
8756
5a6bbb41
UD
8757 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8758 for failed cmpxchg.
8759
fd1a0d0c
UD
8760 * pthread_create.c (start_thread): Set EXITING_BIT early.
8761
8762 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8763 (THREAD_GETMEM_NC): Likewise.
8764
757f9fcb
UD
87652003-02-22 Ulrich Drepper <drepper@redhat.com>
8766
b1b8e747
UD
8767 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8768 off 3 more bytes by using offset-less instructions when possible.
8769
c780aa21 8770 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8771
8772 * eintr.c (eintr_source): Add unnecessary return but the compiler
8773 insists.
8774
8775 * tst-kill3.c: Include <unistd.h>.
8776
5148559c
RM
87772003-02-21 Roland McGrath <roland@redhat.com>
8778
8779 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8780
ab2d98e3
UD
87812003-02-21 Ulrich Drepper <drepper@redhat.com>
8782
71028edd
UD
8783 * Makefile (tests): Add tst-eintr1.
8784 (distribute): Add eintr.c.
8785 * tst-eintr1.c: New file.
8786 * eintr.c: New file.
8787
e814f748
UD
8788 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8789
8790 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8791 Disallow sending SIGCANCEL.
8792
ab2d98e3 8793 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8794 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8795 * tst-kill1.c: New file.
8796 * tst-kill2.c: New file.
8797 * tst-kill3.c: New file.
8798 * tst-kill5.c: New file.
9c03686d 8799 * tst-kill6.c: New file.
e814f748
UD
8800 * tst-basic7.c: Renamed to...
8801 * tst-kill4.c: ...this.
ab2d98e3 8802
59fed0e2
RM
88032003-02-21 Roland McGrath <roland@redhat.com>
8804
8805 * Makefile (install-lib-ldscripts): New variable.
8806
49dc759f
UD
88072003-02-21 Ulrich Drepper <drepper@redhat.com>
8808
8c2e9a29
UD
8809 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8810 * pthread_cancel.c: Use INVALID_TD_P.
8811 * pthread_detach.c: Likewise.
8812 * pthread_getschedparam.c: Likewise.
8813 * pthread_setschedparam.c: Likewise.
8814 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8815 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8816 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8817 * pthread_timedjoin.c: Likewise.
8818
8819 * tst-basic7.c: Include <signal.h>.
8820
49dc759f
UD
8821 * pthread_join.c (pthread_join): Limited checking for invalid
8822 descriptors.
8823 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8824
df5803bf
UD
88252003-02-20 Ulrich Drepper <drepper@redhat.com>
8826
c5acd3d7
UD
8827 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8828 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8829 * Makefile (tests): Add tst-key4.
8830 * tst-key4.c: New file.
8831
729924a0
UD
88322003-02-18 Ulrich Drepper <drepper@redhat.com>
8833
2f7dc594
UD
8834 * Makefile (tests): Add tst-basic7.
8835 * tst-basic7.c: New file.
8836
ba25bb0f
UD
8837 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8838 Add some more __builtin_expect.
8839
12fd3c5f 8840 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8841
5430d926
UD
88422003-02-17 Ulrich Drepper <drepper@redhat.com>
8843
b0db7fbe
UD
8844 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8845 _POSIX_THREAD_PRIORITY_SCHEDULING.
8846 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8847 _XOPEN_REALTIME_THREADS.
8848 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8849
8850 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8851 kernel returns EINVAL for PID <= 0, work around it.
8852
ecfda9bd
UD
8853 * Makefile (tests): Add tst-signal5.
8854 * tst-signal5.c: New file.
8855
7d78ab99
UD
8856 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8857 and LOGIN_NAME_MAX.
8858
371a2972
UD
8859 * tst-cancel1.c (tf): Block all signals.
8860
5430d926
UD
8861 * Makefile (tests): Add tst-basic6.
8862 * tst-basic6.c: New file.
8863
8864 * tst-basic1.c: Add test for process ID.
8865
8866 * Makefile (tests): Add tst-cancel10.
8867 * tst-cancel10.c: New file.
8868
8869 * Makefile (tests): Add tst-signal4.
8870 * tst-signal4.c: New file.
8871
8872 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8873 __sigismember instead of sigismember. Add __builtin_expect.
8874
1564916a
UD
88752003-02-16 Ulrich Drepper <drepper@redhat.com>
8876
179ff175
UD
8877 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8878 pthread_setcancelstate, and pthread_rwlock_setpshared.
8879
e4335f9a
UD
8880 * tst-cancel7.c (do_test): Make sure the pid file exists before
8881 canceling the thread.
8882
0a37669a
UD
8883 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8884 pthread_rwlock_timedrdlock tests.
8885 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8886 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8887 Check for invalid tv_nsec field.
8888 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8889 Likewise.
8890
8891 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8892 recursive mutex of overflow.
8893
8894 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8895
e4335f9a 8896 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8897 going into an endless loop.
8898 * Makefile (tests): Add tst-cancel9.
8899 * tst-cancel9.c: New file.
8900
8901 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8902
b270b548
UD
89032003-02-15 Ulrich Drepper <drepper@redhat.com>
8904
1c82b97f
UD
8905 * tst-mutex5.c (do_test): Add more timedlock tests.
8906
b2f05465 8907 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8908 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8909
e798b60f
UD
8910 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8911 use INLINE_SYSCALL. Error number is returned, not -1.
8912
90491dc4
UD
8913 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8914 and __deallocate_stack with internal_function.
8915 * pthread_create.c: Adjust definitions appropriately.
8916 * allocatestack.c: Likewise.
8917
8918 * pthread_join.c: Add one more __builtin_expect.
8919 * pthread_timedjoin.c: Likewise.
8920
8921 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8922 not data of sequence number does not match.
8923 Add one __builtin_expect.
8924
c6247c9d
UD
8925 * Makefile (tests): Add tst-clock1.
8926 * tst-clock1.c: New file.
8927
b270b548
UD
8928 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8929 negative arguments.
8930 * Makefile (tests): Add tst-basic5.
8931 * tst-basic5.c: New file.
8932
700bf7af
UD
89332003-02-14 Ulrich Drepper <drepper@redhat.com>
8934
757de559
UD
8935 * Makefile (tests): Add tst-basic4.
8936 * tst-basic4.c: New file.
8937
47202270
UD
8938 * pthreadP.h: Add declaraction for __nptl_nthreads.
8939 * pthread_create.c: Define __nptl_nthreads
8940 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8941 after thread is done. If then zero, call exit(0).
47202270
UD
8942 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8943 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8944 * init.c (pthread_functions): Initialize ptr_nthreads.
8945 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8946 (__reclaim_stacks): Decrement __nptl_nthreads.
8947 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
8948 Define.
8949 * Makefile (tests): Add tst-basic3.
8950 * tst-basic3.c: New file.
8951
e320ef46
UD
8952 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
8953 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
8954 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
8955 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
8956 if asynchronous canceling is enabled.
8957 * pthread_join.c (pthread_join): When recognizing circular joins,
8958 take into account the other thread might be already canceled.
8959 * Makefile (tests): Add tst-join5.
8960 * tst-join5.c: New file.
8961
700bf7af
UD
8962 * Makefile (tests): Add tst-join4.
8963 * tst-join4.c: New file.
8964
89652003-02-13 Ulrich Drepper <drepper@redhat.com>
8966
8967 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
8968
dac0f772
UD
89692003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
8970
8971 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
8972 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
8973 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
8974 warning.
8975 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
8976 to avoid warning.
8977 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
8978 error if lll_futex_wake failed.
8979
e8cda341
UD
89802003-02-13 Ulrich Drepper <drepper@redhat.com>
8981
a7720b5e
UD
8982 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
8983 handling of cancellation and failung pthread_mutex_unlock call.
8984 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8985 * Makefile (tests): Add tst-cond8 and tst-cond9.
8986 * tst-cond8.c: New file.
8987 * tst-cond9.c: New file.
8988
a1ea4c06
UD
8989 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
8990
8991 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
8992 non-standard initializers with __USE_GNU.
8993
e8cda341
UD
8994 * Makefile (tests): Add tst-cleanup3.
8995 * tst-cleanup3.c: New file.
8996
2067577c
UD
89972003-02-12 Ulrich Drepper <drepper@redhat.com>
8998
89e78a95
UD
8999 * Makefile (tests): Add tst-attr1 and tst-attr2.
9000 * tst-attr1.c: New file.
9001 * tst-attr2.c: New file.
9002
dfdd294a
UD
9003 * Makefile: Add rules to build and run tst-atfork2 test.
9004 * tst-atfork2.c: New file.
9005 * tst-atfork2mod.c: New file.
9006
9007 * sysdeps/unix/sysv/linux/unregister-atfork.c
9008 (__unregister_atfork): Free the memory allocated for the handlers
9009 after removing them from the lists.
9010
9011 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
9012 cleanup function.
9013
9014 * tst-atfork1.c (do_test): Wait for the child we forked.
9015 Report error in child.
9016
9017 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
9018
2067577c
UD
9019 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
9020
2a8a8a84
UD
90212003-02-10 Ulrich Drepper <drepper@redhat.com>
9022
d9dd121e
UD
9023 * Makefile (tests): Add tst-cancel8.
9024 * tst-cancel8.c: New file.
9025
2a8a8a84
UD
9026 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
9027 clearing of control variable.
defd1870 9028 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 9029 * tst-once3.c: New file.
defd1870 9030 * tst-once4.c: New file.
2a8a8a84 9031
a54e8d33
UD
90322003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
9033
9034 * sysdeps/sh/Makefile: New file.
9035 * sysdeps/sh/bits/atomic.h: New file.
9036 * sysdeps/sh/pthread_spin_init.c: New file.
9037 * sysdeps/sh/pthread_spin_lock.c: New file.
9038 * sysdeps/sh/pthread_spin_trylock.S: New file.
9039 * sysdeps/sh/pthread_spin_unlock.S: New file.
9040 * sysdeps/sh/pthreaddef.h: New file.
9041 * sysdeps/sh/tcb-offsets.sym: New file.
9042 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
9043 * sysdeps/sh/tls.h: New file.
9044 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
9045 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
9046 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
9047 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
9048 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
9049 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
9050 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
9051 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
9052 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
9053 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
9054 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
9055 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
9056 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
9057 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
9058 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
9059 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
9060 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
9061 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
9062 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
9063 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
9064 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
9065 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
9066 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
9067 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
9068 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
9069 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
9070 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
9071 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
9072 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
9073 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
9074
696e556e
UD
90752003-02-08 Ulrich Drepper <drepper@redhat.com>
9076
9077 * tst-cond2.c: Rearrange code to not rely on behavior undefined
9078 according to POSIX.
9079
9080 * tst-basic2.c (do_test): Lock mutex before creating the thread.
9081
fef710d6
UD
90822003-02-07 Ulrich Drepper <drepper@redhat.com>
9083
c6180643
UD
9084 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
9085 (TLS_GET_FS): New #define.
9086 (TLS_SET_FS): New #define.
9087 Correct value of __NR_set_thread_area.
9088
fef710d6
UD
9089 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
9090
11090a99
UD
90912003-02-06 Ulrich Drepper <drepper@redhat.com>
9092
65c68990
UD
9093 * Makefile (tests): Add tst-popen1.
9094 * tst-popen1.c: New file.
9095
11090a99
UD
9096 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
9097 but inactive generalization.
9098 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9099 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9100 Minor optimization, remove one instruction.
9101 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9102
a88c9263
UD
91032003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
9104
9105 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
9106
91072003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
9108
9109 * init.c (__NR_set_tid_address): Add #ifdef for s390.
9110 * sysdeps/pthread/pthread_barrier_wait.c: New file.
9111 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
9112 * sysdeps/pthread/pthread_cond_signal.c: New file.
9113 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
9114 * sysdeps/pthread/pthread_cond_wait.c: New file.
9115 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
9116 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
9117 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
9118 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
9119 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
9120 * sysdeps/s390/Makefile: New file.
9121 * sysdeps/s390/bits/atomic.h: New file.
9122 * sysdeps/s390/pthread_spin_init.c: New file.
9123 * sysdeps/s390/pthread_spin_lock.c: New file.
9124 * sysdeps/s390/pthread_spin_trylock.c: New file.
9125 * sysdeps/s390/pthread_spin_unlock.c: New file.
9126 * sysdeps/s390/pthreaddef.h: New file.
9127 * sysdeps/s390/tcb-offsets.sym: New file.
9128 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
9129 * sysdeps/s390/tls.h: New file.
9130 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
9131 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
9132 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
9133 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
9134 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
9135 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
9136 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9137 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
9138 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
9139 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
9140 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
9141 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
9142 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
9143 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
9144 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
9145 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
9146 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
9147 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
9148 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
9149 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
9150 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
9151 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9152 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
9153
6f1cff95
UD
91542003-02-04 Ulrich Drepper <drepper@redhat.com>
9155
ec609a8e
UD
9156 * atomic.h: Add a couple more default implementations.
9157 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
9158 __arch_compare_and_exchange_32_acq in return value definition. It
9159 always exists.
9160 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 9161 Add missing atomic_ prefixes.
e3ec8904 9162
6f1cff95
UD
9163 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
9164 thread library is available, use correct value to mark initialized
9165 once variable.
9166
4f088329
UD
91672003-02-03 Ulrich Drepper <drepper@redhat.com>
9168
6f1cff95
UD
9169 * allocatestack.c (allocate_stack): Use __getpagesize instead of
9170 __sysconf to determine pagesize.
9171
3e4fc359 9172 * pthread_create.c: Include <atomic.h>.
4f088329
UD
9173 * allocatestack.c (allocate_stack): Implement coloring of the
9174 allocated stack memory. Rename pagesize to pagesize_m1. It's the
9175 size minus one. Adjust users.
3e4fc359 9176 * sysdeps/i386/i686/Makefile: New file.
4f088329 9177
2f42e8be
UD
91782003-02-02 Ulrich Drepper <drepper@redhat.com>
9179
4301f7e2
UD
9180 * allocatestack.c: Improve comment throughout the file.
9181
2f42e8be 9182 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 9183 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
9184 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9185 (__lll_lock_wait): Likewise.
9186 (lll_unlock_wake_cb): Removed.
9187
4a7d6545
UD
91882003-01-31 Ulrich Drepper <drepper@redhat.com>
9189
9190 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
9191 _POSIX_THREAD_PRIORITY_SCHEDULING.
9192
886d5973
UD
91932003-01-30 Jakub Jelinek <jakub@redhat.com>
9194
9195 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9196 Fix return type of ptr___pthread_getspecific.
9197
e474ca78
UD
91982003-01-29 Ulrich Drepper <drepper@redhat.com>
9199
9200 * Makefile (tests): Add tst-umask1.
9201 (tst-umask1-ARGS): Define.
9202 * tst-umask1.c: New file.
9203
e6ebd2e4
UD
92042003-01-28 Ulrich Drepper <drepper@redhat.com>
9205
6cf26f41
UD
9206 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
9207 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
9208 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
9209 pthread_rwlock_unlock.
9210 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
9211 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
9212 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
9213 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
9214 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9215 New file.
9216 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
9217 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9218 New file.
9219 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
9220 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
9221 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
9222 New file.
9223 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
9224 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
9225 New file.
9226 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
9227 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
9228 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
9229 New file.
9230 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
9231 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
9232 New file.
9233 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
9234
1d087a7e
UD
9235 * Makefile (libpthread-routines): Remove lowlevelcond and
9236 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
9237 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
9238 and pthread_cond_broadcast.
4a99d160
UD
9239 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
9240 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
9241 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
9242 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
9243 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
9244 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
9245 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
9246 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
9247 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
9248 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
9249 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
9250 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
9251 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
9252 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
9253 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
9254 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
9255 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
9256 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
9257 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
9258 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
9259 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
9260 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
9261 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
9262 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
9263 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
9264 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
9265 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
9266 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
9267 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
9268 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
9269 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 9270
e6ebd2e4
UD
9271 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
9272 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
9273 of the code is moved to ...
9274 * sysdeps/pthread/createthread.c: ...here. New file.
9275
a15698cb
UD
92762003-01-27 Ulrich Drepper <drepper@redhat.com>
9277
0566b130
UD
9278 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
9279 (__new_sem_post): Clear %eax before returning.
9280 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
9281
e6fb8846
UD
9282 * Makefile (tests): Add tst-cleanup2.
9283 * tst-cleanup2.c: New file.
9284
a15698cb
UD
9285 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9286 Interpret first parameter correctly.
9287
8824b0a1
UD
92882003-01-17 Ulrich Drepper <drepper@redhat.com>
9289
9290 * Makefile (headers): Add bits/semaphore.h.
9291
850dcfca
UD
92922003-01-16 Jakub Jelinek <jakub@redhat.com>
9293
9294 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
9295 if not SHARED.
9296
574b892e
UD
92972003-01-14 Ulrich Drepper <drepper@redhat.com>
9298
a8d87c92
UD
9299 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
9300 must be used and mapping failed.
9301 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
9302
574b892e
UD
9303 * Makefile (CFLAGS-pthread_self.os): Define this, not
9304 CFLAGS-pthread_self.c.
9305
fb48047a
UD
93062003-01-13 Ulrich Drepper <drepper@redhat.com>
9307
47805511
UD
9308 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
9309 lll_unlock_wake_cb.
9310
fb48047a
UD
9311 * Makefile (libpthread-routines): Add version. Add rules to build
9312 version.os and banner.h.
9313 * version.c: New file.
9314
115bb61d
UD
93152003-01-13 Jakub Jelinek <jakub@redhat.com>
9316
9317 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
9318 the alias unconditional.
9319 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
9320
93212003-01-13 Ulrich Drepper <drepper@redhat.com>
9322
9323 * Makefile (CFLAGS-pthread_self.c): New definition.
9324
6aca81bb
UD
93252003-01-06 Jakub Jelinek <jakub@redhat.com>
9326
9327 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
9328 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
9329 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
9330 * init.c (__pthread_initialize_minimal_internal): Likewise.
9331
e9c7764e
UD
93322003-01-07 Jakub Jelinek <jakub@redhat.com>
9333
b5facfda
UD
9334 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
9335
e9c7764e
UD
9336 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9337 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9338 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9339 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9340 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9341 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9342
bef1e42f
UD
93432003-01-06 Jakub Jelinek <jakub@redhat.com>
9344
9345 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
9346 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
9347 * tst-cancel-wrappers.sh: Remove all exceptions.
9348
bbd17455
UD
93492003-01-05 Ulrich Drepper <drepper@redhat.com>
9350
a73ab6df
UD
9351 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
9352 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
9353
bbd17455
UD
9354 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
9355 Use __libc_pthread_functions array if SHARED.
9356
9357 * pthreadP.h: Move pthread_cond_2_0_t definition to...
9358 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
9359
9360 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
9361 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
9362 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
9363 __libc_ptf_call instead of __libc_maybe_call.
9364 (PTF): New #define.
9365 (__libc_cleanup_region_start): Wrap function name with PTF call.
9366 (__libc_cleanup_region_end): Likewise.
9367 (__libc_cleanup_end): Likewise.
9368
9369 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
9370 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
9371 * pthread_key_create.c: Add __pthread_key_create_internal alias.
9372 * pthreadP.h: Add prototypes.
9373
9374 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
9375 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
9376 __pthread_rwlock_unlock aliases.
9377 * pthreadP.h: Add prototypes for new aliases.
9378
9379 * pthreadP.h (struct pthead_functions): Moved to...
9380 * sysdeps/pthread/pthread-functions.h: ...here. New file.
9381 * init.c (pthread_functions): Add initializers for new elements.
9382
9383 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9384 __pthread_cleanup_pop_restore aliases.
9385 * pthreadP.h: Add prototypes.
9386
9387 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9388 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9389 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9390 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9391 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9392 * pthreadP.h: Adjust prototypes and callers.
9393
d27a78be
UD
93942003-01-04 Ulrich Drepper <drepper@redhat.com>
9395
b74121ae
UD
9396 * Makefile (tests): Add tst-cancel7.
9397 (tst-cancel7-ARGS): New variable.
bbd17455 9398 * tst-cancel7.c: New file.
b74121ae 9399
29bc410c
UD
9400 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9401 around gcc defficiencies.
9402 * old_pthread_cond_signal.c: Likewise.
9403 * old_pthread_cond_timedwait.c: Likewise.
9404 * old_pthread_cond_wait.c: Likewise.
9405
d27a78be
UD
9406 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9407
733f25e6
UD
94082003-01-03 Ulrich Drepper <drepper@redhat.com>
9409
7edb2ae3
UD
9410 * Makefile (tests): Add tst-cond7.
9411 * tst-cond7.c: New file.
9412
b1151300
UD
9413 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9414 (condvar_cleanup): Get condvar address from the right place.
9415
733f25e6
UD
9416 * atomic.h: Correct definitions of atomic_full_barrier,
9417 atomic_read_barrier, atomic_write_barrier.
9418
9419 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9420 race-free.
9421 * old_pthread_cond_signal.c: Likewise.
9422 * old_pthread_cond_timedwait.c: Likewise.
9423 * old_pthread_cond_wait.c: Likewise.
9424
686b7223
UD
94252003-01-03 Jakub Jelinek <jakub@redhat.com>
9426
9427 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9428
0e07706e
UD
94292003-01-03 Ulrich Drepper <drepper@redhat.com>
9430
997256dd
UD
9431 * pthreadP.h (pthread_cond_2_0_t): New type.
9432 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9433 Use new type for the 2.0 condvar function prototypes.
9434 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9435 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9436 parameter.
9437 * old_pthread_cond_destroy.c: Likewise.
9438 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9439 * old_pthread_cond_signal.c: Likewise.
9440 * old_pthread_cond_timedwait.c: Likewise.
9441 * old_pthread_cond_wait.c: Likewise.
9442
842d2817
UD
9443 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9444 (__pthread_cond_wait): Don't save cancellation mode and seq value
9445 in same location.
9446
0e07706e
UD
9447 * herrno.c (__h_errno_location): Don't define as weak.
9448
bf293afe
UD
94492003-01-02 Jakub Jelinek <jakub@redhat.com>
9450
9451 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9452 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9453 and pthread_cond_wait.
9454 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9455 Renamed to...
9456 (__pthread_cond_broadcast_2_0): ... this.
9457 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9458 Renamed to...
9459 (__pthread_cond_destroy_2_0): ... this.
9460 * old_pthread_cond_init.c (__old_pthread_cond_init):
9461 Renamed to...
9462 (__pthread_cond_init_2_0): ... this.
9463 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9464 Renamed to...
9465 (__pthread_cond_signal_2_0): ... this.
9466 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9467 Renamed to...
9468 (__pthread_cond_wait_2_0): ... this.
9469 * pthread_cond_destroy.c: Include shlib-compat.h.
9470 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9471 * pthread_cond_init.c: Include shlib-compat.h.
9472 (pthread_cond_init): Change strong_alias into versioned_symbol.
9473 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9474 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9475 fields.
9476 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9477 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9478 __pthread_cond_wait_2_0): New prototypes.
9479 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9480 __old_pthread_cond_init, __old_pthread_cond_signal,
9481 __old_pthread_cond_wait): Removed.
9482 * init.c: Include shlib-compat.h.
9483 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9484 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9485 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9486 ptr___pthread_cond_*_2_0 fields.
9487 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9488 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9489
9490 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9491 LIBC_SIGACTION was not yet defined.
9492 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9493 [!defined LIBC_SIGACTION] (__sigaction): New function and
9494 libc_hidden_weak.
9495 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9496 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9497
94982003-01-02 Jakub Jelinek <jakub@redhat.com>
9499
9500 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9501
05df18c3
UD
95022003-01-02 Ulrich Drepper <drepper@redhat.com>
9503
9504 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9505 New, larger type definition.
9506 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9507 implementation.
9508 * Versions [libpthread]: Add definitions for new pthread_cond_*
9509 interfaces for version GLIBC_2.3.2.
9510 * pthread_cond_init.c: Update initialization for new type definition.
9511 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9512 pthread_cond_timedwait, pthread_cond_signal, and
9513 pthread_cond_broadcast. Add old_pthread_cond_init,
9514 old_pthread_cond_destroy, old_pthread_cond_wait,
9515 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9516 old_pthread_cond_broadcast.
9517 * old_pthread_cond_broadcast.c: New file.
9518 * old_pthread_cond_destroy.c: New file.
9519 * old_pthread_cond_init.c: New file.
9520 * old_pthread_cond_signal.c: New file.
9521 * old_pthread_cond_timedwait.c: New file.
9522 * old_pthread_cond_wait.c: New file.
9523 * pthreadP.h: Add prototypes for the compatibility interfaces.
9524
9525 * pthread_cond_destroy.c: Don't include <errno.h>.
9526
fd8979e4
UD
95272003-01-01 Ulrich Drepper <drepper@redhat.com>
9528
9529 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9530 unnecessary zero offset when addressing MUTEX.
9531
6d6ee629
UD
95322002-12-31 Ulrich Drepper <drepper@redhat.com>
9533
9534 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9535 __register_atfork.
9536 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9537 for __register_atfork.
9538
a4baf360
UD
95392002-12-31 Jakub Jelinek <jakub@redhat.com>
9540
9541 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9542 instead of ASSEMBLER test macro.
9543
9544 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9545 __libc_current_sigrtmax): Add libc_hidden_def.
9546
9547 * sysdeps/pthread/list.h: Remove assert.h include.
9548
e9395a94
UD
95492002-12-31 Ulrich Drepper <drepper@redhat.com>
9550
9551 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9552 __pthread_initialize_minimal_internal not
9553 __pthread_initialize_minimal.
9554
89d6e444
UD
95552002-12-30 Ulrich Drepper <drepper@redhat.com>
9556
416d2de6
UD
9557 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9558 __pthread_initialize_minimal as hidden.
9559
89d6e444
UD
9560 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9561 constructor.
9562
95632002-12-31 Jakub Jelinek <jakub@redhat.com>
9564
9565 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9566 $(common-objpfx)format.lds, include that into the output script.
9567 Fix comment.
9568 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9569
8cac677c
UD
95702002-12-28 Andreas Jaeger <aj@suse.de>
9571
9572 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9573 nsec resolution changes.
9574 (xstat64_conv): Likewise.
9575 (xstat32_conv): Likewise.
9576 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9577 struct kernel_stat.
9578 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9579 structs stat and stat64.
9580 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9581 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9582
49e9f864
UD
95832002-12-30 Jakub Jelinek <jakub@redhat.com>
9584
9585 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9586 argument.
9587 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9588 (pthread_exit): Use strong_alias to avoid warnings.
9589 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9590 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9591 ptr___pthread_attr_init_2_*.
9592 * init.c (pthread_functions): Adjust.
9593
bab09b26
UD
95942002-12-29 Ulrich Drepper <drepper@redhat.com>
9595
598d7a42
UD
9596 * forward.c: Make all functions available by default again. It
9597 caused too much trouble.
9598
bab09b26
UD
9599 * pt-siglongjmp.c: Removed.
9600
3b7ed871
UD
96012002-12-28 Jakub Jelinek <jakub@redhat.com>
9602
9603 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9604 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9605 * sysdeps/i386/Makefile: New file.
9606 * sysdeps/i386/tcb-offsets.sym: New file.
9607 * sysdeps/pthread/tcb-offsets.h: New file.
9608 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9609 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9610
9611 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9612 __register_atfork...
9613 (GLIBC_2.3.2): ...here.
9614
96152002-12-28 Ulrich Drepper <drepper@redhat.com>
9616
9617 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9618 pthread_attr_setstackaddr with __attribute_deprecated__.
9619
270d9d47
UD
96202002-12-27 Jakub Jelinek <jakub@redhat.com>
9621
9622 * pt-system.c (system): Remove cancellation handling.
9623 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9624 cancellation routines.
9625
131fd126
UD
96262002-12-28 Ulrich Drepper <drepper@redhat.com>
9627
afb2e954
UD
9628 * descr.h: Include <dl-sysdep.h>.
9629 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9630 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9631 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9632 (SYSINFO_OFFSEET): Likewise.
9633
96342002-12-27 Jakub Jelinek <jakub@redhat.com>
9635
9636 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9637 Define.
9638 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9639 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9640 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9641 (USE_DL_SYSINFO): Undef.
9642
96432002-12-22 Jakub Jelinek <jakub@redhat.com>
9644
9645 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9646 $(common-objpfx)libc.so.
9647 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9648 it is bigger than pipe buffer size even on arches with bigger
9649 page size.
9650 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9651
a218c9cf
UD
96522002-12-25 Ulrich Drepper <drepper@redhat.com>
9653
9654 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9655 correct errno access for case that USE___THREAD is not defined.
9656
015a2dc9
UD
96572002-12-24 Ulrich Drepper <drepper@redhat.com>
9658
9659 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9660 Patch by Marijn Ros <marijn@mad.scientist.com>.
9661
5220f9ac
RM
96622002-12-22 Roland McGrath <roland@redhat.com>
9663
9664 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9665
1561bf63
UD
96662002-12-20 Ulrich Drepper <drepper@redhat.com>
9667
9668 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9669
3325198e
UD
96702002-12-19 Ulrich Drepper <drepper@redhat.com>
9671
057c823f
UD
9672 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9673 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9674 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9675
097eca29
UD
9676 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9677 of int $0x80.
9678 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9679 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9680 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9681 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9682 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9683 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9684 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9685 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9686
9687 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9688 sysenter.
9689 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9690
9691 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9692
5f5843e3
UD
9693 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9694 in new TCB.
9695 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9696 that sysinfo is properly initialized.
9697 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9698 to 1 only for ld.so.
9699
3325198e
UD
9700 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9701 RTLD_CORRECT_DYNAMIC_WEAK.
9702
74e8f2dc
UD
97032002-12-19 Jakub Jelinek <jakub@redhat.com>
9704
9705 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9706 Use return 0 as 6th argument to FORWARD4.
9707 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9708
df45b31e
UD
97092002-12-18 Ulrich Drepper <drepper@redhat.com>
9710
9711 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9712 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9713 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9714 (INIT_SYSINFO): New #define.
9715 (TLS_TP_INIT): Use INIT_SYSINFO.
9716 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9717 At test to make sure SYSINFO_OFFSET value is correct.
9718 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9719
3d539579
UD
97202002-12-18 Jakub Jelinek <jakub@redhat.com>
9721
9722 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9723 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9724 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9725 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9726 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9727 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9728 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9729
d7913e0e
UD
97302002-12-18 Ulrich Drepper <drepper@redhat.com>
9731
f051627f
UD
9732 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9733 macro instead of using int $0x80 directly.
9734
d7913e0e
UD
9735 * sysdeps/pthread/bits/stdio-lock.h: New file.
9736 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9737 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9738 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9739 * Makefile (routines): Add libc-lowlevelmutex.
9740
9741 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9742 __i686.get_pc_thunk.dx.
9743
f077a4a9
UD
97442002-12-17 Jakub Jelinek <jakub@redhat.com>
9745
9746 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9747 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9748 ($(objpfx)tst-cancel-wrappers.out): New rule.
9749 * tst-cancel-wrappers.sh: New test.
9750 * tst-locale1.c: Include signal.h.
9751 (uselocale): Test static linking of __libc_current_sigrt*.
9752
97532002-12-17 Ulrich Drepper <drepper@redhat.com>
9754
9755 * Makefile (tests): Add tst-cancel6.
9756 * tst-cancel6.c: New file
9757
bd499a3b
UD
97582002-12-17 Jakub Jelinek <jakub@redhat.com>
9759
9760 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9761 Define meaningfully for assembler as well.
9762 * pthreadP.h (struct pthread_functions): Remove
9763 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9764 and ptr_pthread_attr_init_2_1 fields.
9765 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9766 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9767 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9768 (FORWARD3): Define using FORWARD4.
9769 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9770 versions.
9771 * pt-system.c: Remove duplicate stdlib.h include.
9772
0a1063f4
UD
97732002-12-16 Ulrich Drepper <drepper@redhat.com>
9774
87d60668
UD
9775 * sem_init.c: Define sem_init@GLIBC_2.0.
9776 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9777 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9778
0a1063f4
UD
9779 * flockfile.c: Moved to...
9780 * sysdeps/pthread/flockfile.c: ...here. New file.
9781 * funlockfile.c: Moved to...
9782 * sysdeps/pthread/funlockfile.c: ...here. New file.
9783 * ftrylockfile.c: Moved to...
9784 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9785
9634cf9d
UD
97862002-12-16 Jakub Jelinek <jakub@redhat.com>
9787
9788 * libc-cancellation.c: Guard both function with
9789 #if !defined NOT_IN_libc.
9790 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9791 automatically provided pthread wrappers.
9792 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9793 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9794 nor in libpthread.
9795 * pt-open.c: Removed.
9796 * pt-fcntl.c: Removed.
9797 * pt-fsync.c: Removed.
9798 * pt-lseek.c: Removed.
9799 * pt-msgrcv.c: Removed.
9800 * pt-msgsnd.c: Removed.
9801 * pt-msync.c: Removed.
9802 * pt-nanosleep.c: Removed.
9803 * pt-open64.c: Removed.
9804 * pt-pause.c: Removed.
9805 * pt-pread.c: Removed.
9806 * pt-pread64.c: Removed.
9807 * pt-pwrite.c: Removed.
9808 * pt-pwrite64.c: Removed.
9809 * pt-read.c: Removed.
9810 * pt-recv.c: Removed.
9811 * pt-recvfrom.c: Removed.
9812 * pt-recvmsg.c: Removed.
9813 * pt-send.c: Removed.
9814 * pt-sendto.c: Removed.
9815 * pt-sigtimedwait.c: Removed.
9816 * pt-sigwait.c: Removed.
9817 * pt-wait.c: Removed.
9818 * pt-waitpid.c: Removed.
9819 * pt-write.c: Removed.
9820 * pt-accept.c: Removed.
9821 * pt-close.c: Removed.
9822 * pt-connect.c: Removed.
9823 * pt-lseek64.c: Removed.
9824 * pt-sendmsg.c: Removed.
9825 * pt-tcdrain.c: Removed.
9826
6ee8d334
UD
98272002-12-15 Ulrich Drepper <drepper@redhat.com>
9828
81fa9371
UD
9829 * init.c (__pthread_initialize_minimal_internal): Renamed from
9830 __pthread_initialize_minimal. Make old name an alias. This
9831 converts a normal relocation into a relative relocation.
9832
f3015aa5
UD
9833 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9834
4cbc1950
UD
9835 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9836 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9837 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9838 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9839 pt-sigwaitinfo, pt-waitid, and pt-writev.
9840 * pt-creat.c: Removed.
9841 * pt-poll.c: Removed.
9842 * pt-pselect.c: Removed.
9843 * pt-readv.c: Removed.
9844 * pt-select.c: Removed.
9845 * pt-sigpause.c: Removed.
9846 * pt-sigsuspend.c: Removed.
9847 * pt-sigwaitinfo.c: Removed.
9848 * pt-waitid.c: Removed.
9849 * pt-writev.c: Removed.
9850
8454830b
UD
9851 * init.c (pthread_functions): New variable.
9852 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9853 (or NULL) to __libc_pthread_init.
9854 * forward.c: Rewrite to use __libc:pthread_functions array to get
9855 function addresses.
9856 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9857 prototype.
9858 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9859 Take new parameter. Copy content of variable pointed to by it
9860 to __libc_pthread_init.
9861
9862 * pthreadP.h (struct pthread_functions): New type.
9863 (__libc_pthread_init): Declare.
9864
9865 * pthread_attr_destroy.c: Add namespace protected alias.
9866 * pthread_attr_getdetachstate.c: Likewise.
9867 * pthread_attr_getinheritsched.c: Likewise.
9868 * pthread_attr_getschedparam.c: Likewise.
9869 * pthread_attr_getschedpolicy.c: Likewise.
9870 * pthread_attr_getscope.c: Likewise.
9871 * pthread_attr_setdetachstate.c: Likewise.
9872 * pthread_attr_setinheritsched.c: Likewise.
9873 * pthread_attr_setschedparam.c: Likewise.
9874 * pthread_attr_setschedpolicy.c: Likewise.
9875 * pthread_attr_setscope.c: Likewise.
9876 * pthread_cond_broadcast.c: Likewise.
9877 * pthread_cond_destroy.c: Likewise.
9878 * pthread_cond_init.c: Likewise.
9879 * pthread_cond_signal.c: Likewise.
9880 * pthread_cond_wait.c: Likewise.
9881 * pthread_condattr_destroy.c: Likewise.
9882 * pthread_condattr_init.c: Likewise.
9883 * pthread_equal.c: Likewise.
9884 * pthread_exit.c: Likewise.
9885 * pthread_getschedparam.c: Likewise.
9886 * pthread_self.c: Likewise.
9887 * pthread_setcancelstate.c: Likewise.
9888 * pthread_setschedparam.c: Likewise.
9889 * pthread_mutex_destroy.c: Likewise.
9890 * pthread_mutex_init.c: Likewise.
9891 * pthreadP.h: Add prototypes for the aliases.
9892
0d5f4929
UD
9893 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9894 multiple_threads member in correct TCB to 1.
9895
6ee8d334
UD
9896 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9897 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9898 member of thread decriptor, otherwise return unconditionally 1.
9899
2fb6444d
UD
99002002-12-14 Ulrich Drepper <drepper@redhat.com>
9901
9902 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9903 regular Linux version. Remove file.
9904 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9905 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9906 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9907 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9908 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9909 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9910 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9911 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9912 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9913 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9914 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9915 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9916 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9917 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9918 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9919 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9920 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9921 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9922 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9923 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9924 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9925 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9926 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9927 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9928 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9929 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9930 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9931 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9932 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9933 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9934
86b2dc40
UD
99352002-12-14 Jakub Jelinek <jakub@redhat.com>
9936
9937 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9938 * sysdeps/unix/sysv/linux/open.c: Removed.
9939 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9940 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9941 * sysdeps/unix/sysv/linux/msync.c: Removed.
9942 * sysdeps/unix/sysv/linux/read.c: Removed.
9943 * sysdeps/unix/sysv/linux/close.c: Removed.
9944 * sysdeps/unix/sysv/linux/creat.c: Removed.
9945 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9946 * sysdeps/unix/sysv/linux/pause.c: Removed.
9947 * sysdeps/unix/sysv/linux/select.c: Removed.
9948 * sysdeps/unix/sysv/linux/write.c: Removed.
9949
9d263d72
UD
99502002-12-14 Ulrich Drepper <drepper@redhat.com>
9951
9952 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
9953 element in TCB to see whether locking is needed.
9954
9955 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
9956 MULTIPLE_THREADS_OFFSET value is correct.
9957
9958 * sysdeps/unix/sysv/linux/close.c: New file.
9959 * sysdeps/unix/sysv/linux/connect.S: New file.
9960 * sysdeps/unix/sysv/linux/creat.c: New file.
9961 * sysdeps/unix/sysv/linux/fsync.c: New file.
9962 * sysdeps/unix/sysv/linux/llseek.c: New file.
9963 * sysdeps/unix/sysv/linux/lseek.c: New file.
9964 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
9965 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
9966 * sysdeps/unix/sysv/linux/msync.c: New file.
9967 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
9968 * sysdeps/unix/sysv/linux/open.c: New file.
9969 * sysdeps/unix/sysv/linux/open64.c: New file.
9970 * sysdeps/unix/sysv/linux/pause.c: New file.
9971 * sysdeps/unix/sysv/linux/poll.c: New file.
9972 * sysdeps/unix/sysv/linux/pread.c: New file.
9973 * sysdeps/unix/sysv/linux/pread64.c: New file.
9974 * sysdeps/unix/sysv/linux/pselect.c: New file.
9975 * sysdeps/unix/sysv/linux/pwrite.c: New file.
9976 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
9977 * sysdeps/unix/sysv/linux/readv.c: New file.
9978 * sysdeps/unix/sysv/linux/recv.S: New file.
9979 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
9980 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
9981 * sysdeps/unix/sysv/linux/select.c: New file.
9982 * sysdeps/unix/sysv/linux/send.S: New file.
9983 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
9984 * sysdeps/unix/sysv/linux/sendto.S: New file.
9985 * sysdeps/unix/sysv/linux/sigpause.c: New file.
9986 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
9987 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9988 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9989 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9990 * sysdeps/unix/sysv/linux/system.c: New file.
9991 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
9992 * sysdeps/unix/sysv/linux/wait.c: New file.
9993 * sysdeps/unix/sysv/linux/waitid.c: New file.
9994 * sysdeps/unix/sysv/linux/waitpid.c: New file.
9995 * sysdeps/unix/sysv/linux/writev.c: New file.
9996 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
9997
9998 * pt-readv.c: Fix comment.
9999
100002002-12-14 Jakub Jelinek <jakub@redhat.com>
10001
10002 * tst-cleanup1.c: Include stdlib.h.
10003
10004 * tst-cancel5.c: New test.
10005 * Makefile (tests): Add tst-cancel5.
10006 (tst-cancel5): Link against libc.so libpthread.so in that order.
10007
9ae0909b
UD
100082002-12-13 Ulrich Drepper <drepper@redhat.com>
10009
b7bdd9c4
UD
10010 * forward.c (test_loaded): Prevent recursive calls.
10011
9ae0909b
UD
10012 * Makefile (routines): Add libc-cancellation.
10013 * libc-cancellation.c: New file.
10014 * descr.h (struct pthread): Add multiple_threads field.
10015 * allocatestack.c (allocate_stack): Initialize multiple_header field of
10016 new thread descriptor to 1.
10017 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
10018 Initialize multiple_thread field after successful thread creation.
10019 * cancellation.c (__do_cancel): Move to pthreadP.h.
10020 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
10021 (__pthread_disable_asynccancel): Add internal_function attribute.
10022 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
10023 * pthread_setcancelstate.c: Likewise.
10024 * pthread_setcanceltype.c: Likewise.
10025 * pthread_exit.c: Likewise.
10026 * pthreadP.h (CANCELLATION_P): Likewise.
10027 (__do_cancel): Define as static inline.
10028 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
10029 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
10030 declarations.
10031 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
10032 fields. Define MULTIPLE_THREADS_OFFSET.
10033 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
10034 declaration.
10035 * sysdeps/unix/sysv/linux/accept.S: New file.
10036 * sysdeps/unix/sysv/linux/read.c: New file.
10037 * sysdeps/unix/sysv/linux/write.c: New file.
10038 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
10039 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
10040 initialization of __libc_locking_needed.
10041 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
10042 __libc_locking_needed, use multiple_threads field in TCB.
10043 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10044
22f20674
UD
100452002-12-12 Ulrich Drepper <drepper@redhat.com>
10046
2ad2e1e7
UD
10047 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
10048 version.
10049 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
10050
22f20674
UD
10051 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
10052 access to __libc_locking_needed for PIC.
10053
aa80bf86
UD
100542002-12-12 Jakub Jelinek <jakub@redhat.com>
10055
10056 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
10057 declare for libc.so.
10058 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
10059 expression.
10060 (__libc_lock_lock): Put into statement expression.
10061 (__libc_lock_unlock): Remove trailing semicolon.
10062 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
10063
24021373
RM
100642002-12-12 Roland McGrath <roland@redhat.com>
10065
10066 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
10067 "m" constraint to refer to __libc_locking_needed. Declare it here.
10068
14e7aece
UD
100692002-12-12 Ulrich Drepper <drepper@redhat.com>
10070
10071 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
10072 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
10073 Initialize __libc_locking_needed.
10074 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
10075 instead of __register_pthread_fork_handler.
10076 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
10077 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
10078 fork-gen with libc_pthread_init.
10079 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
10080 of __register_pthread_fork_handler.
10081 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
10082 of __register_pthread_fork_handler.
10083 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
10084 __libc_locking_needed to determine whether lock prefix can be avoided.
10085 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10086
85631c8e
UD
100872002-12-11 Ulrich Drepper <drepper@redhat.com>
10088
da63009e
UD
10089 * Makefile (tests): Add tst-cleanup1.
10090 * tst-cleanup1.c: New file.
10091 * cancellation.c (__cleanup_thread): Removed.
10092 (__do_cancel): Remove call to __cleanup_thread.
10093 * pthreadP.h: Remove __cleanup_thread prorotype.
10094
000160a2
UD
10095 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
10096 Remember function and argument even if cancellation handler
10097 function is not available.
10098 (__libc_cleanup_region_end): Execute registered function directly if
10099 pthread functions are not available.
10100 (__libc_cleanup_end): Likewise.
10101
85631c8e
UD
10102 * init.c (__pthread_initialize_minimal): Fix initialization in
10103 static lib by preventing gcc from being too clever.
10104
dce8f2b6
UD
101052002-12-10 Ulrich Drepper <drepper@redhat.com>
10106
34a075be
UD
10107 * init.c (__pthread_initialize_minimal): Remove unneccesary
10108 sigaddset call.
10109
dce8f2b6
UD
10110 * Makefile (tests): We can run tst-locale2 now.
10111
e5e45b53
UD
101122002-12-09 Ulrich Drepper <drepper@redhat.com>
10113
10114 * Versions: Remove duplicated sigwait entry.
10115
bdb04f92
UD
101162002-12-08 Ulrich Drepper <drepper@redhat.com>
10117
1e506629
UD
10118 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
10119 inside libpthread.
10120
a3957dd5
UD
10121 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
10122
bdb04f92
UD
10123 * pthreadP.h: Declare __pthread_enable_asynccancel and
10124 __pthread_disable_asynccancel.
10125 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
10126 (CANCEL_RESET): Use __pthread_disable_asynccancel.
10127 * cancellation.c (__pthread_enable_asynccancel): New function.
10128 (__pthread_disable_asynccancel): New function.
10129 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
10130 * pt-close.c: Likewise.
10131 * pt-connect.c: Likewise.
10132 * pt-creat.c: Likewise.
10133 * pt-fcntl.c: Likewise.
10134 * pt-fsync.c: Likewise.
10135 * pt-lseek.c: Likewise.
10136 * pt-lseek64.c: Likewise.
10137 * pt-msgrcv.c: Likewise.
10138 * pt-msgsnd.c: Likewise.
10139 * pt-msync.c: Likewise.
10140 * pt-nanosleep.c: Likewise.
10141 * pt-open.c: Likewise.
10142 * pt-open64.c: Likewise.
10143 * pt-pause.c: Likewise.
10144 * pt-poll.c: Likewise.
10145 * pt-pread.c: Likewise.
10146 * pt-pread64.c: Likewise.
10147 * pt-pselect.c: Likewise.
10148 * pt-pwrite.c: Likewise.
10149 * pt-pwrite64.c: Likewise.
10150 * pt-read.c: Likewise.
10151 * pt-readv.c: Likewise.
10152 * pt-recv.c: Likewise.
10153 * pt-recvfrom.c: Likewise.
10154 * pt-recvmsg.c: Likewise.
10155 * pt-select.c: Likewise.
10156 * pt-send.c: Likewise.
10157 * pt-sendmsg.c: Likewise.
10158 * pt-sendto.c: Likewise.
10159 * pt-sigpause.c: Likewise.
10160 * pt-sigsuspend.c: Likewise.
10161 * pt-sigtimedwait.c: Likewise.
10162 * pt-sigwait.c: Likewise.
10163 * pt-sigwaitinfo.c: Likewise.
10164 * pt-system.c: Likewise.
10165 * pt-tcdrain.c: Likewise.
10166 * pt-wait.c: Likewise.
10167 * pt-waitid.c: Likewise.
10168 * pt-waitpid.c: Likewise.
10169 * pt-write.c: Likewise.
10170 * pt-writev.c: Likewise.
a3957dd5
UD
10171 * pthread_join.c: Likewise.
10172 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
10173
10174 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
10175 (__xpg_sigpause): New function.
10176 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
10177
6ccb3834
UD
101782002-12-07 Ulrich Drepper <drepper@redhat.com>
10179
09efc3ba
UD
10180 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
10181
10182 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
10183 _GI_pthread_cleanup_pop to pthreadP.h.
10184
10185 * ftrylockfile.c: Use _IO_lock_trylock instead of
10186 pthread_mutex_trylock.
10187
10188 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
10189 (CANCEL_RESET): Likewise.
10190 (__pthread_setcanceltype_): Declare.
10191 (__pthread_mutex_lock_internal): Declare.
10192 (__pthread_mutex_unlock_internal): Declare.
10193 (__pthread_once_internal): Declare.
10194 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
10195 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
10196
10197 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
10198 and pthread_mutex_unlock.
10199 * pthread_cond_wait.c: Likewise.
10200 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
10201 * pthread_mutex_unlock.c: Likewise.
10202
10203 * pthread_setcanceltype.c: Add additional alias
10204 __pthread_setcanceltype.
10205
10206 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
10207 * sem_open.c (sem_open): Likewise.
10208 Use __libc_open, __libc_write, and __libc_close instead of
10209 open, write, and close respectively.
10210
10211 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
10212 Rewrite as statement expression since it must return a value.
10213
10214 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
10215 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
10216 __pthread_kill.
10217
10218 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
10219 alias __pthread_once_internal.
10220
6ccb3834
UD
10221 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
10222
d3c9f895
UD
102232002-12-06 Ulrich Drepper <drepper@redhat.com>
10224
4614167a
UD
10225 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
10226 * tst-stdio1.c: New file.
10227 * tst-stdio2.c: New file.
10228
a4548cea
UD
10229 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
10230
d3c9f895
UD
10231 * Makefile (tests): Comment out tst-locale2 for now.
10232 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
10233
10234 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
10235 -D_IO_MTSAFE_IO.
10236 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
10237 Use _IO_lock_init instead of explicit assignment.
10238
10239 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
10240 Define __libc_lock_* and __libc_lock_recursive macros with
10241 lowlevellock macros, not pthread mutexes.
10242
10243 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
10244 of pthread_mutex_lock.
10245 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
10246 instead of pthread_mutex_unlock.
10247
fde89ad0
RM
102482002-12-06 Roland McGrath <roland@redhat.com>
10249
10250 * allocatestack.c (__stack_user): Use uninitialized defn.
10251 * init.c (__pthread_initialize_minimal): Initialize it here.
10252
11767d47
RM
102532002-12-05 Roland McGrath <roland@redhat.com>
10254
fde89ad0
RM
10255 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
10256 string.
10257 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
10258
11767d47
RM
10259 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
10260 missing & here too.
10261
440d8bc2
UD
102622002-12-05 Ulrich Drepper <drepper@redhat.com>
10263
10264 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10265 lowlevellock.
10266 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
10267 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
10268 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
10269 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
10270 for __libc_lock_* macros.
10271 * Makefile (routines): Add libc-lowlevellock.
10272
102732002-10-09 Roland McGrath <roland@redhat.com>
10274
10275 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
10276 Under [__PIC__], call the function via the pointer fetched for
10277 comparison rather than a call by name that uses the PLT.
10278 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
10279 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
10280 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
10281 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
10282 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
10283
d5ed0118
RM
102842002-12-04 Roland McGrath <roland@redhat.com>
10285
10286 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
10287
10288 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
10289 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
10290
10291 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
10292
eaa4099f
UD
102932002-12-04 Ulrich Drepper <drepper@redhat.com>
10294
10295 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
10296 a completely opaque, non-integer type.
10297 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
10298
33b5d0cc
UD
102992002-12-05 Jakub Jelinek <jakub@redhat.com>
10300
10301 * sysdeps/i386/tls.h: Include stdlib.h.
10302 * sysdeps/x86_64/tls.h: Likewise.
10303
7a5cdb30
UD
103042002-12-04 Ulrich Drepper <drepper@redhat.com>
10305
c4a6d859
UD
10306 * Makefile (tests): Add tst-locale2.
10307 (tests-static): Likewise.
10308 * tst-locale2.c: New file.
10309
7a5cdb30
UD
10310 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
10311 volatile and add memory clobbers to lock operations.
10312
d82d5d12
UD
103132002-12-03 Ulrich Drepper <drepper@redhat.com>
10314
69cae3cf
UD
10315 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
10316 * sysdeps/i386/i486/bits/atomic.h: New file.
10317 * sysdeps/i386/i586/bits/atomic.h: New file.
10318 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
10319 include i486 version.
10320 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
10321 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 10322 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 10323
e4044c01
UD
10324 * allocatestack.c (get_cached_stack): Don't crash if we first
10325 found a stack with a larger size then needed.
10326 Reported by Hui Huang <hui.huang@sun.com>.
10327
d82d5d12
UD
10328 * Makefile (tests): Add tst-sysconf.
10329 * tst-sysconf.c: New file.
10330
10331 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
10332 PTHREAD_THREADS_MAX.
10333
fa9a4ff0
RM
103342002-12-02 Roland McGrath <roland@redhat.com>
10335
10336 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
10337 Declare using hidden_proto instead of attribute_hidden, so there are
10338 non-.hidden static symbols for gdb to find.
10339 (__pthread_keys): Likewise.
10340 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
10341 * allocatestack.c (__stack_user): Likewise.
10342 * pthread_create.c (__pthread_keys): Likewise.
10343 (__nptl_threads_events, __nptl_last_event): Make these static instead
10344 of hidden.
10345 * pthread_key_create.c (__pthread_pthread_keys_max,
10346 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
10347
91949a33
UD
103482002-12-02 Ulrich Drepper <drepper@redhat.com>
10349
c22b52fa
UD
10350 * Makefile (tests): Add tst-locale1. If buid-static is yes link
10351 statically.
10352 * tst-locale1.c: New file.
10353
beb6aa41
UD
10354 * pthread_cond_timedwait.c: Include <stdlib.h>.
10355
91949a33
UD
10356 * Makefile (tests): Add tst-fork2 and tst-fork3.
10357 * tst-fork2.c: New file.
10358 * tst-fork3.c: New file.
10359
654dff90
UD
103602002-11-28 Ulrich Drepper <drepper@redhat.com>
10361
cb0e76b4
UD
10362 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
10363
10364 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
10365 require it to 200112L.
10366
10367 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
10368 instruction only if HAVE_CMOV is defined.
10369 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
10370
975aa229
UD
10371 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
10372
654dff90
UD
10373 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
10374
10375 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
10376
10377 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
10378
a3931336
UD
103792002-11-27 Ulrich Drepper <drepper@redhat.com>
10380
c10c099c
UD
10381 * sysdeps/x86_64/bits/atomic.h: New file.
10382
10383 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10384 16-bit operations.
10385
dca99d27
UD
10386 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10387 possible since gettid cannot fail.
10388
f78deea6
UD
10389 * sysdeps/x86_64/pthreaddef.h: New file.
10390
10391 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10392
10393 * sysdeps/x86_64/pthread_spin_init.c: New file.
10394 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10395 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10396 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10397
10398 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10399 Add missing lock prefix. Minute optimization.
10400
10401 * tst-spin2.c (main): Also check successful trylock call.
10402
10403 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10404 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10405
10406 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10407 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10408
10409 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10410 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10411 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10412
10413 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10414 value in case of an error.
10415
a3931336
UD
10416 * sysdeps/x86_64/tls.h: New file.
10417
76a50749
UD
104182002-11-26 Ulrich Drepper <drepper@redhat.com>
10419
117c452c
UD
10420 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10421 takes the array member name and the index as parameters.
10422 (THREAD_SETMEM_NC): Likewise.
10423 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10424 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10425 interfaces.
10426
10427 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10428 to decide which code to use.
10429 (THREAD_SETMEM_NC): Likewise.
10430
76a50749
UD
10431 * allocatestack.c (queue_stack): Don't remove stack from list here.
10432 Do it in the caller. Correct condition to prematurely terminate
10433 loop to free stacks.
10434 (__deallocate_stack): Remove stack from list here.
10435
104362002-11-26 Ulrich Drepper <drepper@redhat.com>
10437
10438 * Makefile (tests): Add tst-stack1.
10439 * tst-stack1.c: New file.
10440
10441 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10442 provided stack.
10443
10444 * pthread_attr_getstack.c: Return bottom of the thread area.
10445
104462002-11-25 Ulrich Drepper <drepper@redhat.com>
10447
10448 * Makefile (libpthread-routines): Add pt-allocrtsig and
10449 pthread_kill_other_threads.
10450 * pt-allocrtsig.c: New file.
10451 * pthread_kill_other_threads.c: New file.
10452 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10453 all three functions.
10454 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10455 allocrtsig.
10456 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10457 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10458 and __libc_allocate_rtsig_private.
10459 * Versions (libpthread): Export pthread_kill_other_threads_np,
10460 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10461
104622002-11-24 Ulrich Drepper <drepper@redhat.com>
10463
10464 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10465 the end of the stack. Adjust computations.
10466 When mprotect call fails dequeue stack and free it.
10467 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10468 attribute.
10469 * pthread_getattr_np.c: Likewise.
10470
10471 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10472 surprises.
10473
104742002-11-23 Ulrich Drepper <drepper@redhat.com>
10475
10476 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10477 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10478
104792002-11-22 Ulrich Drepper <drepper@redhat.com>
10480
10481 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10482 * pthread_setspecific.c: Likewise.
10483
104842002-11-21 Ulrich Drepper <drepper@redhat.com>
10485
10486 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10487 definitions. Get them from the official place.
10488 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10489
10490 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10491 Use new CLONE_ flags in clone() calls.
10492
10493 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10494 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10495
10496 * Versions: Add pthread_* functions for libc.
10497 * forward.c: New file.
10498
10499 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10500 errno-loc.
10501 * herrno.c: New file.
10502 * res.c: New file.
10503
10504 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10505 sem_trywait, and sem_timedwait. Add herrno and res.
10506 * sem_init.c: Don't initialize lock and waiters members.
10507 * sem_open.c: Likewise.
10508 * sem_post.c: Removed.
10509 * sem_wait.c: Removed.
10510 * sem_trywait.c: Removed.
10511 * sem_timedwait.c: Removed.
10512 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10513 Includes full implementations of sem_post, sem_wait, sem_trywait,
10514 and sem_timedwait.
10515 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10516 for new implementation.
10517 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10518 and waiters fields.
10519
10520 * tst-sem3.c: Improve error message.
10521 * tst-signal3.c: Likewise.
10522
10523 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10524 to tell the kernel about the termination futex and to initialize tid
10525 member. Don't initialize main_thread.
10526 * descr.h (struct pthread): Remove main_thread member.
10527 * cancelllation.c (__do_cancel): Remove code handling main thread.
10528 The main thread is not special anymore.
10529
10530 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10531 size of the stacks to stack_cache_actsize.
10532
10533 * pt-readv.c: Add missing "defined".
10534 * pt-sigwait.c: Likewise.
10535 * pt-writev.c: Likewise.
10536
105372002-11-09 Ulrich Drepper <drepper@redhat.com>
10538
10539 * Versions: Export __connect from libpthread.
10540 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10541
10542 * Makefile (libpthread-routines): Add pt-raise.
10543 * sysdeps/unix/sysv/linux/raise.c: New file.
10544 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10545 * sysdeps/generic/pt-raise.c: New file.
10546
10547 * pthread_cond_init.c: Initialize all data elements of the condvar
10548 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10549
10550 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10551 * pthread_create.c: Likewise.
10552
10553 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10554 * tst-key1.c: New file.
10555 * tst-key2.c: New file.
10556 * tst-key3.c: New file.
10557
10558 * Versions: Export pthread_detach for version GLIBC_2.0.
10559 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10560
105612002-11-08 Ulrich Drepper <drepper@redhat.com>
10562
10563 * pthread_key_create.c: Terminate search after an unused key was found.
10564 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10565
10566 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10567 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10568
105692002-10-10 Ulrich Drepper <drepper@redhat.com>
10570
10571 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10572 dynamic lookup for errno in PIC.
10573
10574 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10575 release the stack lock as soon as possible.
10576 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10577 the static TLS block.
10578 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10579
10580 * cancellation.c: Renamed from cancelation.c.
10581 * Makefile: Adjust accordingly.
10582 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10583 * cleanup_defer.c: Use CANCELLATION_P.
10584 * pthread_testcancel.c: Likewise.
10585 * descr.h: Fix spelling in comments.
10586 * init.c: Likewise.
10587 * pthread_getattr_np.c: Likewise.
10588 * pthread_getschedparam.c: Likewise.
10589 * pthread_setschedparam.c: Likewise.
10590 * Versions: Likewise.
10591
10592 * pt-pselect.c: New file.
10593 * Makefile (libpthread-routines): Add pt-pselect.
10594 * Versions: Add pselect.
10595
10596 * tst-cancel4.c: New file.
10597 * Makefile (tests): Add tst-cancel4.
10598
105992002-10-09 Ulrich Drepper <drepper@redhat.com>
10600
10601 * pthread_mutex_lock.c: Always record lock ownership.
10602 * pthread_mutex_timedlock.c: Likewise.
10603 * pthread_mutex_trylock.c: Likewise.
10604
10605 * pt-readv.c: New file.
10606 * pt-writev.c: New file.
10607 * pt-creat.c: New file.
10608 * pt-msgrcv.c: New file.
10609 * pt-msgsnd.c: New file.
10610 * pt-poll.c: New file.
10611 * pt-select.c: New file.
10612 * pt-sigpause.c: New file.
10613 * pt-sigsuspend.c: New file.
10614 * pt-sigwait.c: New file.
10615 * pt-sigwaitinfo.c: New file.
10616 * pt-waitid.c: New file.
10617 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10618 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10619 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10620 * Versions: Add all the new functions.
10621
10622 * tst-exit1.c: New file.
10623 * Makefile (tests): Add tst-exit1.
10624
10625 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10626
106272002-10-08 Ulrich Drepper <drepper@redhat.com>
10628
10629 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10630
10631 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10632 call. pthread_join is an official cancellation point.
10633 * pthread_timedjoin.c: Likewise.
10634
10635 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10636 and the condvar's mutex are retrieved.
10637 * pthread_cond_timedwait.c: Likewise.
10638 Reported by dice@saros.East.Sun.COM.
10639
106402002-10-07 Ulrich Drepper <drepper@redhat.com>
10641
10642 * pthreadP.h: Cut out all type definitions and move them...
10643 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10644 * pthreadP.h: Include <internaltypes.h>.
10645
10646 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10647 performance tweaks.
10648
10649 * sem_trywait.c: Shuffle #includes around to get right order.
10650 * sem_timedwait.c: Likewise.
10651 * sem_post.c: Likewise.
10652 * sem_wait.c: Likewise.
10653
10654 * nptl 0.3 released.
10655
10656 * Makefile (tests): Add tst-signal3.
10657 * tst-signal3.c: New file.
10658
106592002-10-05 Ulrich Drepper <drepper@redhat.com>
10660
10661 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10662 the asms modify the sem object.
10663 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10664
10665 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10666 the actual members.
10667 * pthreadP.h (struct sem): New type. Actual semaphore type.
10668 * semaphoreP.h: Include pthreadP.h.
10669 * sem_getvalue.c: Adjust to sem_t change.
10670 * sem_init.c: Likewise.
10671 * sem_open.c: Likewise.
10672 * sem_post.c: Likewise.
10673 * sem_timedwait.c: Likewise.
10674 * sem_trywait.c: Likewise.
10675 * sem_wait.c: Likewise.
10676
106772002-10-04 Ulrich Drepper <drepper@redhat.com>
10678
10679 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10680 * tst-basic2.c: New file.
10681 * tst-exec1.c: New file.
10682 * tst-exec2.c: New file.
10683 * tst-exec3.c: New file.
10684
10685 * tst-fork1.c: Remove extra */.
10686
10687 * nptl 0.2 released. The API for IA-32 is complete.