]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* io/sys/stat.h: The lstat functions have been mandatory since 2001.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
4c869eb6
UD
12009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2
3 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
4 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
5
cca50323
UD
62009-01-29 Ulrich Drepper <drepper@redhat.com>
7
7f901dd7
UD
8 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
9 pointer variables.
10
cca50323
UD
11 * allocatestack.c (__free_stacks): Renamed from free_stacks.
12 (__free_stack_cache): Removed. Change callers to call __free_stacks.
13 * init.c (nptl_freeres): New function.
14 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
15 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
16 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
17 variable.
18 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
19 load DSO. Assign last.
20 (__unwind_freeres): New function.
21
22 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
23 for better debugging. No need to use stack_list_add here.
24
a7bd183f
UD
252009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
26
27 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
28 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
29 instead of computing relative timeout.
30 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
31 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
32
563ee1cb
UD
332009-01-25 Ulrich Drepper <drepper@redhat.com>
34
35 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
36
f25c7b08
UD
372009-01-08 Ulrich Drepper <drepper@redhat.com>
38
39 * sysdeps/pthread/list.h (list_add): Initialize new element first.
40 (list_add_tail): Removed.
41
3c612057
UD
422009-01-04 Ulrich Drepper <drepper@redhat.com>
43
44 * init.c (__pthread_initialize_minimal_internal): Optimize test
45 FUTEX_CLOCK_REALTIME a bit.
46
19834b42
UD
472009-01-03 Ulrich Drepper <drepper@redhat.com>
48
49 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
50 only passing five parameters to FUTEX_WAIT_BITSET call.
51
52 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 53 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
54 instead of computing relative timeout.
55
7dd650d7
UD
562009-01-02 Ulrich Drepper <drepper@redhat.com>
57
cbd8aeb8
UD
58 * init.c (__pthread_initialize_minimal_internal): Check for
59 FUTEX_CLOCK_REALTIME flag.
60 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 61 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
62 relative timeout.
63
7dd650d7
UD
64 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
65 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
66 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
67 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
68 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
69 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
70
217d45cd
UD
712008-12-09 Ulrich Drepper <drepper@redhat.com>
72
73 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
74 loop body instead of ; to avoid gcc warnings.
75 (pthread_cleanup_pop_restore_np): Likewise.
76 Patch by Caolán McNamara <caolanm@redhat.com>.
77
6de79a49
UD
782008-12-09 Jakub Jelinek <jakub@redhat.com>
79
80 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
81 fast path here, for robust/PI/PP mutexes call
82 __pthread_mutex_lock_full. Don't use switch, instead use a series
83 of ifs according to their probability.
84 (__pthread_mutex_lock_full): New function.
85 * pthread_mutex_unlock.c: Include assert.h.
86 (__pthread_mutex_unlock_usercnt): Handle only the
87 fast path here, for robust/PI/PP mutexes call
88 __pthread_mutex_unlock_full. Don't use switch, instead use a series
89 of ifs according to their probability.
90 (__pthread_mutex_unlock_full): New function.
91 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
92 (__pthread_mutex_lock_full): Define.
93
71bb2639
UD
942008-12-08 Ulrich Drepper <drepper@redhat.com>
95
96 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
97 implementation. Add necessary padding and.
98 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
99 words.
100
247626f3
UD
1012008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
102
103 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
104 and FUTEX_WAKE_BITSET.
105
da5ac135
UD
1062008-12-02 Ulrich Drepper <drepper@redhat.com>
107
108 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
109 and FUTEX_WAKE_BITSET.
110 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
111 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
112 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
113 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
114
c0439b95
RM
1152008-11-25 Roland McGrath <roland@redhat.com>
116
117 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
118 Subdirectories moved to ports repository as
119 sysdeps/.../nptl subdirectories.
120
0e54a725
UD
1212008-11-12 Jakub Jelinek <jakub@redhat.com>
122
123 [BZ #7008]
124 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
125 of old value.
126 * pthread_cond_init.c (__pthread_cond_init): Fix
127 cond->__data.__nwaiters initialization.
128 * Makefile (tests): Add tst-cond23.
129 * tst-cond23.c: New test.
130
4b23f9bd
JJ
1312008-11-07 Jakub Jelinek <jakub@redhat.com>
132
133 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
134 arguments.
135 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
136 arguments.
137
efac1fce
UD
1382008-11-01 Ulrich Drepper <drepper@redhat.com>
139
140 [BZ #6955]
141 * pthread_mutex_lock.c: Add support for private PI mutexes.
142 * pthread_mutex_timedlock.c: Likewise.
143 * pthread_mutex_trylock.c: Likewise.
144 * pthread_mutex_unlock.c: Likewise.
145 Patch mostly by Ben Jackson <ben@ben.com>.
146
bf837fa3
UD
1472008-10-31 Ulrich Drepper <drepper@redhat.com>
148
149 [BZ #6843]
150 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
151 Increase stack size for helper thread.
152
208bc836
UD
1532008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
154
155 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
156 assembly with a clobber list for access registers a0 and a1.
157
17f8b4a9
UD
1582008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
159
160 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
161 to force runp->refcntr to be read from memory.
162
2458c748
AJ
1632008-09-08 Richard Guenther <rguenther@suse.de>
164
165 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
166 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
167 lll_timedlock, lll_robust_timedlock, lll_unlock,
168 lll_robust_unlock): Promote private to int.
169
965805e8
UD
1702008-08-15 Ulrich Drepper <drepper@redhat.com>
171
172 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
173 ARCH_RETRY_MMAP definitions.
174 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
175 Define MAP_STACK when not defined.
176 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
177 handling of ARCH_RETRY_MMAP.
178
bd7f4857
UD
1792008-07-30 Ulrich Drepper <drepper@redhat.com>
180
181 * tst-align2.c (f): Print message that f is reached.
182
619cc2f6
UD
1832008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
184
185 [BZ #6740]
186 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
187 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
188
8ccf22f9
UD
1892008-07-25 Ulrich Drepper <drepper@redhat.com>
190
191 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
192 SOCK_CLOEXEC if possible.
193
1942008-05-29 Ulrich Drepper <drepper@redhat.com>
195
196 * Makefile (tests): Add tst-rwlock2a.
197 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
198 * tst-rwlock2a.c: New file.
199
5a337776
UD
2002008-06-12 Ulrich Drepper <drepper@redhat.com>
201
202 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
203
e4d6e7f5
UD
2042008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
205
206 * sysdeps/pthread/pthread.h: Fix typo in comment.
207
d6296e88
UD
2082008-05-28 Ulrich Drepper <drepper@redhat.com>
209
210 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
211 of CPU set to the kernel.
212
62605cbf
UD
2132008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
214
215 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
216 cfi directives.
217 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
218 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
219 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
220 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
221 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
222 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
223
2242008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
225
226 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
227 cfi directives.
228 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
229 Likewise.
230 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
231 Likewise.
232 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
233 Likewise.
234
4b2c85c0
UD
2352008-05-26 Ulrich Drepper <drepper@redhat.com>
236
237 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
238
b72f5692 2392008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
240
241 David S. Miller <davem@davemloft.net>
3b15b590 242
b72f5692 243 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 244
cdffaaa6
UD
2452008-05-10 Ulrich Drepper <drepper@redhat.com>
246
247 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
248 __pshared correctly.
249 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
250 Likewise.
251 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
252 Likewise.
253 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
254 Likewise.
255 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
256 Likewise.
257 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
258
2313c48f
JJ
2592008-04-14 David S. Miller <davem@davemloft.net>
260
261 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
262 (__old_sem_wait): Fix argument to lll_futex_wait().
263
2f611ada
UD
2642007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
265
266 * pthread_create.c: Require pthread_mutex_trylock and
267 pthread_key_delete for libgcc.
268
d24be489
JJ
2692008-04-08 Jakub Jelinek <jakub@redhat.com>
270
271 [BZ #6020]
272 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
273 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
274 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
275
f96853be
UD
2762008-03-27 Ulrich Drepper <drepper@redhat.com>
277
8ccf22f9 278 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
279 <linux/limits.h> has defined it.
280 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
281 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
282 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
283 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
284
354b7527
JJ
2852008-03-18 Jakub Jelinek <jakub@redhat.com>
286
287 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
288 of ASSEMBLER.
289 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
290 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
291
702ae329
UD
2922008-03-14 Ulrich Drepper <drepper@redhat.com>
293
294 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
295 HAVE_DL_DISCOVER_OSVERSION.
296 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
297 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
298
443db178
UD
2992008-03-07 Ulrich Drepper <drepper@redhat.com>
300
301 [BZ #5778]
302 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
303 _POSIX_CHOWN_RESTRICTED value to zero.
304
67fbfa5c
RM
3052008-01-31 Roland McGrath <roland@redhat.com>
306
307 * Makefile (omit-deps): Variable removed.
308
dd3113da
UD
3092008-01-30 Ulrich Drepper <drepper@redhat.com>
310
311 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
312 unnecessary addr32 prefix.
313
16cd816f
RM
3142008-01-29 Roland McGrath <roland@redhat.com>
315
316 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
317
b4b166af
UD
3182008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
319
320 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
321
3222008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
323
324 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
325 a scratch register.
326 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
327 (__lll_lock_wait_private): Fix typo.
328 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
329 (pthread_barrier_wait): Likewise. Adjust XADD use.
330 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
331 Adjust XADD use.
332 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
333 (pthread_rwlock_timedrdlock): Return correct return value.
334 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 335 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 336
eaf95a26
UD
3372008-01-15 Ulrich Drepper <drepper@redhat.com>
338
339 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
340 thread returns the program exits with an error code.
341
ab355d9a
UD
3422008-01-10 Ulrich Drepper <drepper@redhat.com>
343
344 * pthread-errnos.sym: Add EOVERFLOW.
345 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
346 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
347 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
348 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
349
b8cca206
UD
3502007-12-14 Ulrich Drepper <drepper@redhat.com>
351
352 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
353 parameter. Passed it as permission to mmap.
354 * allocatestack.c (allocate_stack): Pass prot as second parameter
355 to ARCH_RETRY_MMAP.
356
189dce4f
UD
3572007-12-12 Ulrich Drepper <drepper@redhat.com>
358
3eb0e1c6
UD
359 * tst-basic7.c: Allocate memory for the stack.
360
189dce4f
UD
361 [BZ #5465]
362 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
363 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 364 Patch by Michal Januszewski.
189dce4f 365
26e21e75
UD
3662007-12-07 Ulrich Drepper <drepper@redhat.com>
367
368 [BZ #5455]
369 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
370 Allow label before pthread_cleanup_pop.
371 (pthread_cleanup_pop_restore_np): Likewise.
372
191ec77f
UD
3732007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
374
375 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
376 Store 2 before returning ETIMEDOUT.
377
c012be6f
UD
3782007-11-23 Ulrich Drepper <drepper@redhat.com>
379
380 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
381 Store 2 before returning ETIMEDOUT.
382 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
383 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
384 (__lll_lock_wait_private): Optimize.
385 (__lll_lock_wait): Likewise.
386
77f1e09a
UD
3872007-11-20 Jakub Jelinek <jakub@redhat.com>
388
389 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
390 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
391 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
392
0f7e0ee5
UD
3932007-11-08 Ulrich Drepper <drepper@redhat.com>
394
cbed6a60
UD
395 [BZ #5240]
396 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
397 If we time out, try one last time to lock the futex to avoid
398 losing a wakeup signal.
399 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
400 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
401
0f7e0ee5
UD
402 [BZ #5245]
403 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
404 if necessary.
405
f6ed654c
UD
4062007-11-07 Ulrich Drepper <drepper@redhat.com>
407
408 [BZ #5245]
409 * allocatestack.c (allocate_stack): Change ENOMEM error in case
410 mmap failed to EAGAIN.
411 * Makefile (tests): Add tst-basic7.
412 * tst-basic7.c: New file.
413
b92e3780
UD
4142007-11-05 Ulrich Drepper <drepper@redhat.com>
415
416 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
417 Use __linkin_atfork.
418
94a749f6
UD
4192007-11-03 Mike Frysinger <vapier@gentoo.org>
420
421 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
422 missing line continuations.
423 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
424 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
425
f160a450
UD
4262007-10-28 Ulrich Drepper <drepper@redhat.com>
427
428 [BZ #5220]
429 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
430 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
431 (struct timer): Add next element.
432 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
433 enqueue timer structure into __active_timer_sigev_thread list.
434 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
435 remove timer struct from __active_timer_sigev_thread.
436 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
437 Before using timer structure make sure it is still on the
438 __active_timer_sigev_thread list. Keep lock until done.
439 Define __active_timer_sigev_thread and
440 __active_timer_sigev_thread_lock.
441
94833f11
UD
4422007-10-27 Ulrich Drepper <drepper@redhat.com>
443
444 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
445 Redefine thread_atfork for use of ATFORK_MEM.
446 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
447 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
448 function.
449 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
450 Use atomic operation when removing first element of list.
451
96c06e08
JJ
4522007-10-17 Jakub Jelinek <jakub@redhat.com>
453
454 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
455 routine instead of an alias to __new_sem_post.
456
e807818b
JJ
4572007-10-15 Jakub Jelinek <jakub@redhat.com>
458
459 * init.c (__pthread_initialize_minimal): Initialize word to appease
460 valgrind.
461
59d430c6
UD
4622007-10-10 Jakub Jelinek <jakub@redhat.com>
463
464 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
465 libc.so just clear NAME.
466 (__libc_rwlock_fini): Nop inside of libc.so.
467 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
468 all zeros.
469
221d9d8e
UD
4702007-09-02 Ulrich Drepper <drepper@redhat.com>
471
472 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
473 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
474 unlocking failed.
475 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
476
2a01ce56
UD
4772007-08-21 Ulrich Drepper <drepper@redhat.com>
478
479 [BZ #4938]
480 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
481 reclaimed stack if necessary.
482 * Makefile (tests): Add tst-tsd6.
483 * tst-tsd6.c: New file.
484
c273641b
JJ
4852007-08-21 Jakub Jelinek <jakub@redhat.com>
486
487 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
488 Add private argument.
489
fb84593c
UD
4902007-08-20 Ulrich Drepper <drepper@redhat.com>
491
492 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
493 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
494
3e8d1eab
JJ
4952007-08-16 Jakub Jelinek <jakub@redhat.com>
496
497 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
498 (__lll_robust_timedlock): Pass private as last argument to
499 __lll_robust_timedlock_wait.
500 (__lll_unlock): Fix a pasto.
501
e4720b0e
JJ
5022007-08-15 Jakub Jelinek <jakub@redhat.com>
503
504 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
505 sparc_old_sem): New structs.
506 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
507 (__sem_wait_cleanup): New function.
508 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
509 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
510 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
511 lll_futex_wait.
512 (__old_sem_wait): New function.
513 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
514 nptl/sysdeps/unix/sysv/linux/sparc version.
515 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
516 Likewise.
517 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
518 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
519 (__new_sem_trywait): Use sparc_old_sem structure.
520 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
521 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
522 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
523 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
524 lll_futex_timed_wait.
525 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
526 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
527 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
528 lll_futex_wake.
529 (__old_sem_post): New function.
530 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
531 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
532 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
533 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
534 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
535 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
536
d13f4a43
UD
5372007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
538
539 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
540 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
541 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
542 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
543 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
544 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
545 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
546 Use FUTEX_WAKE_OP.
547 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
548 kernel-features.h and tcb-offsets.h.
549 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
550 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
551 process private.
552 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
553 tcb-offsets.h.
554 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
555 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
556 process private.
557 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
558 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
559 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
560 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
561 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
562 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
563 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
564
702a9414
JJ
5652007-08-14 Jakub Jelinek <jakub@redhat.com>
566
467d1345
JJ
567 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
568 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
569 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
570 lll_futex_timed_wait.
571
702a9414
JJ
572 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
573 __lll_robust_unlock): Rewrite as macros instead of inline functions.
574 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
575 __lll_robust_unlock, __lll_wait_tid): Likewise.
576
22502ea2
UD
5772007-08-13 Jakub Jelinek <jakub@redhat.com>
578
579 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
580 Fix a pasto.
581 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
582 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
583 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
584 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
585 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
586 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
587 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
588 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
589 kernel-features.h.
590 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
591 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
592 process private. Switch DW_CFA_advance_loc1 and some
593 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
594 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
595 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
596 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
597 process private. Switch DW_CFA_advance_loc{1,2} and some
598 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
599 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
600 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
601 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
602 Likewise.
603 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
604 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
605 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
606 Likewise.
607 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
608 (__pthread_cond_broadcast): Compare %r8 instead of
609 dep_mutex-cond_*(%rdi) with $-1.
610 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
611 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
612 of oring.
613
4baf59ad
UD
6142007-08-13 Ulrich Drepper <drepper@redhat.com>
615
616 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
617
9c6f6953
UD
6182007-08-13 Jakub Jelinek <jakub@redhat.com>
619
620 * allocatestack.c: Include kernel-features.h.
621 * pthread_create.c: Likewise.
622 * pthread_mutex_init.c: Likewise.
623 * init.c: Likewise.
624 * pthread_cond_timedwait.c: Likewise.
625 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
626 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
627 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
628 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
629 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
630 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
631 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
632 Likewise.
633 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
634 Likewise.
635 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
636 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
637 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
638 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
639
974a1f0f
UD
6402007-08-12 Jakub Jelinek <jakub@redhat.com>
641
642 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
643 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
644 byte elements. One of them is the new __shared element.
645 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
646 adjust names of other padding elements.
647 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
648 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
649 byte elements. One of them is the new __shared element.
650 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
651 adjust names of other padding elements.
652 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
653 Renamed __pad1 element to __shared, adjust names of other padding
654 elements.
655 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
656 (pthread_rwlock_t): Likewise.
657 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
658 typo.
659
6602007-08-09 Anton Blanchard <anton@samba.org>
661
662 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
663
f47e2626
UD
6642007-08-12 Ulrich Drepper <drepper@redhat.com>
665
666 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
667 <kernel-features.h>.
668 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
669
5bd8a249
UD
6702007-08-11 Ulrich Drepper <drepper@redhat.com>
671
672 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
673 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
674 dealing with robust mutexes.
675 * pthread_mutex_timedlock.c: Likewise.
676 * pthread_mutex_trylock.c: Likewise.
677 * pthread_mutex_unlock.c: Likewise.
678 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
679
6802007-08-06 Jakub Jelinek <jakub@redhat.com>
681
682 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
683 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
684 (PTHREAD_MUTEX_PSHARED): Define.
685 * pthread_mutex_init.c (__pthread_mutex_init): Set
686 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
687 mutexes.
688 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
689 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
690 as second argument to lll_lock.
691 (LLL_MUTEX_TRYLOCK): Take mutex as argument
692 instead of its __data.__lock field.
693 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
694 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
695 to lll_robust_lock.
696 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
697 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
698 instead of mutex->__data.__kind directly, pass
699 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
700 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
701 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
702 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
703 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
704 to lll_timedlock, lll_robust_timedlock, lll_unlock and
705 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
706 of mutex->__data.__kind directly.
707 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
708 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
709 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
710 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
711 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
712 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
713 and lll_futex_wake.
714 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
715 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
716 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
717 directly.
718 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
719 Take mutex as argument instead of its __data.__lock field, pass
720 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
721 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
722 __data.__lock field.
723 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
724 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
725 to lll_robust_cond_lock.
726 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
727 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
728 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
729 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
730 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
731 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
732 lll_futex_wait.
733 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
734 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
735 lll_futex_wake.
736 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
737 pshared variable, pass it to lll_lock, lll_unlock,
738 lll_futex_timedwait and lll_futex_wake.
739 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
740 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
741 and lll_futex_wake.
742 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
743 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
744 macro.
745 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
746 lll_futex_wake_unlock): Likewise.
747 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
748 Likewise.
749 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
750 lll_futex_wake_unlock): Likewise.
751 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
752 Likewise.
753 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
754 lll_futex_wake_unlock): Likewise.
755 (lll_futex_wake): Fix a typo.
756 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
757 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
758 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
759 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
760 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
761 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
762 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
763 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
764 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
765 (__pthread_cond_timedwait): Likewise.
766 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
767 (__condvar_cleanup, __pthread_cond_wait): Likewise.
768
0470fa46
JJ
7692007-08-05 Jakub Jelinek <jakub@redhat.com>
770
771 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
772 Don't use CGOTSETUP and CGOTRESTORE macros.
773 (CGOTSETUP, CGOTRESTORE): Remove.
774 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
775 @local symbol.
776
64f6281c
UD
7772007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
778
779 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
780 definitions for private futexes.
781 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
782 kernel-features.h and lowlevellock.h. Use private futexes if
783 they are available.
784 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
785 (__lll_mutex_lock_wait): Rename to
786 (__lll_lock_wait): ... this. Don't compile in for libc.so.
787 (__lll_mutex_timedlock_wait): Rename to ...
788 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
789 Don't compile in for libc.so.
790 (__lll_mutex_unlock_wake): Rename to ...
791 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
792 (__lll_timedwait_tid): Use __NR_gettimeofday.
793 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
794 the header from assembler. Renamed all lll_mutex_* resp.
795 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
796 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
797 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
798 Define.
799 (__lll_lock_wait_private): Add prototype.
800 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
801 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
802 __lll_unlock_wake): Likewise.
803 (lll_lock): Add private argument. Call __lll_lock_wait_private
804 if private is constant LLL_PRIVATE.
805 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
806 lll_timedlock, lll_robust_timedlock): Add private argument.
807 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
808 if private is constant LLL_PRIVATE.
809 (lll_robust_unlock, lll_robust_dead): Add private argument.
810 (lll_lock_t): Remove.
811 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
812 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
813 lll_cond_wake, lll_cond_broadcast): Remove.
814 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
815 kernel-features.h and lowlevellock.h.
816 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
817 (LOAD_FUTEX_WAIT): Define.
818 (__lll_robust_mutex_lock_wait): Rename to ...
819 (__lll_robust_lock_wait): ... this. Add private argument.
820 Use LOAD_FUTEX_WAIT macro.
821 (__lll_robust_mutex_timedlock_wait): Rename to ...
822 (__lll_robust_timedlock_wait): ... this. Add private argument.
823 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
824 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
825 lowlevellock.h.
826 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
827 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
828 __lll_mutex_{lock,unlock}_*.
829 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
830 lowlevellock.h and pthread-errnos.h.
831 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
832 FUTEX_CMP_REQUEUE, EINVAL): Remove.
833 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
834 __lll_mutex_{lock,unlock}_*.
835 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
836 lowlevellock.h and pthread-errnos.h.
837 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
838 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
839 __lll_mutex_{lock,unlock}_*.
840 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
841 lowlevellock.h.
842 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
843 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
844 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
845 (__condvar_tw_cleanup): Likewise.
846 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
847 lowlevellock.h.
848 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
849 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
850 __lll_mutex_{lock,unlock}_*.
851 ( __condvar_w_cleanup): Likewise.
852 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
853 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
854 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
855 lowlevellock.h.
856 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
857 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
858 __lll_mutex_{lock,unlock}_*.
859 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
860 lowlevellock.h.
861 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
862 FUTEX_PRIVATE_FLAG): Remove.
863 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
864 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
865 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
866 lowlevellock.h.
867 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
868 FUTEX_PRIVATE_FLAG): Remove.
869 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
870 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
871 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
872 lowlevellock.h.
873 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
874 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
875 __lll_mutex_{lock,unlock}_*.
876 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
877 lowlevellock.h.
878 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
879 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
880 __lll_mutex_{lock,unlock}_*.
881 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
882 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
883 (__new_sem_post): Use standard initial exec code sequences.
884 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
885 lowlevellock.h.
886 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
887 FUTEX_PRIVATE_FLAG): Remove.
888 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
889 exec code sequences.
890 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
891 (__new_sem_trywait): Use standard initial exec code sequences.
892 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
893 (__new_sem_wait): Use standard initial exec code sequences.
894
e51deae7
UD
8952007-07-31 Anton Blanchard <anton@samba.org>
896
897 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
898 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
899 atomic_full_barrier.
900
9012007-07-31 Jakub Jelinek <jakub@redhat.com>
902
903 * allocatestack.c (stack_cache_lock): Change type to int.
904 (get_cached_stack, allocate_stack, __deallocate_stack,
905 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
906 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
907 as second argument to lll_lock and lll_unlock macros on
908 stack_cache_lock.
909 * pthread_create.c (__find_in_stack_list): Likewise.
910 (start_thread): Similarly with pd->lock. Use lll_robust_dead
911 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
912 as second argument.
913 * descr.h (struct pthread): Change lock and setxid_futex field
914 type to int.
915 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
916 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
917 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
918 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
919 Likewise.
920 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
921 * pthread_cond_init.c (__pthread_cond_init): Likewise.
922 * pthreadP.h (__attr_list_lock): Change type to int.
923 * pthread_attr_init.c (__attr_list_lock): Likewise.
924 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
925 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
926 lll_{,un}lock.
927 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
928 also for lll_futex_{wake,wait}.
929 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
930 a pointer to const.
931 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
932 LLL_SHARED as second argument to lll_{,un}lock.
933 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
934 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
935 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
936 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
937 Likewise.
938 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
939 as second argument to lll_{,un}lock macros on pd->lock.
940 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
941 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
942 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
943 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
944 Likewise.
945 * sysdeps/pthread/createthread.c (do_clone, create_thread):
946 Likewise.
947 * pthread_once.c (once_lock): Change type to int.
948 (__pthread_once): Pass LLL_PRIVATE as second argument to
949 lll_{,un}lock macros on once_lock.
950 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
951 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
952 rwlock->__data.__shared as second argument to them and similarly
953 for lll_futex_w*.
954 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
955 Likewise.
956 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
957 Likewise.
958 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
959 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
960 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
961 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
962 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
963 to lll_{,un}lock macros on __sem_mappings_lock.
964 * sem_open.c (check_add_mapping): Likewise.
965 (__sem_mappings_lock): Change type to int.
966 * semaphoreP.h (__sem_mappings_lock): Likewise.
967 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
968 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
969 instead of lll_*mutex_*, pass LLL_SHARED as last
970 argument.
971 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
972 pass LLL_SHARED as last argument.
973 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
974 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
975 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
976 pass LLL_SHARED as last argument.
977 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
978 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
979 LLL_SHARED as last argument.
980 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
981 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
982 Similarly.
983 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
984 __libc_lock_lock_recursive, __libc_lock_unlock,
985 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
986 argument to lll_{,un}lock.
987 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
988 _IO_lock_unlock): Likewise.
989 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
990 compound literal.
991 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
992 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
993 __fork_lock.
994 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
995 free_mem): Likewise.
996 (__fork_lock): Change type to int.
997 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
998 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
999 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
1000 lll_futex_wake.
1001 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
1002 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
1003 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
1004 New function.
1005 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
1006 pass it through to lll_futex_*wait, only compile in when
1007 IS_IN_libpthread.
1008 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1009 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
1010 argument and pass it through to lll_futex_*wait.
1011 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
1012 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
1013 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
1014 inline functions to __lll_* resp. __lll_robust_*.
1015 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
1016 (lll_mutex_dead): Add private argument.
1017 (__lll_lock_wait_private): New prototype.
1018 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
1019 __lll_robust_lock_timedwait): Add private argument to prototypes.
1020 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
1021 call __lll_lock_wait_private, otherwise pass private to
1022 __lll_lock_wait.
1023 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
1024 __lll_robust_timedlock): Add private argument, pass it to
1025 __lll_*wait functions.
1026 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
1027 call __lll_unlock_wake_private, otherwise pass private to
1028 __lll_unlock_wake.
1029 (__lll_robust_unlock): Add private argument, pass it to
1030 __lll_robust_unlock_wake.
1031 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
1032 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
1033 argument, pass it through to __lll_* inline function.
1034 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
1035 (lll_lock_t): Remove.
1036 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1037 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1038 lll_cond_wake, lll_cond_broadcast): Remove.
1039 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1040 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1041 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1042 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1043 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
1044 the header from assembler. Renamed all lll_mutex_* resp.
1045 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1046 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
1047 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
1048 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
1049 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
1050 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
1051 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
1052 Remove prototype.
1053 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
1054 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
1055 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
1056 (lll_trylock): Likewise, use __lll_trylock_asm, pass
1057 MULTIPLE_THREADS_OFFSET as another asm operand.
1058 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
1059 MULTIPLE_THREADS_OFFSET as last asm operand, call
1060 __lll_lock_wait_private if private is constant LLL_PRIVATE,
1061 otherwise pass private as another argument to __lll_lock_wait.
1062 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1063 lll_timedlock, lll_robust_timedlock): Add private argument, pass
1064 private as another argument to __lll_*lock_wait call.
1065 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
1066 MULTIPLE_THREADS_OFFSET as another asm operand, call
1067 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
1068 otherwise pass private as another argument to __lll_unlock_wake.
1069 (lll_robust_unlock): Add private argument, pass private as another
1070 argument to __lll_unlock_wake.
1071 (lll_robust_dead): Add private argument, use __lll_private_flag
1072 macro.
1073 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
1074 LLL_MUTEX_LOCK_INITIALIZER.
1075 (lll_lock_t): Remove.
1076 (LLL_LOCK_INITIALIZER_WAITERS): Define.
1077 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1078 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1079 lll_cond_wake, lll_cond_broadcast): Remove.
1080 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1081 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
1082 2007-05-2{3,9} changes.
1083 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
1084 kernel-features.h and lowlevellock.h.
1085 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1086 (LOAD_FUTEX_WAIT): Rewritten.
1087 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1088 define.
1089 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1090 (__lll_mutex_lock_wait): Rename to ...
1091 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
1092 %ecx, %ecx is now private argument. Don't compile in for libc.so.
1093 (__lll_mutex_timedlock_wait): Rename to ...
1094 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
1095 contains private argument. Don't compile in for libc.so.
1096 (__lll_mutex_unlock_wake): Rename to ...
1097 (__lll_unlock_wake): ... this. %ecx contains private argument.
1098 Don't compile in for libc.so.
1099 (__lll_timedwait_tid): Use __NR_gettimeofday.
1100 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
1101 kernel-features.h and lowlevellock.h.
1102 (LOAD_FUTEX_WAIT): Define.
1103 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1104 define.
1105 (__lll_robust_mutex_lock_wait): Rename to ...
1106 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
1107 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
1108 macro.
1109 (__lll_robust_mutex_timedlock_wait): Rename to ...
1110 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
1111 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
1112 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
1113 lowlevellock.h.
1114 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1115 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1116 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
1117 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
1118 to __lll_lock_wait in %edx.
1119 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1120 Include lowlevellock.h and pthread-errnos.h.
1121 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1122 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1123 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
1124 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1125 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1126 __lll_unlock_wake.
1127 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1128 Include lowlevellock.h and pthread-errnos.h.
1129 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1130 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1131 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
1132 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1133 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1134 __lll_unlock_wake.
1135 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1136 Include lowlevellock.h.
1137 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1138 Don't define.
1139 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
1140 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1141 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1142 __lll_unlock_wake. Use __NR_gettimeofday.
1143 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1144 Include lowlevellock.h.
1145 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1146 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
1147 to __lll_*, pass cond_lock address in %edx rather than %ecx to
1148 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
1149 and __lll_unlock_wake.
1150 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1151 Include lowlevellock.h.
1152 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1153 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
1154 MUTEX(%ebx) address in %edx rather than %ecx to
1155 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1156 and __lll_unlock_wake. Move return value from %ecx to %edx
1157 register.
1158 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1159 Include lowlevellock.h.
1160 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1161 Don't define.
1162 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1163 MUTEX(%ebp) address in %edx rather than %ecx to
1164 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1165 and __lll_unlock_wake. Move return value from %ecx to %edx
1166 register. Use __NR_gettimeofday.
1167 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1168 Include lowlevellock.h.
1169 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1170 Don't define.
1171 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1172 MUTEX(%ebp) address in %edx rather than %ecx to
1173 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1174 and __lll_unlock_wake. Move return value from %ecx to %edx
1175 register. Use __NR_gettimeofday.
1176 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1177 Include lowlevellock.h.
1178 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1179 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
1180 MUTEX(%edi) address in %edx rather than %ecx to
1181 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
1182 and __lll_unlock_wake.
1183 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1184 Include lowlevellock.h.
1185 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1186 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1187 MUTEX(%ebx) address in %edx rather than %ecx to
1188 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1189 and __lll_unlock_wake. Move return value from %ecx to %edx
1190 register.
1191 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
1192 lowlevellock.h.
1193 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1194 define.
1195 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
1196 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1197 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
1198 lowlevellock.h.
1199 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
1200 (sem_timedwait): Use __NR_gettimeofday.
1201 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
1202 lowlevellock.h.
1203 (LOCK): Don't define.
1204 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
1205 lowlevellock.h.
1206 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1207 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
1208 are waiters.
1209 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
1210 2007-05-2{3,9} changes.
1211 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
1212 kernel-features.h and lowlevellock.h.
1213 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1214 (LOAD_FUTEX_WAIT): Rewritten.
1215 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1216 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1217 (__lll_mutex_lock_wait): Rename to ...
1218 (__lll_lock_wait): ... this. %esi is now private argument.
1219 Don't compile in for libc.so.
1220 (__lll_mutex_timedlock_wait): Rename to ...
1221 (__lll_timedlock_wait): ... this. %esi contains private argument.
1222 Don't compile in for libc.so.
1223 (__lll_mutex_unlock_wake): Rename to ...
1224 (__lll_unlock_wake): ... this. %esi contains private argument.
1225 Don't compile in for libc.so.
1226 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
1227 kernel-features.h and lowlevellock.h.
1228 (LOAD_FUTEX_WAIT): Define.
1229 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1230 (__lll_robust_mutex_lock_wait): Rename to ...
1231 (__lll_robust_lock_wait): ... this. %esi argument contains private.
1232 Use LOAD_FUTEX_WAIT macro.
1233 (__lll_robust_mutex_timedlock_wait): Rename to ...
1234 (__lll_robust_timedlock_wait): ... this. %esi argument contains
1235 private, use LOAD_FUTEX_WAIT macro.
1236 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
1237 lowlevellock.h.
1238 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1239 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1240 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
1241 __lll_lock_wait and __lll_unlock_wake.
1242 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
1243 Include lowlevellock.h and pthread-errnos.h.
1244 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1245 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1246 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
1247 pass LLL_SHARED in %esi to both __lll_lock_wait and
1248 __lll_unlock_wake.
1249 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
1250 Include lowlevellock.h and pthread-errnos.h.
1251 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1252 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1253 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
1254 pass LLL_SHARED in %esi to both __lll_lock_wait and
1255 __lll_unlock_wake.
1256 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
1257 Include lowlevellock.h.
1258 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1259 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
1260 pass LLL_SHARED in %esi to both __lll_lock_wait and
1261 __lll_unlock_wake.
1262 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1263 Include lowlevellock.h.
1264 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1265 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
1266 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
1267 and __lll_unlock_wake.
1268 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1269 Include lowlevellock.h.
1270 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1271 Don't define.
1272 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
1273 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1274 and __lll_unlock_wake.
1275 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1276 Include lowlevellock.h.
1277 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1278 Don't define.
1279 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1280 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1281 and __lll_unlock_wake.
1282 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1283 Include lowlevellock.h.
1284 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1285 Don't define.
1286 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1287 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1288 and __lll_unlock_wake.
1289 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1290 Include lowlevellock.h.
1291 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1292 Don't define.
1293 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
1294 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1295 and __lll_unlock_wake.
1296 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1297 Include lowlevellock.h.
1298 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1299 Don't define.
1300 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1301 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
1302 and __lll_unlock_wake.
1303 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
1304 lowlevellock.h.
1305 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1306 define.
1307 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
1308 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1309 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
1310 lowlevellock.h.
1311 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1312 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
1313 lowlevellock.h.
1314 (LOCK): Don't define.
1315 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
1316 lowlevellock.h.
1317 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1318 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
1319 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
1320 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
1321 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
1322 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
1323 (__lll_lock_wait_private): New function.
1324 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
1325 it to lll_futex_*wait. Don't compile in for libc.so.
1326 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
1327 Remove.
1328 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
1329 (struct sparc_pthread_barrier): Remove.
1330 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
1331 struct sparc_pthread_barrier. Pass
1332 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
1333 and lll_futex_wait macros.
1334 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
1335 Remove.
1336 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1337 Include sparc pthread_barrier_wait.c instead of generic one.
1338
6f59d56e
UD
13392007-07-30 Jakub Jelinek <jakub@redhat.com>
1340
1475e201
UD
1341 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
1342
6f59d56e
UD
1343 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
1344 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
1345 %ecx.
1346 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
1347 (pthread_rwlock_timedwrlock): Likewise.
1348 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
1349 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
1350
558f0300
JJ
13512007-07-31 Jakub Jelinek <jakub@redhat.com>
1352
1353 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
1354
cedb4109
UD
13552007-07-26 Jakub Jelinek <jakub@redhat.com>
1356
1357 * tst-locale2.c (useless): Add return statement.
1358
085a4412
UD
13592007-07-24 Jakub Jelinek <jakub@redhat.com>
1360
1361 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
1362 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
1363 * pthread_create.c (start_thread): Likewise.
1364 * init.c (sighandler_setxid): Likewise.
1365 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1366 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1367 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1368 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1369 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1370 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1371 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1372 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1373 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1374 Likewise.
1375 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1376 Likewise.
1377 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1378 Likewise.
1379 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1380 __rtld_notify): Likewise.
1381 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1382 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1383 __pthread_once): Likewise.
1384 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1385 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1386 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1387 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1388 (lll_futex_wait): Add private argument, define as wrapper around
1389 lll_futex_timed_wait.
1390 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1391 use __lll_private_flag macro.
1392 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1393 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1394 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1395 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1396 * sysdeps/unix/sysv/linux/ia64/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_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1403 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1404 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1405 Define.
1406 (lll_futex_timed_wait, lll_futex_wake): Use it.
1407 (lll_private_futex_wait, lll_private_futex_timed_wait,
1408 lll_private_futex_wake): Removed.
1409 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1410 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1411 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1412 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1413 (lll_futex_wait): Add private argument, define as wrapper around
1414 lll_futex_timed_wait.
1415 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1416 use __lll_private_flag macro.
1417 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1418 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1419 to lll_futex_*.
1420 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1421 (lll_private_futex_wait, lll_private_futex_timed_wait,
1422 lll_private_futex_wake): Removed.
1423 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1424 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1425 (lll_private_futex_wait, lll_private_futex_timed_wait,
1426 lll_private_futex_wake): Removed.
1427 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1428 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1429 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1430 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1431 (lll_futex_wait): Add private argument, define as wrapper around
1432 lll_futex_timed_wait.
1433 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1434 use __lll_private_flag macro.
1435 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1436 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1437 to lll_futex_*.
1438 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1439 Define.
1440 (lll_futex_timed_wait, lll_futex_wake): Use it.
1441 (lll_private_futex_wait, lll_private_futex_timed_wait,
1442 lll_private_futex_wake): Removed.
1443
ef0af159
JJ
14442007-07-27 Jakub Jelinek <jakub@redhat.com>
1445
1446 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1447 of the structure for sparc32.
1448
14492007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1450
1451 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1452
eb4f5909
UD
14532007-07-23 Ulrich Drepper <drepper@redhat.com>
1454
1455 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1456 code used when private futexes are assumed.
1457 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1458 Likewise.
1459
b5f13526
UD
14602007-07-23 Jakub Jelinek <jakub@redhat.com>
1461
1462 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1463 (__lll_private_flag): Define.
1464 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1465 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1466 __lll_private_flag.
1467 (lll_private_futex_wait, lll_private_futex_timedwait,
1468 lll_private_futex_wake): Define as wrapper around non-_private
1469 macros.
1470 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1471 (__lll_private_flag): Define.
1472 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1473 (lll_private_futex_wait, lll_private_futex_timedwait,
1474 lll_private_futex_wake): Define as wrapper around non-_private
1475 macros.
1476
eb7721f2
UD
14772007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1478
1479 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1480 parameter to lll_futex_wait call.
1481 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1482
1483 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1484 Replace lll_futex_wait with lll_private_futex_wait.
1485 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1486 Add LLL_SHARED parameter to lll_futex_wake().
1487
1488 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1489 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1490 lll_private_futex_wake.
1491 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1492 bit from private parm before syscall.
1493 (lll_futex_timed_wait): Likewise.
1494 (lll_futex_wake): Likewise.
1495 (lll_futex_wake_unlock): Likewise.
1496 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1497 (lll_robust_mutex_unlock): Likewise.
1498 (lll_mutex_unlock_force): Likewise.
1499 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1500
defc45f2
UD
15012007-07-23 Ulrich Drepper <drepper@redhat.com>
1502
1503 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1504 compilation when unconditionally using private futexes.
1505 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1506 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1507 Likewise.
1508 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1509 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1510
087722b8
UD
15112007-07-17 Jakub Jelinek <jakub@redhat.com>
1512
1513 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1514 Define.
1515
765c6b0c
UD
15162007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1517
1518 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1519 kernel-features.h.
1520
7d9d8bd1
RM
15212007-05-16 Roland McGrath <roland@redhat.com>
1522
1523 * init.c (__nptl_initial_report_events): New variable.
1524 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1525 to that.
1526
a4915df2
UD
15272007-06-22 Jakub Jelinek <jakub@redhat.com>
1528
1529 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1530 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1531
e4eb675d
UD
15322007-06-19 Ulrich Drepper <drepper@redhat.com>
1533
1534 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1535 implementation.
1536
ae1ad3ae
UD
15372007-06-18 Ulrich Drepper <drepper@redhat.com>
1538
1539 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1540 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1541 * pthread_mutex_timedlock.c: Likewise.
1542 * pthread_mutex_trylock.c: Likewise.
1543 * pthread_mutex_unlock.c: Likewise.
1544
89074592
UD
15452007-06-17 Andreas Schwab <schwab@suse.de>
1546
1547 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1548 sections.
1549
d4201cc4
UD
15502007-06-17 Ulrich Drepper <drepper@redhat.com>
1551
1552 * allocatestack.c (allocate_stack): Make code compile if
1553 __ASSUME_PRIVATE_FUTEX is set.
1554
339dbf0e
UD
15552007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1556
1557 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1558 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1559 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1560 (__pthread_rwlock_wrlock): Likewise.
1561 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1562 (pthread_rwlock_timedrdlock): Likewise.
1563 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1564 (pthread_rwlock_timedwrlock): Likewise.
1565 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1566 (__pthread_rwlock_unlock): Likewise.
1567
15682007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1569
1570 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1571 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1572 Split __flags into __flags, __shared, __pad1 and __pad2.
1573 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1574 futexes if they are available.
1575 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1576 in libc-lowlevellock.S allow using private futexes.
1577 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1578 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1579 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1580 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1581 lll_private_futex_timed_wait and lll_private_futex_wake.
1582 (lll_robust_mutex_unlock): Fix typo.
1583 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1584 field in futex command setup.
1585 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1586 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1587 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1588 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1589 if they are available. Remove clear_once_control.
1590 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1591 futexes if they are available.
1592 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1593 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1594 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1595 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1596 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1597 Wake only when there are waiters.
1598 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1599 support. Indicate that there are waiters. Remove unnecessary
1600 extra cancellation test.
1601 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1602 left-over duplication of __sem_wait_cleanup.
1603
26f56c1c
UD
16042007-06-07 Ulrich Drepper <drepper@redhat.com>
1605
1606 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1607 parameter to lll_futex_wait, lll_futex_timed_wait, and
1608 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1609 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1610 lll_private_futex_wake.
1611 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1612 * allocatestack.c: Adjust use of lll_futex_* macros.
1613 * init.c: Likewise.
1614 * lowlevellock.h: Likewise.
1615 * pthread_barrier_wait.c: Likewise.
1616 * pthread_cond_broadcast.c: Likewise.
1617 * pthread_cond_destroy.c: Likewise.
1618 * pthread_cond_signal.c: Likewise.
1619 * pthread_cond_timedwait.c: Likewise.
1620 * pthread_cond_wait.c: Likewise.
1621 * pthread_create.c: Likewise.
1622 * pthread_mutex_lock.c: Likewise.
1623 * pthread_mutex_setprioceiling.c: Likewise.
1624 * pthread_mutex_timedlock.c: Likewise.
1625 * pthread_mutex_unlock.c: Likewise.
1626 * pthread_rwlock_timedrdlock.c: Likewise.
1627 * pthread_rwlock_timedwrlock.c: Likewise.
1628 * pthread_rwlock_unlock.c: Likewise.
1629 * sysdeps/alpha/tls.h: Likewise.
1630 * sysdeps/i386/tls.h: Likewise.
1631 * sysdeps/ia64/tls.h: Likewise.
1632 * sysdeps/powerpc/tls.h: Likewise.
1633 * sysdeps/pthread/aio_misc.h: Likewise.
1634 * sysdeps/pthread/gai_misc.h: Likewise.
1635 * sysdeps/s390/tls.h: Likewise.
1636 * sysdeps/sh/tls.h: Likewise.
1637 * sysdeps/sparc/tls.h: Likewise.
1638 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1639 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1640 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1641 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1642 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1643 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1644 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1645 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1646 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1647 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1648 Likewise.
1649 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1650 * sysdeps/x86_64/tls.h: Likewise.
1651
ee5d5755
UD
16522007-05-29 Ulrich Drepper <drepper@redhat.com>
1653
b03b0c29
UD
1654 * pthread_getattr_np.c: No need to install a cancellation handler,
1655 this is no cancellation point.
1656 * pthread_getschedparam.c: Likewise.
1657 * pthread_setschedparam.c: Likewise.
1658 * pthread_setschedprio.c: Likewise.
1659 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1660 lll_unlock_wake_cb.
1661 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1662 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1663 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1664 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1665 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1666 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1667 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1668 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1669 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1670 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1671 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1672 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1673
0154658d
UD
1674 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1675 whether there are more than one thread makes no sense here since
1676 we only call the slow path if the locks are taken.
1677 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1678
ee5d5755
UD
1679 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1680 COND_NWAITERS_SHIFT.
1681 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1682 COND_CLOCK_BITS.
1683 * pthread_cond_init.c: Likewise.
1684 * pthread_cond_timedwait.c: Likewise.
1685 * pthread_cond_wait.c: Likewise.
1686 * pthread_condattr_getclock.c: Likewise.
1687 * pthread_condattr_setclock.c: Likewise.
1688 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1689 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1690 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1691 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1692 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1693
991fa82b
UD
16942007-05-28 Jakub Jelinek <jakub@redhat.com>
1695
40f57573
UD
1696 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1697 unistd.h.
1698
991fa82b
UD
1699 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1700 insn suffix.
1701 (THREAD_GSCOPE_GET_FLAG): Remove.
1702 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1703 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1704 changes.
1705 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1706 (THREAD_GSCOPE_GET_FLAG): Remove.
1707 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1708 instead of THREAD_GSCOPE_GET_FLAG.
1709 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1710 it.
1711 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1712 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1713 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1714 THREAD_GSCOPE_WAIT): Define.
1715 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1716 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1717 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1718 THREAD_GSCOPE_WAIT): Define.
1719 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1720 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1721 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1722 THREAD_GSCOPE_WAIT): Define.
1723 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1724 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1725 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1726 THREAD_GSCOPE_WAIT): Define.
1727
17282007-05-24 Richard Henderson <rth@redhat.com>
1729
1730 * descr.h (struct pthread): Add header.gscope_flag.
1731 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1732 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1733 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1734 THREAD_GSCOPE_WAIT): Define.
1735
e59660bc
UD
17362007-05-27 Ulrich Drepper <drepper@redhat.com>
1737
1738 * init.c: Make it compile with older kernel headers.
1739
1740 * tst-initializers1.c: Show through exit code which test failed.
1741
1742 * pthread_rwlock_init.c: Also initialize __shared field.
1743 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1744 element in rwlock structure into four byte elements. One of them is
1745 the new __shared element.
1746 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1747 Likewise.
cd0dbd89 1748 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1749 __shared, adjust names of other padding elements.
1750 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1751 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1752 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1753 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1754 FUTEX_PRIVATE_FLAG.
1755 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1756 futex to use private operations if possible.
1757 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1758 Likewise.
1759 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1760 Likewise.
1761 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1762 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1763 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1764 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1765 Likewise.
1766 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1767 Likewise.
1768 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1769 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1770
d8ff3792
UD
17712007-05-26 Ulrich Drepper <drepper@redhat.com>
1772
546346b6
UD
1773 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1774 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1775 * pthread_rwlock_timedrdlock.c: Likewise.
1776 * pthread_rwlock_tryrdlock.c: Likewise.
1777
a2dd3360
UD
1778 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1779 optimization.
1780
6df7ffad
UD
1781 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1782 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1783 duplication of __sem_wait_cleanup.
1784
1785 * allocatestack.c: Revert last change.
1786 * init.c: Likewise.
1787 * sysdeps/i386/tls.h: Likewise.
1788 * sysdeps/x86_64/tls.h: Likewise.
1789 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1790 header structure.
1791 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1792
d8ff3792
UD
1793 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1794 Add private field.
1795 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1796 * pthread_barrier_init.c: Set private flag if pshared and private
1797 futexes are supported.
1798 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1799 private field in futex command setup.
1800 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1801
3d2dd6ca
UD
18022007-05-25 Ulrich Drepper <drepper@redhat.com>
1803
42e6c665
UD
1804 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1805 support.
1806 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1807 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1808 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1809 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1810 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1811
3d2dd6ca
UD
1812 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1813 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1814 fields in the structure.
1815 (__old_sem_init): New function.
1816 * sem_open.c: Initialize all fields of the structure.
1817 * sem_getvalue.c: Adjust for renamed element.
1818 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1819 (gen-as-const-headers): Add structsem.sym.
1820 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1821 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1822 struct new_sem. Add struct old_sem.
1823 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1824 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1825 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1826 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1827 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1828 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1829 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1830 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1831 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1832 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1833 * tst-sem10.c: New file.
1834 * tst-sem11.c: New file.
1835 * tst-sem12.c: New file.
1836 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1837 of struct sem.
1838
20a4d722
JJ
18392007-05-25 Ulrich Drepper <drepper@redhat.com>
1840 Jakub Jelinek <jakub@redhat.com>
1841
1842 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1843 Move __pthread_enable_asynccancel right before futex syscall.
1844 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1845 Likewise.
1846
18472007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1848
1849 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1850 THREAD_COPY_PRIVATE_FUTEX): Define.
1851 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1852 THREAD_COPY_PRIVATE_FUTEX): Define.
1853 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1854 * init.c (__pthread_initialize_minimal_internal): Use
1855 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1856
1857 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1858 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1859 THREAD_GSCOPE_FLAG_WAIT): Define.
1860 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1861 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1862 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1863 PTR_DEMANGLE.
1864 (THREAD_GSCOPE_GET_FLAG): Define.
1865 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1866 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1867 instead of ->header.gscope_flag directly.
1868
5a8075b1
UD
18692007-05-23 Ulrich Drepper <drepper@redhat.com>
1870
1871 * init.c (__pthread_initialize_minimal_internal): Check whether
1872 private futexes are available.
1873 * allocatestack.c (allocate_stack): Copy private_futex field from
1874 current thread into the new stack.
1875 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1876 futexes if they are available.
1877 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1878 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1879 in libc-lowlevellock.S allow using private futexes.
1880 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1881 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1882 FUTEX_PRIVATE_FLAG.
1883 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1884 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1885 if they are available.
1886 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1887 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1888 * sysdeps/i386/tcb-offsets.sym: Likewise.
1889 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1890 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1891
6d59823c
UD
18922007-05-21 Ulrich Drepper <drepper@redhat.com>
1893
1894 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1895 Remove ptr_wait_lookup_done again.
1896 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1897 (__pthread_initialize_minimal_internal): Initialize
1898 _dl_wait_lookup_done pointer in _rtld_global directly.
1899 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1900 Remove code to code _dl_wait_lookup_done.
1901 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1902 encrypted for now.
1903
2c9718f3
JJ
19042007-05-21 Jakub Jelinek <jakub@redhat.com>
1905
1906 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1907 pthread_mutex_init failed with ENOTSUP.
1908
df94b641
UD
19092007-05-19 Ulrich Drepper <drepper@redhat.com>
1910
1911 * allocatestack.c (__wait_lookup_done): New function.
1912 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1913 Add ptr_wait_lookup_done.
1914 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1915 * pthreadP.h: Declare __wait_lookup_done.
1916 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1917 Define macros to implement reference handling of global scope.
1918 * sysdeps/x86_64/tls.h: Likewise.
1919 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1920 Initialize GL(dl_wait_lookup_done).
1921
bec51a30
UD
19222007-05-17 Ulrich Drepper <drepper@redhat.com>
1923
113ad5fc
UD
1924 [BZ #4512]
1925 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1926 is detected.
1927 * pthread_mutex_timedlock.c: Likewise.
1928 * pthread_mutex_trylock.c: Likewise.
1929 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1930
1931 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1932 * tst-robust9.c: New file.
1933 * tst-robustpi9.c: New file.
1934
bec51a30
UD
1935 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1936 unnecessary extra cancellation test.
1937
83d87915
UD
19382007-05-14 Ulrich Drepper <drepper@redhat.com>
1939
83d87915
UD
1940 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
1941 extra cancellation test.
1942 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1943
3771196d
UD
19442007-05-10 Ulrich Drepper <drepper@redhat.com>
1945
341c566f
UD
1946 * descr.h (struct pthread): Rearrange members to fill hole in
1947 64-bit layout.
1948
3771196d
UD
1949 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1950 (__pthread_setaffinity_new): If syscall was successful and
1951 RESET_VGETCPU_CACHE is defined, use it before returning.
1952 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
1953
7d29b542
JJ
19542007-05-10 Jakub Jelinek <jakub@redhat.com>
1955
1956 [BZ #4455]
1957 * tst-align2.c: Include stackinfo.h.
1958 * tst-getpid1.c: Likewise.
1959
16105fe0
UD
19602007-05-02 Carlos O'Donell <carlos@systemhalted.org>
1961
29c113f0
UD
1962 [BZ #4455]
1963 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
1964 * tst-getpid1.c (do_test): Likewise.
1965
16105fe0
UD
1966 [BZ #4456]
1967 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
1968 (allocate_stack): Likewise.
1969
6780bc44
UD
19702007-05-07 Ulrich Drepper <drepper@redhat.com>
1971
1972 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1973 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
1974 (__lll_robust_timedlock_wait): Likewise.
1975 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
1976
aa75f64c
UD
19772007-05-06 Mike Frysinger <vapier@gentoo.org>
1978
15eca720 1979 [BZ #4465]
aa75f64c
UD
1980 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
1981 * tst-cancel4.c (tf_fdatasync): New test.
1982
f672076e
UD
19832007-04-27 Ulrich Drepper <drepper@redhat.com>
1984
1bb5f5a1
UD
1985 [BZ #4392]
1986 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
1987 check mutexes like normal mutexes.
1988
f672076e
UD
1989 [BZ #4306]
1990 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
1991 Initialize the whole sigevent structure to appease valgrind.
1992
bce20b9a
UD
19932007-04-25 Ulrich Drepper <drepper@redhat.com>
1994
1995 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
1996 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
1997
0c786eac
UD
19982007-04-06 Ulrich Drepper <drepper@redhat.com>
1999
2000 * tst-locale1.c: Avoid warnings.
2001 * tst-locale2.c: Likewise.
2002
e1f0c5bc
UD
20032007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
2004
2005 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2006 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
2007
965cba04
UD
20082007-03-16 Jakub Jelinek <jakub@redhat.com>
2009
2010 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
2011 __extern_always_inline where appropriate.
2012 * sysdeps/pthread/pthread.h: Likewise.
2013
a5ea509b
RH
20142007-03-13 Richard Henderson <rth@redhat.com>
2015
2016 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
2017 separate cfi regions for the two subsections.
2018
00a1430e
UD
20192007-02-25 Ulrich Drepper <drepper@redhat.com>
2020
2021 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
2022 new thread, don't just decrement it.
2023 Patch by Suzuki K P <suzuki@in.ibm.com>.
2024
63a2f305
UD
20252007-02-21 Ulrich Drepper <drepper@redhat.com>
2026
2027 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
2028 PTHFCT_CALL definition.
2029
2484468b
UD
20302007-02-18 Ulrich Drepper <drepper@redhat.com>
2031
2032 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
2033 available, don't use it.
2034
5ed61e0f
UD
20352007-02-09 Jakub Jelinek <jakub@redhat.com>
2036
2037 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2038 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
2039 call into the kernel to delay.
2040
10ccaa5c
UD
20412007-01-18 Ulrich Drepper <drepper@redhat.com>
2042
f8a17855
UD
2043 * tst-initializers1.c: We want to test the initializers as seen
2044 outside of libc, so undefined _LIBC.
2045
10ccaa5c
UD
2046 * pthread_join.c (cleanup): Avoid warning.
2047
ea1533e0
UD
20482007-01-17 Ulrich Drepper <drepper@redhat.com>
2049
1476bce6
UD
2050 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2051 (__lll_timedwait_tid): Add unwind info.
2052
ea1533e0
UD
2053 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
2054 function table, mangle the pointers.
2055 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
2056 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
2057 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
2058 demangle pointers before use.
2059 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
2060 demangle pointer.
2061 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
2062 * sysdeps/pthread/setxid.h: Likewise.
2063
8980796b
UD
20642007-01-12 Ulrich Drepper <drepper@redhat.com>
2065
2066 * tst-rwlock7.c: Show some more information in case of correct
2067 behavior.
2068
a1d87b5d
UD
20692007-01-11 Ulrich Drepper <drepper@redhat.com>
2070
2071 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2072 (lll_futex_timed_wait): Undo part of last change, don't negate
2073 return value.
2074
11bf311e 20752007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 2076
11bf311e
UD
2077 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
2078 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 2079
11bf311e 20802006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 2081
11bf311e 2082 * shlib-versions: Fix sparc64 linux target specification.
a744da90 2083
11bf311e 20842007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 2085
11bf311e
UD
2086 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2087 Adjust include path for pthread_barrier_wait.c move.
fc242bef 2088
11bf311e 20892006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 2090
11bf311e
UD
2091 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
2092 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 2093
11bf311e
UD
20942006-12-06 Jakub Jelinek <jakub@redhat.com>
2095
2096 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
2097 6 argument cancellable syscalls.
2098 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
2099 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
2100 6 argument cancellable syscalls.
2101 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 2102
66f17705
UD
21032006-12-09 Ulrich Drepper <drepper@redhat.com>
2104
2105 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
2106 (__rtld_mrlock_initialize): Add missing closing parenthesis.
2107
11bf311e
UD
21082006-10-30 Jakub Jelinek <jakub@redhat.com>
2109
2110 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
2111 __sync_lock_release instead of __sync_lock_release_si.
2112
536e40e2
UD
21132006-10-29 Jakub Jelinek <jakub@redhat.com>
2114
2115 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
2116 Define.
2117 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
2118 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
2119 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
2120 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
2121 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
2122 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2123 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
2124 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2125 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2126 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2127 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
2128
11bf311e
UD
21292006-10-27 Ulrich Drepper <drepper@redhat.com>
2130
2131 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
2132 * pthread_barrier_wait.c: ...here.
2133 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
2134 * pthread_cond_broadcast.c: ...here.
2135 * sysdeps/pthread/pthread_cond_signal.c: Move to...
2136 * pthread_cond_signal.c: ...here.
2137 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
2138 * pthread_cond_timedwait.c: ...here.
2139 * sysdeps/pthread/pthread_cond_wait.c: Move to...
2140 * pthread_cond_wait.c: ...here.
2141 * sysdeps/pthread/pthread_once.c: Move to...
2142 * pthread_once.c: ...here.
2143 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
2144 * pthread_rwlock_rdlock.c: ...here.
2145 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
2146 * pthread_rwlock_timedrdlock.c: ...here.
2147 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
2148 * pthread_rwlock_timedwrlock.c: ...here.
2149 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
2150 * pthread_rwlock_unlock.c: ...here.
2151 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
2152 * pthread_rwlock_wrlock.c: ...here.
2153 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
2154 * pthread_spin_destroy.c: ...here.
2155 * sysdeps/pthread/pthread_spin_init.c: Move to...
2156 * pthread_spin_init.c: ...here.
2157 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
2158 * pthread_spin_unlock.c: ...here.
2159 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
2160 * pthread_getcpuclockid.c: ...here.
2161
2162 * init.c: USE_TLS support is now always enabled.
2163 * tst-tls5.h: Likewise.
2164 * sysdeps/alpha/tls.h: Likewise.
2165 * sysdeps/i386/tls.h: Likewise.
2166 * sysdeps/ia64/tls.h: Likewise.
2167 * sysdeps/powerpc/tls.h: Likewise.
2168 * sysdeps/s390/tls.h: Likewise.
2169 * sysdeps/sh/tls.h: Likewise.
2170 * sysdeps/sparc/tls.h: Likewise.
2171 * sysdeps/x86_64/tls.h: Likewise.
2172
006a8f6f 21732006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
2174
2175 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2176 __rtld_mrlock_change): Update oldval if atomic compare and exchange
2177 failed.
2178
2179 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2180 Define to THREAD_SELF->header.multiple_threads.
2181 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
2182 Likewise.
2183 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
2184 Likewise.
2185 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
2186 (SINGLE_THREAD_P): Likewise.
2187 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2188 (SINGLE_THREAD_P): Likewise.
2189 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2190 (SINGLE_THREAD_P): Likewise.
2191 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2192 (SINGLE_THREAD_P): Likewise.
2193 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
2194 Likewise.
2195 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2196 (SINGLE_THREAD_P): Likewise.
2197 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2198 (SINGLE_THREAD_P): Likewise.
2199 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
2200 Likewise.
2201
11bf311e 22022006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 2203
11bf311e
UD
2204 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
2205 by default rather than 2_3_3.
32c075e1 2206
11bf311e 22072006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 2208
11bf311e
UD
2209 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2210 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
2211 atomic_* instead of catomic_* macros.
2212
22132006-10-12 Ulrich Drepper <drepper@redhat.com>
2214
2215 [BZ #3285]
2216 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
2217 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2218 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2219 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2220 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2221 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
2222 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2223 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2224 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2225 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
2226 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2227 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2228 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2229
22302006-10-11 Ulrich Drepper <drepper@redhat.com>
2231
2232 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
2233 cancelable syscalls with six parameters.
2234
2235 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
2236 operations instead of atomic_*.
32c075e1 2237
11bf311e 22382006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 2239
11bf311e 2240 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 2241
11bf311e 22422006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 2243
11bf311e
UD
2244 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
2245 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
2246 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
2247 New file.
2248 * pthread_attr_setstack.c: Allow overwriting the version number of the
2249 new symbol.
2250 * pthread_attr_setstacksize.c: Likewise.
2251 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
2252 it.
2253 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
2254 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 2255
457b559e
UD
22562006-09-24 Ulrich Drepper <drepper@redhat.com>
2257
2258 [BZ #3251]
2259 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
2260 Patch by Petr Baudis.
2261
0466106e
UD
22622006-09-18 Jakub Jelinek <jakub@redhat.com>
2263
2264 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
2265
2266 * tst-cancel2.c (tf): Loop as long as something was written.
2267
bd6d3b7d
UD
22682006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2269
2270 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
2271 mutexes wake all mutexes.
2272 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
2273 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2274 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2275
30aa5785
UD
22762006-09-12 Ulrich Drepper <drepper@redhat.com>
2277
2278 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
2279 to guarantee the thread is always canceled.
2280
2b6a801e
UD
22812006-09-08 Jakub Jelinek <jakub@redhat.com>
2282
2283 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
2284 Include stdlib.h.
2285 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
2286 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
2287 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2288 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2289 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 2290
346e6ad4
UD
22912006-09-08 Ulrich Drepper <drepper@redhat.com>
2292
2293 [BZ #3123]
2294 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
2295 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
2296 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2297 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2298 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
2299 * Makefile (tests): Add tst-cond22.
2300 * tst-cond22.c: New file.
2301
b051fc44
UD
23022006-09-05 Ulrich Drepper <drepper@redhat.com>
2303
2304 [BZ #3124]
2305 * descr.h (struct pthread): Add parent_cancelhandling.
2306 * sysdeps/pthread/createthread.c (create_thread): Pass parent
2307 cancelhandling value to child.
2308 * pthread_create.c (start_thread): If parent thread was canceled
2309 reset the SIGCANCEL mask.
2310 * Makefile (tests): Add tst-cancel25.
2311 * tst-cancel25.c: New file.
2312
d052233c
UD
23132006-09-05 Jakub Jelinek <jakub@redhat.com>
2314 Ulrich Drepper <drepper@redhat.com>
2315
2316 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
2317 counterp if it is already zero.
2318 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
2319
cd248c3f
UD
23202006-03-04 Jakub Jelinek <jakub@redhat.com>
2321 Roland McGrath <roland@redhat.com>
2322
2323 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2324 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2325 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
2326 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2327 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2328 lll_robust_mutex_timedlock, lll_mutex_unlock,
2329 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2330 Add _L_*_ symbols around the subsection.
2331 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
2332 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2333
23342006-03-03 Jakub Jelinek <jakub@redhat.com>
2335 Roland McGrath <roland@redhat.com>
2336
2337 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2338 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2339 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
2340 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2341 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2342 lll_robust_mutex_timedlock, lll_mutex_unlock,
2343 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2344 Add _L_*_ symbols around the subsection.
2345 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
2346 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2347
b80770b2
UD
23482006-08-31 Ulrich Drepper <drepper@redhat.com>
2349
2350 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
2351 change because it can disturb too much existing code. If real hard
2352 reader preference is needed we'll introduce another type.
2353 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2354 (pthread_rwlock_timedwrlock): Likewise.
2355 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2356 Likewise.
2357
bee2df0b
UD
23582006-08-30 Ulrich Drepper <drepper@redhat.com>
2359
2360 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
2361 reader preference.
2362 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2363 (pthread_rwlock_timedwrlock): Likewise.
2364 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2365 Likewise.
2366
d678ebc1
UD
23672006-08-25 Jakub Jelinek <jakub@redhat.com>
2368
2369 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
2370 Only define ifdef SHARED.
2371
ba408f84
UD
23722006-08-23 Ulrich Drepper <drepper@redhat.com>
2373
2374 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2375 (free_stacks): ...here.
2376 (__free_stack_cache): New function.
2377 * pthreadP.h: Declare __free_stack_cache.
2378 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2379 ptr_freeres.
2380 * init.c (pthread_functions): Initialize ptr_freeres.
2381 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2382 New freeres function.
2383
376e973a
UD
23842006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2385
2386 [BZ #3018]
2387 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2388
2b34af01
UD
23892006-08-20 Ulrich Drepper <drepper@redhat.com>
2390
2391 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2392 _XOPEN_REALTIME_THREADS.
2393
89c85f87
UD
23942006-08-15 Jakub Jelinek <jakub@redhat.com>
2395
2396 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2397 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2398 HAVE_CLOCK_GETTIME_VSYSCALL.
2399 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2400
f17efcb4
UD
24012006-08-14 Jakub Jelinek <jakub@redhat.com>
2402
2403 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2404 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2405 * descr.h (struct priority_protection_data): New type.
2406 (struct pthread): Add tpp field.
2407 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2408 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2409 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2410 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2411 TPP mutexes.
2412 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2413 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2414 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2415 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2416 * tpp.c: New file.
2417 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2418 boosted by TPP.
2419 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2420 * pthread_mutexattr_getprioceiling.c
2421 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2422 in the SCHED_FIFO priority range.
2423 * pthread_mutexattr_setprioceiling.c
2424 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2425 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2426 if mutex is not TPP. Ceiling is now in __data.__lock.
2427 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2428 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2429 is now in __data.__lock. Add locking.
2430 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2431 * Makefile (libpthread-routines): Add tpp.
2432 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2433 * tst-tpp.h: New file.
2434 * tst-mutexpp1.c: New file.
2435 * tst-mutexpp6.c: New file.
2436 * tst-mutexpp10.c: New file.
2437 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2438 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2439
22bb134c
UD
24402006-08-12 Ulrich Drepper <drepper@redhat.com>
2441
2442 [BZ #2843]
2443 * pthread_join.c (pthread_join): Account for self being canceled
2444 when checking for deadlocks.
2445 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2446 (tf1): Don't print anything after pthread_join returns, this would be
2447 another cancellation point.
2448 (tf2): Likewise.
2449 * tst-join6.c: New file.
2450 * Makefile (tests): Add tst-join6.
2451
f1762c0c
UD
24522006-08-03 Ulrich Drepper <drepper@redhat.com>
2453
9c06eb66
UD
2454 [BZ #2892]
2455 * pthread_setspecific.c (__pthread_setspecific): Check
2456 out-of-range index before checking for unused key.
2457
f1762c0c
UD
2458 * sysdeps/pthread/gai_misc.h: New file.
2459
7bb1b2c9
UD
24602006-08-01 Ulrich Drepper <drepper@redhat.com>
2461
2462 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2463 file. Don't use sysctl.
2464 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2465 overwrite the file if this is likely not true.
2466
b06e7e9a
UD
24672006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2468
2469 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2470 * Makefile (tests): Add tst-getpid3.
2471 * tst-getpid3.c: New file.
2472
b894c2ea
RM
24732006-07-30 Roland McGrath <roland@redhat.com>
2474
2475 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2476
2477 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2478 (pause_not_cancel): New macro.
2479 (nanosleep_not_cancel): New macro.
2480 (sigsuspend_not_cancel): New macro.
2481 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2482 nanosleep_not_cancel macro from <not-cancel.h>.
2483 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2484 macro from <not-cancel.h>.
2485
df47504c
UD
24862006-07-28 Ulrich Drepper <drepper@redhat.com>
2487 Jakub Jelinek <jakub@redhat.com>
2488
2489 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2490 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2491 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2492 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2493 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2494 * pthread_mutex_lock.c: Likewise.
2495 * pthread_mutex_timedlock.c: Likewise.
2496 * pthread_mutex_trylock.c: Likewise.
2497 * pthread_mutex_unlock.c: Likewise.
2498 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2499 all mutexes.
2500 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2501 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2502 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2503 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2504 pthread-pi-defines.sym.
2505 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2506 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2507 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2508 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2509 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2510 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2511 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2512 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2513 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2514 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2515 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2516 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2517 * tst-mutex2.c: Likewise.
2518 * tst-mutex3.c: Likewise.
2519 * tst-mutex4.c: Likewise.
2520 * tst-mutex5.c: Likewise.
2521 * tst-mutex6.c: Likewise.
2522 * tst-mutex7.c: Likewise.
2523 * tst-mutex7a.c: Likewise.
2524 * tst-mutex8.c: Likewise.
2525 * tst-mutex9.c: Likewise.
2526 * tst-robust1.c: Likewise.
2527 * tst-robust7.c: Likewise.
2528 * tst-robust8.c: Likewise.
2529 * tst-mutexpi1.c: New file.
2530 * tst-mutexpi2.c: New file.
2531 * tst-mutexpi3.c: New file.
2532 * tst-mutexpi4.c: New file.
2533 * tst-mutexpi5.c: New file.
2534 * tst-mutexpi6.c: New file.
2535 * tst-mutexpi7.c: New file.
2536 * tst-mutexpi7a.c: New file.
2537 * tst-mutexpi8.c: New file.
2538 * tst-mutexpi9.c: New file.
2539 * tst-robust1.c: New file.
2540 * tst-robust2.c: New file.
2541 * tst-robust3.c: New file.
2542 * tst-robust4.c: New file.
2543 * tst-robust5.c: New file.
2544 * tst-robust6.c: New file.
2545 * tst-robust7.c: New file.
2546 * tst-robust8.c: New file.
2547 * Makefile (tests): Add the new tests.
2548
2549 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2550 * pthread_mutex_destroy.c: Remove unneeded label.
2551
f3be81a9
UD
25522006-07-01 Ulrich Drepper <drepper@redhat.com>
2553
2554 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2555 computations to compile time.
2556
c26ca5e1
UD
25572006-06-04 Ulrich Drepper <drepper@redhat.com>
2558
2559 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2560
6f8a7dff
UD
25612006-05-15 Ulrich Drepper <drepper@redhat.com>
2562
c26ca5e1 2563 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2564
3d237e42
UD
25652006-05-11 Ulrich Drepper <drepper@redhat.com>
2566
04974d63
UD
2567 * pthread_key_create.c (__pthread_key_create): Do away with
2568 __pthread_keys_lock.
2569
2570 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2571 (__kernel_cpumask_size): Mark as hidden.
2572 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2573
3d237e42
UD
2574 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2575 * semaphoreP.h (__sem_mappings_lock): Likewise.
2576
790fc6e4
UD
25772006-05-10 Ulrich Drepper <drepper@redhat.com>
2578
2579 * pthread_atfork.c: Mark __dso_handle as hidden.
2580
be434a72
UD
25812006-05-09 Ulrich Drepper <drepper@redhat.com>
2582
2583 [BZ #2644]
2584 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2585 the reload problem. Change the one path in pthread_cancel_init
2586 which causes the problem. Force gcc to reload. Simplify callers.
2587 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2588 (_Unwind_GetBSP): Undo last patch.
2589
3142b1ac
UD
25902006-05-07 Ulrich Drepper <drepper@redhat.com>
2591
bf3635d3
UD
2592 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2593 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2594
2595 [BZ #2644]
2596 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2597 pointers are reloaded after pthread_cancel_init calls.
2598
27488789
UD
25992006-05-01 Ulrich Drepper <drepper@redhat.com>
2600
2601 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2602 __always_inline.
2603
a6375d11
UD
26042006-04-27 Ulrich Drepper <drepper@redhat.com>
2605
2606 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2607 Allocate new object which is passed to timer_sigev_thread so that
2608 the timer can be deleted before the new thread is scheduled.
2609
16a1d952
RM
26102006-04-26 Roland McGrath <roland@redhat.com>
2611
2612 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2613
7960f2a7
UD
26142006-04-08 Ulrich Drepper <drepper@redhat.com>
2615
ab9a9ff8
UD
2616 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2617 suffix for conditional jumps.
2618 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2619 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2620 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2621 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2622 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2623 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2624
7960f2a7
UD
2625 * init.c (sigcancel_handler): Compare with correct PID even if the
2626 thread is in the middle of a fork call.
2627 (sighandler_setxid): Likewise.
2628 Reported by Suzuki K P <suzuki@in.ibm.com> .
2629
2035d91c
UD
26302006-04-07 Jakub Jelinek <jakub@redhat.com>
2631
2632 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2633
0292b0dd
UD
26342006-04-06 Ulrich Drepper <drepper@redhat.com>
2635
2636 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2637 fails [Coverity CID 105].
2638
6738b3c0
UD
26392006-04-05 Ulrich Drepper <drepper@redhat.com>
2640
2641 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2642
359157a5
RM
26432006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2644
2645 [BZ #2505]
2646 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2647 Define __lll_rel_instr using lwsync.
2648
cd277b2d
UD
26492006-03-27 Ulrich Drepper <drepper@redhat.com>
2650
2651 * allocatestack.c (allocate_stack): Always initialize robust_head.
2652 * descr.h: Define struct robust_list_head.
2653 (struct pthread): Use robust_list_head in robust mutex list definition.
2654 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2655 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2656 (__pthread_initialize_minimal_internal): Register robust_list with
2657 the kernel.
2658 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2659 Declare __set_robust_list_avail.
2660 * pthread_create.c (start_thread): Register robust_list of new thread.
2661 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2662 waiters.
2663 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2664 number of users, it's unreliable.
2665 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2666 set_robust_list syscall is available.
2667 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2668 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2669 Set robust_head.list_op_pending before trying to lock a robust mutex.
2670 * pthread_mutex_timedlock.c: Likewise.
2671 * pthread_mutex_trylock.c: Likewise.
2672 * pthread_mutex_unlock.c: Likewise for unlocking.
2673 * Makefile (tests): Add tst-robust8.
2674 * tst-robust8.c: New file.
2675
facac085
UD
26762006-03-08 Andreas Schwab <schwab@suse.de>
2677
2678 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2679 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2680
7ccbe1a1
RM
26812006-03-05 Roland McGrath <roland@redhat.com>
2682
2683 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2684 and $config_os doesn't match *linux*.
2685
043cee37
RM
26862006-03-05 David S. Miller <davem@sunset.davemloft.net>
2687
2688 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2689 Use __syscall_error.
2690 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2691 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2692 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2693 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2694 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2695 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2696
88bce79e
UD
26972006-03-02 Ulrich Drepper <drepper@redhat.com>
2698
2699 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2700
672ec465
UD
27012006-03-01 Ulrich Drepper <drepper@redhat.com>
2702
2703 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2704 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2705 mutex.
2706 (__lll_robust_timedlock_wait): Likewise.
2707 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2708 (__lll_robust_lock_wait): Likewise.
2709 (__lll_robust_timedlock_wait): Likewise.
2710 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2711 (__lll_robust_lock_wait): Likewise.
2712 (__lll_robust_timedlock_wait): Likewise.
2713
c4a4875d
RM
27142006-03-01 Jakub Jelinek <jakub@redhat.com>
2715
2716 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2717 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2718 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2719 lll_robust_mutex_unlock): Define.
2720 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2721
3192fd8e
RM
27222006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2723
2724 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2725 instead of <clone.S>.
2726
14d44b19
RM
27272006-02-27 Jakub Jelinek <jakub@redhat.com>
2728
2729 * Makefile (libpthread-routines): Add
2730 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2731 and pthread_mutex_[sg]etprioceiling.
2732 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2733 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2734 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2735 pthread_mutex_setprioceiling.
2736 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2737 PTHREAD_PRIO_PROTECT): New enum values.
2738 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2739 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2740 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2741 prototypes.
2742 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2743 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2744 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2745 Define.
2746 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2747 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2748 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2749 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2750 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2751 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2752 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2753 protocol mutexes.
2754 * pthread_mutex_getprioceiling.c: New file.
2755 * pthread_mutex_setprioceiling.c: New file.
2756 * pthread_mutexattr_getprioceiling.c: New file.
2757 * pthread_mutexattr_setprioceiling.c: New file.
2758 * pthread_mutexattr_getprotocol.c: New file.
2759 * pthread_mutexattr_setprotocol.c: New file.
2760
62f6b9b2
RM
27612006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2762
2763 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2764
e0a3ed4f
RM
27652006-02-27 Roland McGrath <roland@redhat.com>
2766
2767 * sysdeps/pthread/Subdirs: List nptl here too.
2768 * configure (libc_add_on_canonical): New variable.
2769
2770 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2771
2772 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2773 self to get main source tree's file.
2774 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2775 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2776 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2777 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2778 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2779 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2780 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2781 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2782 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2783 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2784 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2785 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2786 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2787
2788 * Makefile: Use $(sysdirs) in vpath directive.
2789
2790 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2791 (CPPFLAGS-timer_routines.c): Likewise.
2792
2793 * Makeconfig (includes): Variable removed.
2794
84cfa284
RM
27952006-02-26 Roland McGrath <roland@redhat.com>
2796
2797 * sysdeps/generic/pt-raise.c: Moved to ...
2798 * pt-raise.c: ... here.
2799 * sysdeps/generic/lowlevellock.h: Moved to ...
2800 * lowlevellock.h: ... here.
2801
c5132ca1
RM
28022006-02-23 Roland McGrath <roland@redhat.com>
2803
2804 * descr.h (struct pthread): Add final member `end_padding'.
2805 (PTHREAD_STRUCT_END_PADDING): Use it.
2806
28072006-02-20 Roland McGrath <roland@redhat.com>
2808
2809 * sysdeps/mips: Directory removed, saved in ports repository.
2810 * sysdeps/unix/sysv/linux/mips: Likewise.
2811
a93317a1
UD
28122006-02-18 Ulrich Drepper <drepper@redhat.com>
2813
2814 * tst-robust1.c: Add second mutex to check that the mutex list is
2815 handled correctly.
2816
f1740bc4
UD
28172006-02-17 Jakub Jelinek <jakub@redhat.com>
2818
2819 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2820 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2821 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2822 lll_robust_mutex_unlock): New macros.
2823 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2824 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2825 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2826 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2827 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2828
a7245bf5
UD
28292006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2830
2831 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2832 definitions.
2833 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2834
49bfc1fe
UD
28352006-02-17 Ulrich Drepper <drepper@redhat.com>
2836
2837 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2838 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2839 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2840 (lll_robust_mutex_unlock): Likewise.
2841
56e987ac
UD
28422006-02-13 Jakub Jelinek <jakub@redhat.com>
2843
2844 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2845 Set robust_list.__next rather than robust_list.
2846 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2847 (__pthread_list_t): New typedef.
2848 (pthread_mutex_t): Replace __next and __prev fields with __list.
2849 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2850 (__pthread_list_t): New typedef.
2851 (pthread_mutex_t): Replace __next and __prev fields with __list.
2852 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2853 (__pthread_list_t, __pthread_slist_t): New typedefs.
2854 (pthread_mutex_t): Replace __next and __prev fields with __list.
2855 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2856 (__pthread_list_t, __pthread_slist_t): New typedefs.
2857 (pthread_mutex_t): Replace __next and __prev fields with __list.
2858 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2859 (__pthread_list_t, __pthread_slist_t): New typedefs.
2860 (pthread_mutex_t): Replace __next and __prev fields with __list.
2861 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2862 (__pthread_slist_t): New typedef.
2863 (pthread_mutex_t): Replace __next field with __list.
2864
683040c3
UD
28652006-02-15 Ulrich Drepper <drepper@redhat.com>
2866
25bc77e6 2867 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2868 PTHREAD_MUTEX_OWNERDEAD.
2869 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2870 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2871 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2872 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2873 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2874 to PTHREAD_MUTEX_INCONSISTENT.
2875 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2876 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2877 * pthread_mutex_trylock.c: Likewise.
2878 * pthread_mutex_timedlock.c: Likewise.
2879 * pthread_mutex_unlock.c: Likewise.
2880 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2881 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2882 lowlevelrobustlock.sym.
2883 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2884 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2885 definitions.
2886 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2887 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2888 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2889 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2890 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2891
bbf209a4
UD
28922006-02-12 Ulrich Drepper <drepper@redhat.com>
2893
b007ce7c
UD
2894 * allocatestack.c (allocate_stack): Initialize robust_list.
2895 * init.c (__pthread_initialize_minimal_internal): Likewise.
2896 * descr.h (struct xid_command): Pretty printing.
2897 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2898 robust_list. Adjust macros.
2899 * pthread_create.c (start_thread): Adjust robust_list handling.
2900 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2901 but the owner for all robust mutex types.
2902 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2903 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2904 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2905 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2906
bbf209a4
UD
2907 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2908 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2909
b576fca1
UD
29102006-02-08 Jakub Jelinek <jakub@redhat.com>
2911
2912 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2913 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2914
a6df7387
UD
29152006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2916
2917 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2918 Return status.
2919 (lll_futex_timed_wait): Define.
2920
7c65e900
UD
29212006-01-19 Ulrich Drepper <drepper@redhat.com>
2922
2923 * tst-cancel4.c: Test ppoll.
2924
5f9f21e8
AJ
29252006-01-18 Andreas Jaeger <aj@suse.de>
2926
cf407dfb 2927 [BZ #2167]
5f9f21e8
AJ
2928 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2929 (pthread_mutex_t): Follow changes for other archs. Based on patch
2930 by Jim Gifford <patches@jg555.com>.
2931
251278c6
UD
29322006-01-13 Richard Henderson <rth@redhat.com>
2933
2934 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2935
de59a291
RM
29362006-01-10 Roland McGrath <roland@redhat.com>
2937
2938 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
2939 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
2940 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
2941 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
2942 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
2943 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
2944 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
2945 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
2946 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 2947 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 2948
931786ee
RM
29492006-01-09 Roland McGrath <roland@redhat.com>
2950
5d42c8c3
RM
2951 * tst-initializers1-c89.c: New file.
2952 * tst-initializers1-c99.c: New file.
2953 * tst-initializers1-gnu89.c: New file.
2954 * tst-initializers1-gnu99.c: New file.
2955 * Makefile (tests): Add them.
2956 (CFLAGS-tst-initializers1-c89.c): New variable.
2957 (CFLAGS-tst-initializers1-c99.c): New variable.
2958 (CFLAGS-tst-initializers1-gnu89.c): New variable.
2959 (CFLAGS-tst-initializers1-gnu99.c): New variable.
2960
931786ee
RM
2961 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
2962 Use __extension__ on anonymous union definition.
2963 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
2964 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2965 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2966 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 2967 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 2968
8dd18431
RM
29692006-01-08 Jakub Jelinek <jakub@redhat.com>
2970
2971 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
2972 Don't give the union a name because it changes the mangled name.
2973 Instead name the struct for __data.
2974 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
2975 Likewise.
2976 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
2977 Likewise.
2978
ae11e412
UD
29792006-01-09 Jakub Jelinek <jakub@redhat.com>
2980
2981 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
2982 stack bias to mc_ftp field.
2983
c6885aa1
UD
29842006-01-07 Ulrich Drepper <drepper@redhat.com>
2985
2986 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 2987 being too clever and reloading the futex value where it shouldn't.
c6885aa1 2988
ae4ad00a
UD
29892006-01-06 Ulrich Drepper <drepper@redhat.com>
2990
2991 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
2992 correct type.
2993
ced368f7
UD
29942006-01-06 Jakub Jelinek <jakub@redhat.com>
2995
2996 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
2997 Add cfi directives.
2998
d804f5df
UD
29992006-01-06 Ulrich Drepper <drepper@redhat.com>
3000
cbbbb188 3001 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
3002 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
3003 rename in tcbhead_t.
3004
d804f5df
UD
3005 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3006 Don't give the union a name because it changes the mangled name.
3007 Instead name the struct for __data.
3008 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3009 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3010 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3011 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3012 * pthread_create.c (start_thread): Adjust robust mutex free loop.
3013 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
3014
679d83ba
UD
30152006-01-05 Ulrich Drepper <drepper@redhat.com>
3016
3017 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
3018 Return status.
3019 (lll_futex_timed_wait): Define.
3020 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3021 * sysdeps/pthread/aio_misc.h: New file.
3022
06dc5bf3
RM
30232006-01-03 Joseph S. Myers <joseph@codesourcery.com>
3024
3025 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
3026
9759bbf1
UD
30272006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
3028
3029 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3030 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
3031 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3032
db59b28b
UD
30332006-01-04 Ulrich Drepper <drepper@redhat.com>
3034
3035 * tst-cancel24.cc: Use C headers instead of C++ headers.
3036
b01fe5f7
UD
30372006-01-03 Jakub Jelinek <jakub@redhat.com>
3038
3039 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
3040 sparc-linux configured glibc.
3041 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
3042 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
3043 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
3044 atomic_compare_and_exchange_val_24_acq instead of
3045 atomic_compare_and_exchange_val_acq.
3046 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
3047 instead of atomic_exchange_rel.
3048 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
3049 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
3050 file.
3051 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
3052 file.
3053 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
3054 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
3055 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
3056 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
3057 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
3058 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3059 New file.
3060 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3061 New file.
3062 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
3063 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
3064 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
3065 file.
3066 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
3067 file.
3068 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
3069
35c2fd59
UD
30702006-01-03 Ulrich Drepper <drepper@redhat.com>
3071
3072 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
3073 mutex initializers.
3074
305bb37e
UD
30752006-01-02 Jakub Jelinek <jakub@redhat.com>
3076
3077 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
3078 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3079 THREAD_COPY_POINTER_GUARD): Define.
3080 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
3081 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
3082
cc792128
UD
30832006-01-01 Ulrich Drepper <drepper@redhat.com>
3084
3085 * version.c: Update copyright year.
3086
db0a00d3
UD
30872005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3088
3089 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
3090 .eh_frame section, use cfi_* directives.
3091 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
3092
b36205c4
UD
30932005-12-30 Ulrich Drepper <drepper@redhat.com>
3094
3095 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
3096 now.
3097
8b4f1598
UD
30982005-12-29 Ulrich Drepper <drepper@redhat.com>
3099
3100 * sysdeps/pthread/sigaction.c: Removed.
3101 * sigaction.c: New file.
3102 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
3103
fec5592d
UD
31042005-12-28 Ulrich Drepper <drepper@redhat.com>
3105
3106 * Makefile (tests): Add tst-signal7.
3107 * tst-signal7.c: New file.
3108
db169ed5
RM
31092005-12-27 Roland McGrath <roland@redhat.com>
3110
3111 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
3112 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
3113 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
3114 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3115 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3116 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3117 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3118 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3119 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3120 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3121 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3122
bfffffae
UD
31232005-12-27 Jakub Jelinek <jakub@redhat.com>
3124
3125 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
3126 and __prev field to pthread_mutex_t.
3127 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3128 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3129 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3130 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3131 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
3132 to pthread_mutex_t.
3133
1bcfb5a5
UD
31342005-12-26 Ulrich Drepper <drepper@redhat.com>
3135
3136 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
3137 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
3138 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
3139 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
3140 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
3141 and PTHREAD_MUTEXATTR_FLAG_BITS.
3142 * descr.h (struct pthread): Add robust_list field and define
3143 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
3144 * pthread_mutexattr_getrobust.c: New file.
3145 * pthread_mutexattr_setrobust.c: New file.
3146 * pthread_mutex_consistent.c: New file.
3147 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
3148 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3149 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
3150 Adjust pthread_mutex_t initializers.
3151 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
3152 field to pthread_mutex_t.
3153 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
3154 and __prev field to pthread_mutex_t.
3155 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
3156 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
3157 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
3158 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
3159 * pthread_mutexattr_gettype.c: Likewise.
3160 * pthread_mutexattr_setpshared.c: Likewise.
3161 * pthread_mutexattr_settype.c: Likewise.
3162 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
3163 Initialize mutex kind according to robust flag.
3164 * pthread_mutex_lock.c: Implement local robust mutex.
3165 * pthread_mutex_timedlock.c: Likewise.
3166 * pthread_mutex_trylock.c: Likewise.
3167 * pthread_mutex_unlock.c: Likewise.
3168 * pthread_create.c (start_thread): Mark robust mutexes which remained
3169 locked as dead.
3170 * tst-robust1.c: New file.
3171 * tst-robust2.c: New file.
3172 * tst-robust3.c: New file.
3173 * tst-robust4.c: New file.
3174 * tst-robust5.c: New file.
3175 * tst-robust6.c: New file.
3176 * tst-robust7.c: New file.
3177 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
3178 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3179 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
3180 tst-robust5, tst-robust6, and tst-robust7.
3181
3182 * tst-typesizes.c: New file.
3183 * Makefile (tests): Add tst-typesizes.
3184
3185 * tst-once3.c: More debug output.
3186
9333ed0d
UD
31872005-12-24 Ulrich Drepper <drepper@redhat.com>
3188
d4d138a4
UD
3189 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
3190 missing after last change.
3191
bfffffae 3192 * version.c: Update copyright year.
9333ed0d 3193
dcc73a8d
UD
31942005-12-23 Ulrich Drepper <drepper@redhat.com>
3195
3196 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
3197 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
3198 * pthread_mutex_trylock.c: Likewise.
3199 * pthread_mutex_timedlock.c: Likewise.
3200 * pthread_mutex_unlock.c: Likewise.
3201
879f3ca6
RM
32022005-12-22 Roland McGrath <roland@redhat.com>
3203
3204 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
3205 so that #include_next's search location is not reset to the -I..
3206 directory where <nptl/...> can be found.
3207
077a0da7
UD
32082005-12-22 Ulrich Drepper <drepper@redhat.com>
3209
3210 [BZ #1913]
3211 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3212 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
3213 * tst-cancel24.cc: New file.
3214 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 3215
8dea90aa
RM
32162005-12-21 Roland McGrath <roland@redhat.com>
3217
3218 * libc-cancellation.c: Use <> rather than "" #includes.
3219 * pt-cleanup.c: Likewise.
3220 * pthread_create.c: Likewise.
3221 * pthread_join.c: Likewise.
3222 * pthread_timedjoin.c: Likewise.
3223 * pthread_tryjoin.c: Likewise.
3224 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
3225 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3226 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3227 * unwind.c: Likewise.
3228
8da21f96
UD
32292005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3230
3231 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
3232 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
3233 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3234 THREAD_COPY_POINTER_GUARD): Define.
3235
00c2b3b9
UD
32362005-12-19 Jakub Jelinek <jakub@redhat.com>
3237
3238 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
3239 rather than one.
3240 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3241 THREAD_COPY_POINTER_GUARD): Define.
3242 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
3243 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
3244 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3245 THREAD_COPY_POINTER_GUARD): Define.
3246 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
3247 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
3248 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
3249 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
3250 Use PTR_DEMANGLE for B0 if defined.
3251
827b7087
UD
32522005-12-17 Ulrich Drepper <drepper@redhat.com>
3253
3254 * pthread_create.c (__pthread_create_2_1): Use
3255 THREAD_COPY_POINTER_GUARD if available.
3256 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
3257 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3258 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
3259 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
3260 * sysdeps/x86_64/tls.h: Likewise.
3261
2826ac7e
RM
32622005-12-15 Roland McGrath <roland@redhat.com>
3263
3264 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
3265
b6ab06ce
UD
32662005-12-13 Ulrich Drepper <drepper@redhat.com>
3267
3268 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
3269 sysdeps/generic.
3270 * errno-loc.c: New file.
3271
f0d1a3b5
RM
32722005-12-12 Roland McGrath <roland@redhat.com>
3273
3274 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
3275 adjustments before choosing stack size. Update minimum stack size
3276 calculation to match allocate_stack change.
3277
db13ddbc
UD
32782005-12-12 Ulrich Drepper <drepper@redhat.com>
3279
3280 * allocatestack.c (allocate_stack): Don't demand that there is an
3281 additional full page available on the stack beside guard, TLS, the
3282 minimum stack.
3283
088f460f
UD
32842005-11-24 Ulrich Drepper <drepper@redhat.com>
3285
3286 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3287 (__cleanup_fct_attribute): Use __regparm__ not regparm.
3288
3289 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
3290 compiling 32-bit code we must define __cleanup_fct_attribute.
3291
16feadf2
UD
3292005-11-24 Jakub Jelinek <jakub@redhat.com>
3293
3294 [BZ #1920]
3295 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
3296 __attribute__ instead of __attribute.
3297 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3298 (__cleanup_fct_attribute): Likewise.
3299
e6e493bb
UD
33002005-11-17 Jakub Jelinek <jakub@redhat.com>
3301
3302 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
3303 a write barrier before writing libgcc_s_getcfa.
3304
8e635611
UD
33052005-11-06 Ulrich Drepper <drepper@redhat.com>
3306
3307 * sysdeps/unix/sysv/linux/configure: Removed.
3308
ce33ee7c
UD
33092005-11-05 Ulrich Drepper <drepper@redhat.com>
3310
3311 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
3312 optional init_array/fini_array support.
3313
20d511e0
RM
33142005-10-24 Roland McGrath <roland@redhat.com>
3315
3316 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
3317 versioned_symbol use.
3318
fe60d146
RM
33192005-10-16 Roland McGrath <roland@redhat.com>
3320
3321 * init.c (__pthread_initialize_minimal_internal): Even when using a
3322 compile-time default stack size, apply the minimum that allocate_stack
3323 will require, and round up to page size.
3324
0faa1cf5
RM
33252005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
3326
3327 * Makefile ($(test-modules)): Remove static pattern rule.
3328
f9126cc2
UD
33292005-10-14 Jakub Jelinek <jakub@redhat.com>
3330 Ulrich Drepper <drepper@redhat.com>
3331
3332 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
3333 alignment in callback function.
3334 * Makefile: Add rules to build and run tst-align3.
3335 * tst-align3.c: New file.
3336
015a5d22
RM
33372005-10-03 Jakub Jelinek <jakub@redhat.com>
3338
3339 * allocatestack.c (setxid_signal_thread): Add
3340 INTERNAL_SYSCALL_DECL (err).
3341
b71ce910
UD
33422005-10-02 Jakub Jelinek <jakub@redhat.com>
3343
3344 * allocatestack.c (setxid_signal_thread): Need to use
3345 atomic_compare_and_exchange_bool_acq.
3346
dff9a7a1
UD
33472005-10-01 Ulrich Drepper <drepper@redhat.com>
3348 Jakub Jelinek <jakub@redhat.com>
3349
3350 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
3351 CANCEL_RESTMASK.
3352 (struct pthread): Move specific_used field to avoid padding.
3353 Add setxid_futex field.
3354 * init.c (sighandler_setxid): Reset setxid flag and release the
3355 setxid futex.
3356 * allocatestack.c (setxid_signal_thread): New function. Broken
3357 out of the bodies of the two loops in __nptl_setxid. For undetached
3358 threads check whether they are exiting and if yes, don't send a signal.
3359 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
3360 * pthread_create.c (start_thread): For undetached threads, check
3361 whether setxid bit is set. If yes, wait until signal has been
3362 processed.
3363
3364 * allocatestack.c (STACK_VARIABLES): Initialize them.
3365 * pthread_create.c (__pthread_create_2_1): Initialize pd.
3366
560b4709
UD
33672004-09-02 Jakub Jelinek <jakub@redhat.com>
3368
3369 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
3370 waiters, awake all waiters on the associated mutex.
3371
5eac4760
RM
33722005-09-22 Roland McGrath <roland@redhat.com>
3373
3374 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3375 ../sysdeps/x86_64/hp-timing.h).
3376
a3615024
UD
33772005-08-29 Jakub Jelinek <jakub@redhat.com>
3378
3379 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3380 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3381 (lll_futex_wake_unlock): Define.
3382 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3383 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3384 (lll_futex_wake_unlock): Define.
3385 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3386 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3387 (lll_futex_wake_unlock): Define.
3388 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3389 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3390 (lll_futex_wake_unlock): Define.
3391 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3392 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3393 (lll_futex_wake_unlock): Define.
3394 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3395 lll_futex_wake_unlock.
3396 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3397 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3398 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3399 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3400 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3401 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3402
bf017034
UD
34032005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3404
3405 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3406 Fix typo in register name.
3407
fd4af664
UD
34082005-08-23 Ulrich Drepper <drepper@redhat.com>
3409
8558d715
UD
3410 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3411 Use __sigfillset. Document that sigfillset does the right thing wrt
3412 to SIGSETXID.
fd4af664 3413
3fd1bc67
UD
34142005-07-11 Jakub Jelinek <jakub@redhat.com>
3415
44d75caf 3416 [BZ #1102]
3fd1bc67
UD
3417 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3418 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3419 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3420 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3421 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3422 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3423 in the structure.
3424 * Makefile (tests): Add tst-initializers1.
3425 (CFLAGS-tst-initializers1.c): Set.
3426 * tst-initializers1.c: New test.
3427
553185e2
UD
34282005-07-11 Jakub Jelinek <jakub@redhat.com>
3429
3430 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3431 Make sure __flags are located at offset 48 from the start of the
3432 structure.
3433
8df08cb2
RM
34342005-07-02 Roland McGrath <roland@redhat.com>
3435
3436 * Makeconfig: Comment fix.
3437
253eb3a0
UD
34382005-07-05 Jakub Jelinek <jakub@redhat.com>
3439
3440 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3441 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3442 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3443 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3444 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3445 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3446 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3447 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3448 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3449 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3450
bb6e8ca3
UD
34512005-06-25 Jakub Jelinek <jakub@redhat.com>
3452
3453 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3454 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3455 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3456 fields.
3457 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3458 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3459 field. Put in sysinfo field unconditionally.
3460 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3461 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3462 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3463 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3464 fields.
3465 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3466 * pthread_create.c (__pthread_create_2_1): Use
3467 THREAD_COPY_STACK_GUARD macro.
3468 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3469 tests.
3470 * tst-stackguard1.c: New file.
3471 * tst-stackguard1-static.c: New file.
3472
99c7f870
UD
34732005-06-14 Alan Modra <amodra@bigpond.net.au>
3474
3475 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3476 Invoke CGOTSETUP and CGOTRESTORE.
3477 (CGOTSETUP, CGOTRESTORE): Define.
3478
8074c5c5
RM
34792005-05-29 Richard Henderson <rth@redhat.com>
3480
3481 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3482 (tf_write, tf_writev): Use it.
3483 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3484 the system minimum.
3485
c179df4e
UD
34862005-05-23 Jakub Jelinek <jakub@redhat.com>
3487
3488 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3489 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3490 __librt_*_asynccancel@local.
3491
b0e196a4
UD
34922005-05-17 Alan Modra <amodra@bigpond.net.au>
3493
3494 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3495 all occurrences of JUMPTARGET. Instead append @local to labels.
3496
f7d78e18
UD
34972005-05-20 Jakub Jelinek <jakub@redhat.com>
3498
3499 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3500 size/alignment of struct pthread rather than tcbhead_t.
3501 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3502 Likewise.
3503 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3504 Likewise.
3505 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3506 Likewise.
3507
363dd976
UD
35082005-05-19 Richard Henderson <rth@redhat.com>
3509
3510 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3511 __sync_val_compare_and_swap, not explicit _si variant.
3512 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3513
1ad9da69
UD
35142005-05-03 Ulrich Drepper <drepper@redhat.com>
3515
3516 [BZ #915]
3517 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3518
5085cd1f
UD
35192005-05-03 Jakub Jelinek <jakub@redhat.com>
3520
3521 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3522 .eh_frame section, use cfi_* directives.
3523
ad529081
UD
35242005-04-27 Jakub Jelinek <jakub@redhat.com>
3525
3526 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3527 of "" includes.
3528
dea99685
UD
35292005-04-27 Ulrich Drepper <drepper@redhat.com>
3530
c06aad09 3531 [BZ #1075]
dea99685
UD
3532 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3533 aio_write blocks.
3534
84060bad
RM
35352005-04-27 Roland McGrath <roland@redhat.com>
3536
5e2d8ac8
RM
3537 * Makefile (tests): Remove tst-clock2.
3538
84060bad
RM
3539 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3540 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3541 translating to the kernel clockid_t for our own process/thread clock.
3542
3543 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3544
4a035b9d
RM
35452005-04-15 Jakub Jelinek <jakub@redhat.com>
3546
3547 * old_pthread_cond_init.c: Include <errno.h>.
3548 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3549 process shared or uses clock other than CLOCK_REALTIME.
3550 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3551
edac0e8f
UD
35522005-04-13 David S. Miller <davem@davemloft.net>
3553
3554 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3555 * sysdeps/sparc/sparc64/clone.S: New file.
3556
613d8d52
RM
35572005-04-05 Jakub Jelinek <jakub@redhat.com>
3558
44d75caf 3559 [BZ #1102]
613d8d52
RM
3560 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3561 __inline instead of inline.
3562 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3563
ee618985
UD
35642005-03-31 Jakub Jelinek <jakub@redhat.com>
3565
3566 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3567 functionally equivalent, but shorter instructions.
3568 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3569 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3570 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3571 Likewise.
3572 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3573 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3574 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3575 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3576 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3577 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3578 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3579 Likewise.
3580 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3581 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3582 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3583 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3584 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3585
f850220b
AJ
35862005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3587
3588 * sysdeps/mips/Makefile: New file.
3589 * sysdeps/mips/nptl-sysdep.S: New file.
3590 * sysdeps/mips/tcb-offsets.sym: New file.
3591 * sysdeps/mips/pthread_spin_lock.S: New file.
3592 * sysdeps/mips/pthread_spin_trylock.S: New file.
3593 * sysdeps/mips/pthreaddef.h: New file.
3594 * sysdeps/mips/tls.h: New file.
3595 * sysdeps/mips/jmpbuf-unwind.h: New file.
3596 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3597 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3598 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3599 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3600 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3601 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3602 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3603 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3604 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3605 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3606
1e6da2b0
UD
36072005-03-23 Ulrich Drepper <drepper@redhat.com>
3608
c06aad09 3609 [BZ #1112]
1e6da2b0
UD
3610 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3611 variable to scerr.
3612
5233d576
RM
36132005-03-10 Jakub Jelinek <jakub@redhat.com>
3614
3615 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3616
3053ff11
RM
36172005-02-25 Roland McGrath <roland@redhat.com>
3618
3619 * alloca_cutoff.c: Correct license text.
3620 * tst-unload.c: Likewise.
3621 * sysdeps/pthread/allocalim.h: Likewise.
3622 * sysdeps/pthread/pt-initfini.c: Likewise.
3623 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3624 * sysdeps/pthread/bits/sigthread.h: Likewise.
3625 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3626 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3627
9cfe5381
RM
36282005-02-16 Roland McGrath <roland@redhat.com>
3629
3630 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3631 Use unsigned int * for ptr_nthreads.
3632
7de00121
RM
36332005-02-14 Alan Modra <amodra@bigpond.net.au>
3634
20d511e0 3635 [BZ #721]
7de00121
RM
3636 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3637 gcc4.
3638
4bae262d
UD
36392005-02-07 Richard Henderson <rth@redhat.com>
3640
613d8d52 3641 [BZ #787]
4bae262d
UD
3642 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3643 argument.
3644
75df54b7
RM
36452004-11-03 Marcus Brinkmann <marcus@gnu.org>
3646
3647 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3648 order of arguments in invocation of atomic_add_zero.
3649
ea9c93cc
UD
36502005-01-26 Jakub Jelinek <jakub@redhat.com>
3651
9cfe5381 3652 [BZ #737]
ea9c93cc
UD
3653 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3654 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3655 at least gotntpoff relocation and addition.
3656 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3657 Likewise.
3658 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3659 Likewise.
3660 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3661 Likewise.
3662
9dcafc55
UD
36632005-01-06 Ulrich Drepper <drepper@redhat.com>
3664
3665 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3666 entry for static tls deallocation fix.
3667 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3668 also contains information whether the memory pointed to is static
3669 TLS or not.
3670 * sysdeps/i386/tls.h: Likewise.
3671 * sysdeps/ia64/tls.h: Likewise.
3672 * sysdeps/powerpc/tls.h: Likewise.
3673 * sysdeps/s390/tls.h: Likewise.
3674 * sysdeps/sh/tls.h: Likewise.
3675 * sysdeps/sparc/tls.h: Likewise.
3676 * sysdeps/x86_64/tls.h: Likewise.
3677
a71c152c
UD
36782004-12-27 Ulrich Drepper <drepper@redhat.com>
3679
3680 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3681
d143c49e
UD
36822004-12-21 Jakub Jelinek <jakub@redhat.com>
3683
3684 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3685 %esp.
3686 * Makefile (tests): Add tst-align2.
3687 * tst-align2.c: New test.
3688 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3689 -mpreferred-stack-boundary=4.
3690
50130ded
RM
36912004-12-18 Roland McGrath <roland@redhat.com>
3692
3693 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3694 New file removed withdrawn for the moment.
3695
cbc53df0
RH
36962004-12-17 Richard Henderson <rth@redhat.com>
3697
3698 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3699 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3700
fb9d5c73
UD
37012004-12-16 Ulrich Drepper <drepper@redhat.com>
3702
03332aa6
UD
3703 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3704 Increased PTHREAD_STACK_MIN.
3705
fb9d5c73
UD
3706 * tst-context1.c (stacks): Use bigger stack size.
3707
e853ea00
UD
37082004-12-16 Jakub Jelinek <jakub@redhat.com>
3709
3710 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3711 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3712
f23673fc
UD
37132004-12-15 Jakub Jelinek <jakub@redhat.com>
3714
3715 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3716 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3717 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3718
917fbe70
UD
37192004-12-15 Ulrich Drepper <drepper@redhat.com>
3720
3721 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3722
1f9d7c27
UD
37232004-12-14 Ulrich Drepper <drepper@redhat.com>
3724
3725 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3726 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3727
3728 * tst-getpid1.c: If child crashes, report this first. Print which
3729 signal.
3730
bf7c04cd
UD
37312004-12-09 Ulrich Drepper <drepper@redhat.com>
3732
3733 * init.c (__pthread_initialize_minimal_internal): Also unblock
3734 SIGSETXID.
3735
37362004-12-01 Jakub Jelinek <jakub@redhat.com>
3737
3738 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3739 _POSIX_THREAD_CPUTIME): Define to 0.
3740 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3741 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3742 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3743 __timer_signal_thread_tclk): Remove.
3744 (init_module): Remove their initialization.
3745 (thread_cleanup): Remove their cleanup assertions.
3746 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3747 __timer_signal_thread_tclk): Remove.
3748 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3749 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3750 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3751
484cc801
UD
37522004-12-07 Jakub Jelinek <jakub@redhat.com>
3753
3754 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3755 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3756
3757 * Makefile (tests): Add tst-getpid2.
3758 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3759 (do_test): Use it. Use __clone2 instead of clone on ia64.
3760 * tst-getpid2.c: New test.
3761
2da9a6a1
UD
37622004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3763
3764 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3765
1ff241b8
UD
37662004-12-04 Ulrich Drepper <drepper@redhat.com>
3767
3768 * Makefile (tests): Add tst-getpid1.
3769 * tst-getpid1.c: New file.
3770 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3771 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3772
3f488b9c
RM
37732004-12-02 Roland McGrath <roland@redhat.com>
3774
3775 * Makefile (libpthread-nonshared): Variable removed.
3776 ($(objpfx)libpthread_nonshared.a): Target removed.
3777 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3778 These are now handled by generic magic from
3779 libpthread-static-only-routines being set.
3780
597ce09c
UD
37812004-11-27 Ulrich Drepper <drepper@redhat.com>
3782
3783 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3784 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3785 _POSIX_THREAD_PRIO_PROTECT): Define.
3786 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3787 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3788 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3789
60e4523a
UD
37902004-11-26 Jakub Jelinek <jakub@redhat.com>
3791
3792 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3793 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3794 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3795 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): 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
f1f2cafc
UD
38002004-11-24 Ulrich Drepper <drepper@redhat.com>
3801
bca2d208
UD
3802 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3803
f1f2cafc
UD
3804 * Makefile (libpthread-routines): Add pthread_setschedprio.
3805 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3806 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3807 * pthread_setschedprio.c: New file.
3808
b639d0c9
UD
38092004-11-20 Jakub Jelinek <jakub@redhat.com>
3810
ef2bb413
UD
3811 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3812 * pthread_cancel.c (pthread_create): Likewise.
3813
b639d0c9
UD
3814 * Makefile (libpthread-routines): Add vars.
3815 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3816 * init.c (__default_stacksize, __is_smp): Remove.
3817 * vars.c: New file.
3818 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3819 and define a wrapper macro.
3820 (PTHREAD_STATIC_FN_REQUIRE): Define.
3821 * allocatestack.c (__find_thread_by_id): Undefine.
3822 * pthread_create (__pthread_keys): Remove.
3823 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3824 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3825 PTHREAD_STATIC_FN_REQUIRE.
3826
3defcff3
UD
38272004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3828
3829 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3830 parameter to REGISTER macro.
3831
ec188f92
RM
38322004-11-17 Roland McGrath <roland@redhat.com>
3833
3834 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3835 Make sure SIGCANCEL is blocked as well.
3836
ccd8de9a
UD
38372004-11-10 Jakub Jelinek <jakub@redhat.com>
3838
3839 * sysdeps/pthread/setxid.h: New file.
3840 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3841 (struct xid_command): Add forward decl.
3842 (struct pthread_functions): Change return type of __nptl_setxid hook
3843 to int.
3844 * pthreadP.h (__nptl_setxid): Change return type to int.
3845 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3846 calling thread, return its return value and set errno on failure.
3847 * descr.h (struct xid_command): Change id type to long array.
3848
3849 * Makefile: Add rules to build and test tst-setuid1 and
3850 tst-setuid1-static.
3851 * tst-setuid1.c: New test.
3852 * tst-setuid1-static.c: New test.
3853
ed2ced8a
UD
38542004-11-10 Jakub Jelinek <jakub@redhat.com>
3855
3856 * Makefile (tests): Add tst-exit3.
3857 * tst-exit3.c: New test.
3858
948603ee
UD
38592004-11-09 Ulrich Drepper <drepper@redhat.com>
3860
3861 * Makefile (tests): Add tst-exit2.
3862 * tst-exit2.c: New file.
3863
ba5ffd2a
RM
38642004-11-09 Roland McGrath <roland@redhat.com>
3865
3866 [BZ #530]
3867 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3868 here, before calling clone.
3869 * pthread_create.c (start_thread): Don't do it here.
3870
c4d7bd39
RM
38712004-11-02 Jakub Jelinek <jakub@redhat.com>
3872
3873 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3874
543fb0c8
UD
38752004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3876
3877 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3878 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3879 assembler warning.
3880
a1fbd858
UD
38812004-10-28 Jakub Jelinek <jakub@redhat.com>
3882
3883 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3884 if sched_priority is not between minprio and maxprio.
3885
c2a4357a
UD
38862004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3887
3888 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3889 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3890
3891 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3892 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3893
78d8d211
UD
38942004-10-24 Ulrich Drepper <drepper@redhat.com>
3895
3896 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3897 not-cancelable I/O functions.
3898
dd28590f
UD
38992004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3900
3901 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3902 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3903 make sure 2 is stored in the futex and we looked at the old value.
3904 Fix a few other problems to return the correct value.
3905
f8c97af7
RH
39062004-10-14 Richard Henderson <rth@redhat.com>
3907
3908 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3909 make gcc4 happy.
3910
3feb8efa
UD
39112004-10-06 Jakub Jelinek <jakub@redhat.com>
3912
3913 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3914 of pthread-functions.h and pthreaddef.h.
3915 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3916
3917 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3918 Change __data.__nwaiters from int to unsigned int.
3919
3920 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3921 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3922
3923 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3924 before return type.
3925
3926 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3927 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3928
67060ef5
UD
39292004-10-06 Ulrich Drepper <drepper@redhat.com>
3930
3931 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3932 test fails, remove message queue.
3933 (tf_msgsnd): Likewise.
3934
f38a3086
UD
39352004-10-05 Jakub Jelinek <jakub@redhat.com>
3936
3937 * tst-clock1.c: Change #ifdef to #if defined.
3938 * tst-clock2.c: Likewise.
3939 * tst-cond11.c: Likewise.
3940
2c03b6db
UD
3941 * sysdeps/pthread/timer_create.c (timer_create): Use
3942 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
3943 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
3944 THREAD_CPUTIME.
3945
6ab5f50d
UD
39462004-10-05 Jakub Jelinek <jakub@redhat.com>
3947
3948 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
3949 _POSIX_THREAD_CPUTIME): Define to 0.
3950
e4bb4853
UD
39512004-10-04 Ulrich Drepper <drepper@redhat.com>
3952
3953 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
3954 and _POSIX_THREAD_CPUTIME to zero.
3955 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3956 * tst-barrier2.c: Fix testing for POSIX feature.
3957 * tst-clock1.c: Likewise.
3958 * tst-clock2.c: Likewise.
3959 * tst-cond11.c: Likewise.
3960 * tst-cond4.c: Likewise.
3961 * tst-cond6.c: Likewise.
3962 * tst-flock2.c: Likewise.
3963 * tst-mutex4.c: Likewise.
3964 * tst-mutex9.c: Likewise.
3965 * tst-rwlock12.c: Likewise.
3966 * tst-rwlock4.c: Likewise.
3967 * tst-signal1.c: Likewise.
3968 * tst-spin2.c: Likewise.
3969 * sysdeps/pthread/posix-timer.h: Likewise.
3970 * sysdeps/pthread/timer_create.c: Likewise.
3971 * sysdeps/pthread/timer_routines.c: Likewise.
3972
c1b48791
UD
39732004-10-01 Ulrich Drepper <drepper@redhat.com>
3974
927f0673
UD
3975 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3976 (__lll_mutex_timedlock_wait): Address futex correctly.
3977
c1b48791 3978 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 3979 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
3980 make sure 2 is stored in the futex and we looked at the old value.
3981 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
3982 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
3983 which might very well made the code not working at all before.
7b87aca6 3984 [BZ #417]
c1b48791 3985
e9f4e844
UD
39862004-09-28 Ulrich Drepper <drepper@redhat.com>
3987
4f21c95d
UD
3988 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
3989 allow SIGSETXID to be sent.
3990 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
3991 for SIGSETXID to be defined.
3992 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
3993 SIGSETXID cannot be blocked.
3994
e9f4e844
UD
3995 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
3996 Add __extension__ to long long types.
3997 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3998 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3999 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4000 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4001 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
4002 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4003 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4004
5f66b766
UD
40052004-09-25 Ulrich Drepper <drepper@redhat.com>
4006
4007 * descr.h (struct pthread): Add stopped_start field.
4008 * sysdeps/pthread/createthread.c (create_thread): Set
4009 start_stopped flag in descriptor for new thread appropriately.
4010 * pthread_create.c (start_thread): Only take lock to be stopped on
4011 startup if stopped_start flag says so.
4012
362038b0
UD
40132004-09-24 Ulrich Drepper <drepper@redhat.com>
4014
3f80a99b
UD
4015 * pthread_create.c (__pthread_create_2_1): Remember whether thread
4016 is created detached and if yes, do not try to free the stack in case
4017 the thread creation failed.
4018 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
4019 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
4020 case there has been no error. [BZ #405]
4021
362038b0
UD
4022 * pthread_create.c (start_thread): Don't wait for scheduler data
4023 etc to be set at the beginning of the function. The cancellation
4024 infrastructure must have been set up. And enable async
4025 cancellation before potentially going to sleep. [BZ #401]
4026
65f0beb9
UD
40272004-09-20 Ulrich Drepper <drepper@redhat.com>
4028
3c12b91a 4029 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
4030 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
4031 for now.
4032 * Makefile: Don't build pthread_set*id code for now.
4033
2edb61e3
UD
40342004-09-19 Ulrich Drepper <drepper@redhat.com>
4035
4036 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
4037 internal use.
4038 * allocatestack.c (__nptl_setxid): New function.
4039 * descr.h (struct xid_command): Define type.
4040 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
4041 (sighandler_setxid): New function.
4042 (__pthread_initialize_minimal): Register sighandler_setxid for
4043 SIGCANCEL.
4044 * pt-allocrtsig.c: Update comment.
4045 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
4046 Declare __nptl_setxid.
4047 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
4048 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
4049 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4050 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4051 and pthread_setresuid_np.
4052 * pthread_setgid_np.c: New file.
4053 * pthread_setuid_np.c: New file.
4054 * pthread_setegid_np.c: New file.
4055 * pthread_seteuid_np.c: New file.
4056 * pthread_setregid_np.c: New file.
4057 * pthread_setreuid_np.c: New file.
4058 * pthread_setresgid_np.c: New file.
4059 * pthread_setresuid_np.c: New file.
4060 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
4061 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4062 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4063 and pthread_setresuid_np.
4064 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
4065 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
4066 pthread_setregid, and pthread_setresgid.
4067
1ab1fa6f
UD
40682004-09-18 Ulrich Drepper <drepper@redhat.com>
4069
4070 * allocatestack.c (allocate_stack): Return EAGAIN instead of
4071 ENOMEM when out of memory.
4072
ae9e6b36
RM
40732004-09-10 Roland McGrath <roland@redhat.com>
4074
4075 [BZ #379]
4076 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
4077 code, since we don't try to use the broken CLONE_STOPPED any more.
4078 * pthread_create.c (start_thread): Likewise.
4079
424bd2f8
RH
40802004-09-15 Richard Henderson <rth@redhat.com>
4081
4082 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
4083
17b8a52d
UD
40842004-09-01 David Mosberger <davidm@hpl.hp.com>
4085
4086 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
4087 (__libc_unwind_longjmp): Delete macro and declare as function.
4088 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
4089 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
4090 nptl directory.
4091 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
4092 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
4093 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
4094
ccc63b07
UD
40952004-09-12 Ulrich Drepper <drepper@redhat.com>
4096
4097 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
4098 for __USE_XOPEN2K.
4099 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
4100 types also for __USE_XOPEN2K.
4101 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4102 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4103 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4104 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4105 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4106 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4107 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4108 [BZ #320]
4109
31f93b3b
UD
41102004-09-08 Ulrich Drepper <drepper@redhat.com>
4111
4112 * sysdeps/pthread/pthread.h
4113 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
4114 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
4115 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
4116 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
4117 [BZ #375]
4118
e0329987
UD
41192004-09-07 Ulrich Drepper <drepper@redhat.com>
4120
590b40f7
UD
4121 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
4122 PSEUDO to be used with . prefix.
4123
67254a97
UD
4124 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
4125 Use atomic_increment instead of atomic_exchange_and_add.
4126 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
4127 Likewise.
4128 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4129 Likewise.
4130 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
4131 Likewise.
4132
4133 * allocatestack.c (allocate_stack): Use atomic_increment_val
4134 instead of atomic_exchange_and_add.
4135 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
4136 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
4137 Likewise.
4138 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4139 Likewise.
4140
e0329987
UD
4141 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
4142 the initialization function might throw.
4143
42d86dd6 41442005-09-05 Richard Henderson <rth@redhat.com>
e0329987 4145
42d86dd6
RH
4146 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4147 Move definition inside libpthread, libc, librt check. Provide
4148 definition for rtld.
4149
73f7c32c
UD
41502004-09-02 Ulrich Drepper <drepper@redhat.com>
4151
f76c8499
UD
4152 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
4153 * sysdeps/i386/jmpbuf-unwind.h: Likewise
4154 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
4155 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
4156 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
4157 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
4158 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
4159 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
4160 * unwind.c: Use it.
4161
73f7c32c
UD
4162 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4163 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
4164 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4165 Likewise.
4166 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4167 Decrement __nwaiters. If pthread_cond_destroy has been called and
4168 this is the last waiter, signal pthread_cond_destroy caller and
4169 avoid using the pthread_cond_t structure after unlock.
4170 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4171 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4172 Read clock type from the least significant bits of __nwaiters instead
4173 of __clock.
4174 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4175 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
4176
41772004-08-31 Jakub Jelinek <jakub@redhat.com>
4178
4179 [BZ #342]
4180 * Makefile (tests): Add tst-cond20 and tst-cond21.
4181 * tst-cond20.c: New test.
4182 * tst-cond21.c: New test.
4183 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4184 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
4185 it unsigned int.
4186 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4187 Likewise.
4188 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4189 (pthread_cond_t): Likewise.
4190 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4191 Likewise.
4192 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4193 Likewise.
4194 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4195 Likewise.
4196 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
4197 (cond_nwaiters): New.
4198 (clock_bits): New.
4199 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
4200 if there are waiters not signalled yet.
4201 Wait until all already signalled waiters wake up.
4202 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
4203 __nwaiters. If pthread_cond_destroy has been called and this is the
4204 last waiter, signal pthread_cond_destroy caller and avoid using
4205 the pthread_cond_t structure after unlock.
4206 (__pthread_cond_wait): Increment __nwaiters in the beginning,
4207 decrement it when leaving. If pthread_cond_destroy has been called
4208 and this is the last waiter, signal pthread_cond_destroy caller.
4209 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4210 Likewise. Read clock type from the least significant bits of
4211 __nwaiters instead of __clock.
4212 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
4213 whether clock ID can be encoded in COND_CLOCK_BITS bits.
4214 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
4215 clock type just from the last COND_CLOCK_BITS bits of value.
4216 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
4217 instead of __clock, just from second bit of condattr's value.
4218
409f7493
UD
42192004-08-30 Jakub Jelinek <jakub@redhat.com>
4220
4221 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
4222 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
4223 != 64.
4224 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4225
92c6ccd1
RM
42262004-08-15 Roland McGrath <roland@frob.com>
4227
4228 * pthread_atfork.c: Update copyright terms including special exception
4229 for these trivial files, which are statically linked into executables
4230 that use dynamic linking for the significant library code.
4231
4d004cfb
UD
42322004-08-09 Jakub Jelinek <jakub@redhat.com>
4233
4234 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
4235 pthread_rwlock_rdlock.
4236 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
4237 Decrease __nr_readers_queued after reacquiring lock.
4238 * sysdeps/pthread/pthread_rwlock_timedrdlock
4239 (pthread_rwlock_timedrdlock): Likewise.
4240 Reported by Bob Cook <bobcook47@hotmail.com>.
4241
90595fb6
RM
42422004-08-11 Jakub Jelinek <jakub@redhat.com>
4243
4244 * tst-rwlock14.c (tf): Read main thread handle from *ARG
4245 before pthread_barrier_wait.
4246
fa46f7ab
UD
42472004-08-07 Ulrich Drepper <drepper@redhat.com>
4248
4249 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4250 Remove unnecessary exception handling data.
4251
15ef4b55
UD
42522004-07-23 Jakub Jelinek <jakub@redhat.com>
4253
4254 [BZ #284]
4255 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
4256 instead of clockid_t.
4257
4fb907b7
RM
42582004-07-21 Roland McGrath <roland@redhat.com>
4259
4260 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
4261
42622004-07-19 Roland McGrath <roland@redhat.com>
4263
4264 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
4265
8f73811b
RM
42662004-07-02 Roland McGrath <roland@redhat.com>
4267
4268 * configure: Don't exit.
4269
290639c3
UD
42702004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4271
4272 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4273 (__pthread_cond_timedwait): Check for invalid nanosecond in
4274 timeout value.
4275
8e5aaad9
UD
42762004-07-07 Ulrich Drepper <drepper@redhat.com>
4277
4278 * Makefile: Add rules to build and run tst-fini1.
4279 * tst-fini1.c: New file.
4280 * tst-fini1mod.c: New file.
4281
ce6e047f
UD
42822004-07-05 Ulrich Drepper <drepper@redhat.com>
4283
4284 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
4285 if no cancellation support is needed.
4286 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4287 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4288 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4289 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4290 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4291 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4292 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4293 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4294 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4295
4296 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
4297 only if not already defined.
4298
9b9ef823
UD
42992004-07-05 Jakub Jelinek <jakub@redhat.com>
4300
2dd18ce2
UD
4301 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
4302 constraint "m" instead of "0" for futex.
4303
9b9ef823
UD
4304 * shlib-versions: Add powerpc64-.*-linux.*.
4305
38205402
UD
43062004-07-04 Jakub Jelinek <jakub@redhat.com>
4307
4308 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
4309 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
4310 for valid tv_nsec.
4311 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
4312 1 billion and 64-bit tv_nsec which is valid when truncated to 32
4313 bits.
4314
78a9c837
RM
43152004-06-29 Roland McGrath <roland@redhat.com>
4316
4317 * Banner: NPTL no longer has its own version number.
4318 * Makefile (nptl-version): Variable removed.
4319 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
4320 using $(version), the glibc version number.
4321
d3d35527
UD
43222004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4323
4324 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4325 Fix branch offset for a PLT entry.
4326 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
4327 Likewise.
4328 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4329 Likewise.
4330 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
4331 Likewise.
4332 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
4333 Likewise.
4334
346f18ae
UD
43352004-06-28 Jakub Jelinek <jakub@redhat.com>
4336
4337 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
4338 unconditionally.
4339
f3a19754
UD
43402004-06-28 Jakub Jelinek <jakub@redhat.com>
4341
4342 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4343 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
4344 instead of tv_sec.
4345 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
4346 (pthread_rwlock_timedrdlock): Likewise.
4347
539842a4
UD
43482004-06-22 Jakub Jelinek <jakub@redhat.com>
4349
4350 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4351 Set __r7 to val, not mutex.
4352
46f4c578
UD
43532004-06-27 Ulrich Drepper <drepper@redhat.com>
4354
4355 * Makefile: Add rules to build tst-rwlock14.
4356 * tst-rwlock14.c: New file.
4357
43582004-06-24 Boris Hu <boris.hu@intel.com>
4359
4360 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
4361 check.
4362 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4363
9898e99c
AJ
43642004-06-19 Andreas Jaeger <aj@suse.de>
4365
4366 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
4367 assembler in last patch.
4368
7c3164bc
UD
43692004-06-17 Ulrich Drepper <drepper@redhat.com>
4370
4371 * sysdeps/pthread/pthread_cond_timedwait.c
4372 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4373 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4374 (__pthread_cond_timedwait): Check for invalid nanosecond in
4375 timeout value.
4376 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4377 * tst-cond19.c: New file.
4378 * Makefile: Add rules to build and run tst-cond19.
4379
72e61500
UD
43802004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4381
4382 * tst-context1.c (GUARD_PATTERN): Defined.
4383 (tst_context_t): Define struct containing ucontext_t & guard words.
4384 (ctx): Declare as an array of tst_context_t.
4385 (fct): Verify uc_link & guard words are still valid.
4386 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4387
7c370086
UD
43882004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4389
4390 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4391 Add __data.__futex field, reshuffle __data.__clock.
4392 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4393 (__pthread_cond_signal): Increment __futex at the same time as
4394 __wakeup_seq or __total_seq. Pass address of __futex instead of
4395 address of low 32-bits of __wakeup_seq to futex syscall.
4396 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4397 (__pthread_cond_wait): Likewise. Pass __futex value from before
4398 releasing internal lock to FUTEX_WAIT.
4399 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4400 (__pthread_cond_timedwait): Likewise.
4401 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4402 (FUTEX_CMP_REQUEUE): Define.
4403 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4404 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4405 Pass __futex value from before the unlock and __futex address instead
4406 of address of low 32-bits of __wakeup_seq to futex syscall.
4407 Fallback to FUTEX_WAKE all on any errors.
4408
a9e526e7
RM
44092004-06-08 Jakub Jelinek <jakub@redhat.com>
4410
4411 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4412 comment typo.
4413 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4414 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4415 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4416 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4417 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4418
f1847a84
RM
44192004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4420
4421 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4422 Add memory clobber to inline assembly.
4423 (__lll_mutex_trylock): Likewise.
4424 (__lll_mutex_cond_trylock): Likewise.
4425
f7c81e1a
UD
44262004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4427
4428 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4429 Pass val argument as 6th system call argument in %r7.
4430
75fccede
UD
44312004-05-21 Jakub Jelinek <jakub@redhat.com>
4432
4433 * Makefile (tests): Add tst-cond16.
4434 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4435 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4436 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4437 Add __data.__futex field, reshuffle __data.__clock.
4438 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
4439 (__pthread_cond_signal): Increment __futex at the same time as
4440 __wakeup_seq or __total_seq. Pass address of __futex instead of
4441 address of low 32-bits of __wakeup_seq to futex syscall.
4442 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
4443 (__pthread_cond_wait): Likewise. Pass __futex value from before
4444 releasing internal lock to FUTEX_WAIT.
4445 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
4446 (__pthread_cond_timedwait): Likewise.
4447 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
4448 (FUTEX_CMP_REQUEUE): Define.
4449 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4450 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4451 Pass __futex value from before the unlock and __futex address instead
4452 of address of low 32-bits of __wakeup_seq to futex syscall.
4453 Fallback to FUTEX_WAKE all on any errors.
4454 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4455 Define.
4456 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4457 internally. Return non-zero if error, zero if success.
4458 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4459 Add __data.__futex field, reshuffle __data.__clock.
4460 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4461 Define.
4462 (lll_futex_requeue): Add val argument, return 1 unconditionally
4463 for the time being.
4464 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4465 Add __data.__futex field, reshuffle __data.__clock.
4466 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4467 Define.
4468 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4469 internally. Return non-zero if error, zero if success.
4470 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4471 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4472 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4473 Define.
4474 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4475 internally. Return non-zero if error, zero if success.
4476 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4477 Add __data.__futex field, reshuffle __data.__clock.
4478 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4479 Define.
4480 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4481 internally. Return non-zero if error, zero if success.
4482 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4483 Add __data.__futex field, reshuffle __data.__clock.
4484 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4485 Add __data.__futex field, reshuffle __data.__clock.
4486 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4487 Increment __futex at the same time as __wakeup_seq or __total_seq.
4488 Pass address of __futex instead of address of low 32-bits of
4489 __wakeup_seq to futex syscall.
4490 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4491 Pass __futex value from before releasing internal lock
4492 to FUTEX_WAIT.
4493 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4494 Likewise. Avoid unnecessary shadowing of variables.
4495 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4496 Set __futex to 2 * __total_seq. Pass __futex value from before the
4497 unlock and __futex address instead of address of low 32-bits of
4498 __wakeup_seq to futex_requeue macro, adjust for new return value
4499 meaning.
4500 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4501 (__pthread_cond_signal): Increment __futex at the same time as
4502 __wakeup_seq or __total_seq. Pass address of __futex instead of
4503 address of low 32-bits of __wakeup_seq to futex syscall.
4504 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4505 (__pthread_cond_wait): Likewise. Pass __futex value from before
4506 releasing internal lock to FUTEX_WAIT.
4507 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4508 (__pthread_cond_timedwait): Likewise.
4509 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4510 (FUTEX_CMP_REQUEUE): Define.
4511 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4512 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4513 Pass __futex value from before the unlock and __futex address instead
4514 of address of low 32-bits of __wakeup_seq to futex syscall.
4515 Fallback to FUTEX_WAKE all on any errors.
4516
45172004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4518
4519 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4520 Add nop to align the end of critical section.
4521 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4522
fbf86dda
UD
45232004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4524
4525 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4526 Add __broadcast_seq field.
4527 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4528 all waiters as woken with woken_seq and bump broadcast counter.
4529 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4530 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4531 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4532 Comment typo fixes. Avoid returning -ETIMEDOUT.
4533
45342004-06-01 Ulrich Drepper <drepper@redhat.com>
4535
4536 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4537 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4538 Reported by Kaz Kojima.
4539
ffdd5e50
UD
45402004-05-25 Jakub Jelinek <jakub@redhat.com>
4541
4542 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4543
3abc82c8
UD
45442004-05-21 Jakub Jelinek <jakub@redhat.com>
4545
4546 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4547 __broadcast_seq with bc_seq after acquiring internal lock instead of
4548 before it.
4549
893a3511
UD
45502004-05-18 Jakub Jelinek <jakub@redhat.com>
4551
4552 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4553 compilation.
4554 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4555 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4556 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4557 (pthread_cond_t): Add __data.__broadcast_seq field.
4558 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4559 (FRAME_SIZE): Define.
4560 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4561 Comment typo fixes.
4562 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4563 Define.
4564 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4565 typo fixes.
4566 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4567 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4568 fixes.
4569
45702004-05-18 Ulrich Drepper <drepper@redhat.com>
4571
4572 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4573 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4574 Add __broadcast_seq field.
4575 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4576 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4577 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4578 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4579 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4580 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4581 all waiters as woken with woken_seq and bump broadcast counter.
4582 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4583 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4584 __broadcast_seq field.
4585 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4586 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4587 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4588 * pthread_cond_init.c: Initialize __broadcast_seq field.
4589 * Makefile (tests): Add tst-cond17 and tst-cond18.
4590 Add .NOTPARALLEL goal.
4591 * tst-cond16.c: New file. From Jakub.
4592 * tst-cond17.c: New file. From Jakub.
4593 * tst-cond18.c: New file. From Jakub.
4594
4123718e
UD
45952004-05-16 Ulrich Drepper <drepper@redhat.com>
4596
4597 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4598 unwind info.
4599
4600 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4601 Parametrize frame size. Correct some unwind info.
4602 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4603
2d7ae210
UD
46042004-05-04 Jakub Jelinek <jakub@redhat.com>
4605
4606 * tst-stack3.c: Note testing functionality beyond POSIX.
4607
50c2b6d7
UD
46082004-05-04 Jakub Jelinek <jakub@redhat.com>
4609
4610 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4611 Change conditional from ifdef to if.
4612
27b02589
UD
46132004-04-23 Jakub Jelinek <jakub@redhat.com>
4614
4615 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4616 SYSDEP_CANCEL_ERROR): Define.
4617 (PSEUDO): Use it.
4618
4bb8fc33
UD
46192004-05-01 Jakub Jelinek <jakub@redhat.com>
4620
4621 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4622
f9a06dc1
UD
46232004-04-20 Jakub Jelinek <jakub@redhat.com>
4624
4625 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4626
d3b52028
UD
46272004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4628
4629 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4630 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4631 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4632 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4633
a5dd0a6c
UD
46342004-04-19 Ulrich Drepper <drepper@redhat.com>
4635
4636 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4637 thread has all signals blocked.
4638
620c3354
AJ
46392004-04-18 Andreas Jaeger <aj@suse.de>
4640
4641 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4642 (SEM_VALUE_MAX): Add missing brace.
4643
1683daeb
UD
46442004-04-17 Jakub Jelinek <jakub@redhat.com>
4645
4646 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4647 in rt subdir.
4648 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4649 * sysdeps/pthread/tst-mqueue8x.c: New test.
4650 * tst-cancel4.c: Update comment about message queues.
4651
4652 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4653 return it_value { 0, 0 }.
4654 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4655 like SIGEV_SIGNAL.
4656 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4657 assertion for SIGEV_NONE.
4658 (thread_attr_compare): Compare all attributes, not just a partial
4659 subset.
4660
46612004-04-17 Jakub Jelinek <jakub@redhat.com>
4662
4663 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4664
f532641d
UD
46652004-04-17 Ulrich Drepper <drepper@redhat.com>
4666
4667 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4668 Just use a plain number.
4669 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4670 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4671 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4672 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4673 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4674 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4675 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4676
7eb7fdda
UD
46772004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4678
53392906
UD
4679 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4680 frame info.
4681 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4682
d7ba1313
UD
46832004-04-15 Jakub Jelinek <jakub@redhat.com>
4684
4685 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4686 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4687 of calling sigwaitinfo.
4688
5adac0e4
UD
46892004-04-16 Ulrich Drepper <drepper@redhat.com>
4690
4691 * allocatestack.c (allocate_stack): Set reported_guardsize
4692 unconditionally.
4693 * pthread_getattr_np.c (pthread_getattr_np): Use
4694 reported_guardsize instead of guardsize.
4695 * descr.h (struct pthread): Add reported_guardsize field.
4696
f93fa7d4
UD
46972004-04-13 Jakub Jelinek <jakub@redhat.com>
4698
4699 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4700
1b82c6c7
UD
47012004-04-12 Ulrich Drepper <drepper@redhat.com>
4702
4703 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4704
47052004-04-08 Jakub Jelinek <jakub@redhat.com>
4706
4707 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4708 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4709 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4710 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4711 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4712 Define.
4713 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4714 (_POSIX_MESSAGE_PASSING): Define.
4715 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4716 (_POSIX_MESSAGE_PASSING): Define.
4717 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4718 (_POSIX_MESSAGE_PASSING): Define.
4719
e6eb894e
UD
47202004-04-04 Ulrich Drepper <drepper@redhat.com>
4721
4722 * tst-context1.c (fct): Check whether correct stack is used.
4723
1e084487
UD
47242004-04-03 Ulrich Drepper <drepper@redhat.com>
4725
4e73e115
UD
4726 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4727 matching constraints for asm mem parameters.
4728
1e084487
UD
4729 * tst-clock2.c (tf): Don't define unless needed.
4730
feca5e0b
UD
47312004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4732
4733 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4734 $(gnulib).
4735
3fa21fd8
UD
47362004-03-30 Ulrich Drepper <drepper@redhat.com>
4737
4738 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4739 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4740 * pthreadP.h: Declare __nptl_deallocate_tsd.
4741 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4742 Adjust caller.
4743
4744 * Makefile (tests): Add tst-tsd5.
4745 * tst-tsd5.c: New file.
4746
8e32efa6
UD
47472004-03-29 Ulrich Drepper <drepper@redhat.com>
4748
4749 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4750 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4751 is SHLIB_COMPAT check.
4752 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4753 (__pthread_attr_getaffinity_old): Likewise.
4754 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4755 (__pthread_getaffinity_old): Likewise.
4756 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4757 (__pthread_setaffinity_old): Likewise.
4758
eec8b6ca
UD
47592004-03-26 Ulrich Drepper <drepper@redhat.com>
4760
4761 * allocatestack.c (_make_stacks_executable): Call
4762 _dl_make_stack_executable first.
4763
db2f05ba
RM
47642004-03-24 Roland McGrath <roland@redhat.com>
4765
4766 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4767 constraint instead of "0".
4768
6abbc501
UD
47692004-03-24 Ulrich Drepper <drepper@redhat.com>
4770
68dc4dcb
UD
4771 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4772 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4773
6abbc501
UD
4774 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4775 code to avoid warning.
4776
865e14d9
AJ
47772004-03-24 Andreas Jaeger <aj@suse.de>
4778
4779 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4780 (__pthread_attr_setaffinity_old): Remove const.
4781
16b06b70
UD
47822004-03-23 Ulrich Drepper <drepper@redhat.com>
4783
2c0b891a
UD
4784 * sysdeps/unix/sysv/linux/smp.h: New file.
4785 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4786 * init.c: Define __is_smp.
4787 (__pthread_initialize_minimal_internal): Call is_smp_system to
4788 initialize __is_smp.
4789 * pthreadP.h: Declare __is_smp.
4790 Define MAX_ADAPTIVE_COUNT is necessary.
4791 * pthread_mutex_init.c: Add comment regarding __spins field.
4792 * pthread_mutex_lock.c: Implement adaptive mutex type.
4793 * pthread_mutex_timedlock.c: Likewise.
4794 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4795 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4796 Add __spins field.
4797 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4798 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4799 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4800 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4801 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4802 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4803 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4804 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4805 lll_mutex_cond_trylock.
4806 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4807 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4808 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4809 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4810 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4811 Define BUSY_WAIT_NOP.
4812 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4813 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4814
4815 * tst-mutex5.c: Add support for testing adaptive mutexes.
4816 * tst-mutex7.c: Likewise.
4817 * tst-mutex5a.c: New file.
4818 * tst-mutex7a.c: New file.
4819 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4820
565699e4
UD
4821 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4822 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4823 vgettimeofday call might destroy the content.
565699e4 4824
7fe1586f
UD
4825 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4826 @pause in the loop.
4827
e408880b
UD
4828 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4829 No need to restrict type of ret. Make it int. Add comment.
4830
16b06b70
UD
4831 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4832 Remove unnecessary setne instruction.
4833
61645263
UD
48342004-03-22 Jakub Jelinek <jakub@redhat.com>
4835
4836 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4837 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4838 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4839 If realloc fails, break out of the loop.
4840
e3d4c585
AJ
48412004-03-20 Andreas Jaeger <aj@suse.de>
4842
4843 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4844 (__pthread_setaffinity_old): Fix interface.
4845 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4846 (__pthread_getaffinity_old): Likewise.
4847
4848 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4849 (__pthread_setaffinity_new): Remove duplicate declaration.
4850
3abb1ff7
UD
48512004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4852
4853 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4854 the return value to a safe register.
4855 (CDISABLE): Set the function argument correctly.
4856
07bd2a3f
UD
48572004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4858
4859 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4860 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4861 Rewrite so that only one locked memory operation per round is needed.
4862 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4863 (pthread_barrier_wait): After wakeup, release lock only when the
4864 last thread stopped using the barrier object.
4865 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4866 (__pthread_cond_wait): Don't store mutex address if the current
4867 value is ~0l. Add correct cleanup support and unwind info.
4868 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4869 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4870 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4871 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4872 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4873 Add correct cleanup support and unwind info.
4874 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4875 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4876 information for syscall wrappers.
4877
14c35863
UD
48782004-03-18 Ulrich Drepper <drepper@redhat.com>
4879
4880 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4881 cpusetsize field, remove next.
4882 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4883 parameter for size of the CPU set.
4884 (pthread_setaffinity_np): Likewise.
4885 (pthread_attr_getaffinity_np): Likewise.
4886 (pthread_attr_setaffinity_np): Likewise.
4887 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4888 interface change, keep compatibility code.
4889 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4890 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4891 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4892 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4893 __pthread_getaffinity_np.
4894 * Versions: Add version for changed interfaces.
4895 * tst-attr3.c: Adjust test for interface change.
4896 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4897 increasing buffer sizes.
4898 * pthread_attr_destroy.c: Remove unused list handling.
4899 * pthread_attr_init.c: Likewise.
4900
8e115d80
RM
49012004-03-17 Roland McGrath <roland@redhat.com>
4902
4903 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4904 first argument to clock_getres so we ever enable kernel timers.
4905
e3b22ad3
UD
49062004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4907
4908 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4909
841153fa
RH
49102004-03-12 Richard Henderson <rth@redhat.com>
4911
e3b22ad3
UD
4912 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4913 oldvalue from CENABLE to CDISABLE.
841153fa 4914
932dfea7
UD
49152004-03-12 Ulrich Drepper <drepper@redhat.com>
4916
4917 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4918 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4919 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4920 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4921
9852f6dc
RH
49222004-03-11 Richard Henderson <rth@redhat.com>
4923
4924 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4925 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4926 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4927
43513fb7
UD
49282004-03-11 Jakub Jelinek <jakub@redhat.com>
4929
4930 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4931 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4932 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4933
49342004-03-11 Jakub Jelinek <jakub@redhat.com>
4935
4936 * forward.c (__pthread_cond_broadcast_2_0,
4937 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
4938 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
4939 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
4940
8a3e10e0
UD
49412004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4942
4943 * sysdeps/sh/tcb-offsets.sym: Add PID.
4944 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
4945 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
4946
6d3a2bec
UD
49472004-03-10 Ulrich Drepper <drepper@redhat.com>
4948
4949 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
4950 include <sysdep-cancel.h>, vfork is no cancellation point.
4951 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
4952 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
4953 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
4954
d3a4a571
UD
49552004-03-10 Jakub Jelinek <jakub@redhat.com>
4956
73b4ce64
UD
4957 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
4958 libc_hidden_def.
4959 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
4960 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
4961 Likewise.
4962 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
4963 Likewise.
4964 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
4965 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
4966 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
4967 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
4968 of DO_CALL_VIA_BREAK. Work around a gas problem.
4969
d682a515
UD
4970 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
4971 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
4972 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
4973 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
4974 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
4975 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
4976
4977 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
4978 a local register for saving old PID. Negate PID in parent upon exit.
4979
d3a4a571
UD
4980 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
4981 tcb-offsets.h.
4982 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4983 before syscall, set to the old value in the parent afterwards.
4984 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
4985 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
4986 tcb-offsets.h.
4987 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
4988 before syscall, set to the old value in the parent afterwards.
4989 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
4990 * sysdeps/s390/tcb-offsets.sym: Add PID.
4991
4992 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
4993 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
4994 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
4995 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
4996 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
4997 * sysdeps/sparc/tcb-offsets.sym: Add PID.
4998
49992004-03-10 Andreas Schwab <schwab@suse.de>
5000
5001 * sysdeps/ia64/tcb-offsets.sym: Add PID.
5002 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
5003 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
5004
3f2fb223 50052004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 5006
3f2fb223
UD
5007 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
5008 * tst-cancel21.c (do_one_test): Likewise.
5009 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 5010
8b9d6054
UD
50112004-02-09 Jakub Jelinek <jakub@redhat.com>
5012
5013 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
5014 if non-zero and set to INT_MIN if zero.
5015 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
5016 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
5017 (SAVE_PID, RESTORE_PID): Define.
5018 (__vfork): Use it.
5019 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
5020 Use relative path to avoid including NPTL i386/vfork.S.
5021 (SAVE_PID, RESTORE_PID): Define.
5022 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
5023 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
5024 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
5025 tst-vfork2x.
5026 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
5027 * tst-vfork1.c: New test.
5028 * tst-vfork2.c: New test.
5029 * tst-vfork1x.c: New test.
5030 * tst-vfork2x.c: New test.
5031
02287d05
UD
50322004-03-08 Ulrich Drepper <drepper@redhat.com>
5033
c072ef6d 5034 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 5035 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 5036 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 5037 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 5038
d4acd24b
UD
50392004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
5040
5041 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
5042
8acb4b81
UD
50432004-03-08 H.J. Lu <hongjiu.lu@intel.com>
5044
5045 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
5046 _rtld_global_ro.
5047
4d1a02ef
UD
50482004-03-07 Ulrich Drepper <drepper@redhat.com>
5049
001836c8 5050 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 5051 _rtld_global_ro.
001836c8 5052
4d1a02ef
UD
5053 * tst-once4.c: Remove unnecessary macro definition.
5054
5055 * tst-mutex7.c (do_test): Limit thread stack size.
5056 * tst-once2.c (do_test): Likewise.
5057 * tst-tls3.c (do_test): Likewise.
5058 * tst-tls1.c (do_test): Likewise.
5059 * tst-signal3.c (do_test): Likewise.
5060 * tst-kill6.c (do_test): Likewise.
5061 * tst-key4.c (do_test): Likewise.
5062 * tst-join4.c (do_test): Likewise.
5063 * tst-fork1.c (do_test): Likewise.
5064 * tst-context1.c (do_test): Likewise.
5065 * tst-cond2.c (do_test): Likewise.
5066 * tst-cond10.c (do_test): Likewise.
5067 * tst-clock2.c (do_test): Likewise.
5068 * tst-cancel10.c (do_test): Likewise.
5069 * tst-basic2.c (do_test): Likewise.
5070 * tst-barrier4.c (do_test): Likewise.
5071
aa420660
UD
50722004-03-05 Ulrich Drepper <drepper@redhat.com>
5073
5074 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
5075
cff08c81
UD
50762004-03-01 Ulrich Drepper <drepper@redhat.com>
5077
5078 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5079 (__pthread_cond_timedwait): Optimize wakeup test.
5080 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5081 (__pthread_cond_wait): Likewise.
5082 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5083 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5084 Likewise.
5085
b7fe377c
UD
50862004-02-29 Ulrich Drepper <drepper@redhat.com>
5087
5088 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5089 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
5090 the atomic instruction needed.
5091 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5092 (__lll_mutex_lock_wait): Likewise.
5093
4c771a3b
UD
50942004-02-28 Ulrich Drepper <drepper@redhat.com>
5095
5096 * Makefile (tests): Add tst-cond14 and tst-cond15.
5097 * tst-cond14.c: New file.
5098 * tst-cond15.c: New file.
5099
a2c33d5a
UD
51002004-02-27 Ulrich Drepper <drepper@redhat.com>
5101
5102 * sysdeps/pthread/createthread.c (create_thread): Remove use of
5103 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
5104 needs to be implemented differently to be useful.
5105
261eada2
UD
51062004-02-26 Ulrich Drepper <drepper@redhat.com>
5107
14ffbc83
UD
5108 * pthread_attr_setschedparam.c: Don't test priority against limits
5109 here. Set ATTR_FLAG_SCHED_SET flag.
5110 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
5111 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
5112 from parent thread to child. If attribute is used and scheduling
5113 parameters are not inherited, copy parameters from attribute or
5114 compute them. Check priority value.
5115 * pthread_getschedparam.c: If the parameters aren't known yet get
5116 them from the kernel.
5117 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
5118 ATTR_FLAG_POLICY_SET flag for thread.
5119 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
5120 and ATTR_FLAG_POLICY_SET.
5121
5122 * sysdeps/pthread/createthread.c: Use tgkill if possible.
5123
261eada2
UD
5124 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
5125 fail if stack address hasn't been set. Just return 0.
5126
701d185c
UD
51272004-02-25 Ulrich Drepper <drepper@redhat.com>
5128
25b8e63c
UD
5129 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
5130 libpthread for the files in this list.
5131 (CFLAGS-tst-unload): Removed.
5132 * tst-unload.c (do_test): Don't use complete path for
5133 LIBPHREAD_SO.
5134
701d185c
UD
5135 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
5136 tst-_res1mod2.
5137
a8fd5a02
UD
51382004-02-22 Ulrich Drepper <drepper@redhat.com>
5139
5140 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5141 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
5142 operation per round is needed.
5143 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5144 (__lll_mutex_lock_wait): Likewise.
5145
dd0b7b19
UD
51462004-02-20 Ulrich Drepper <drepper@redhat.com>
5147
5148 * tst-cancel9.c (cleanup): Don't print to stderr.
5149
5990e1fe
UD
51502004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5151
5152 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
5153
33ab3b66
UD
51542004-02-20 Jakub Jelinek <jakub@redhat.com>
5155
1be3130e
UD
5156 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
5157 (__syscall_error_handler2): Call CDISABLE.
5158 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
5159 (__syscall_error_handler2): Call CDISABLE.
5160
8ba5025a
UD
5161 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5162 Release lock before the loop, don't reacquire it.
8ba5025a 5163
33ab3b66
UD
5164 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
5165
11986c68
UD
51662004-02-19 Andreas Schwab <schwab@suse.de>
5167
5168 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5169 Fix last change.
5170
dc391246
UD
51712004-02-18 Ulrich Drepper <drepper@redhat.com>
5172
37c054c7
UD
5173 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5174 (pthread_barrier_wait): After wakeup, release lock only when the
5175 last thread stopped using the barrier object.
5176 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
5177 (pthread_barrier_wait): Likewise.
5178 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5179 Likewise.
5180 * Makefile (tests): Add tst-barrier4.
5181 * tst-barrier4.c: New file.
dc391246
UD
5182
5183 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5184 (__pthread_cond_timedwait): Perform timeout test while holding
5185 internal lock to prevent wakeup race.
5186 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5187 * sysdeps/pthread/pthread_cond_timedwait.c
5188 (__pthread_cond_timedwait): Likewise.
5189 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5190 (__pthread_cond_timedwait): Likewise.
5191
4a08113c
UD
51922004-02-18 Jakub Jelinek <jakub@redhat.com>
5193
5194 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
5195 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
5196 * Makefile (tests): Add tst-rwlock13.
5197 * tst-rwlock13.c: New test.
5198
71b1675e
UD
51992004-02-16 Ulrich Drepper <drepper@redhat.com>
5200
5201 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5202 (__condvar_tw_cleanup): Little optimization.
5203 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5204
cd9fdc72
UD
52052004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
5206
5207 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
5208 libpthread as "lib" parameter to SHLIB_COMPAT.
5209 (__novmx_siglongjmp): Fix typo in function name.
5210 (__novmx_longjmp): Fix typo in function name.
5211
82038750
UD
52122004-02-13 Ulrich Drepper <drepper@redhat.com>
5213
b078c591
UD
5214 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
5215 __builtin_expect.
5216
82038750
UD
5217 * sysdeps/generic/pt-longjmp.c: Moved to...
5218 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
5219
e2982bf0
UD
52202004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
5221
5222 * Makefile (libpthread-routines): Add pt-cleanup.
5223 * pt-longjmp.c: Removed.
5224 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
5225 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
5226 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
5227 Version longjmp, siglongjmp for GLIBC_2.3.4.
5228 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
5229
3730d95c
UD
52302004-02-13 Ulrich Drepper <drepper@redhat.com>
5231
219304ec
UD
5232 * sysdeps/pthread/pthread_cond_timedwait.c
5233 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
5234 Reuse code. Add __builtin_expects.
5235
3730d95c
UD
5236 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5237 (__pthread_cond_timedwait): Get internal lock in case timeout has
5238 passed before the futex syscall.
5239 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5240
5673ccc1
UD
52412004-01-20 Ulrich Drepper <drepper@redhat.com>
5242
debddf64
UD
5243 * allocatestack.c: Pretty printing.
5244
5673ccc1
UD
5245 * sysdeps/pthread/createthread.c (create_thread): Don't add
5246 CLONE_DETACHED bit if it is not necessary.
5247
6bae8725
UD
52482004-01-16 Ulrich Drepper <drepper@redhat.com>
5249
5250 * pthread_getattr_np.c: Include ldsodefs.h.
5251
ff151400
RH
52522004-01-16 Richard Henderson <rth@redhat.com>
5253
6bae8725
UD
5254 * allocatestack.c: Don't declare __libc_stack_end.
5255 * init.c (__pthread_initialize_minimal_internal): Likewise.
5256 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 5257
ba683832
RH
52582004-01-15 Richard Henderson <rth@redhat.com>
5259
5260 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
5261 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
5262 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
5263 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
5264 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
5265 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
5266 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
5267 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
5268
630d93a7
UD
52692004-01-14 Ulrich Drepper <drepper@redhat.com>
5270
219304ec 5271 * init.c (pthread_functions): Make array const.
630d93a7 5272
d1fc817e
UD
52732004-01-13 Ulrich Drepper <drepper@redhat.com>
5274
5275 * allocatestack.c (__make_stacks_executable): Change interface.
5276 Check parameters. Pass parameter on to libc counterpart.
5277 * pthreadP.h: Change declaration.
5278
dc927809
RH
52792004-01-13 Richard Henderson <rth@redhat.com>
5280
10677727
UD
5281 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
5282 prototype form.
5283 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
5284 Likewise.
5285
d1fc817e
UD
5286 * sysdeps/alpha/Makefile: New file.
5287 * sysdeps/alpha/tcb-offsets.sym: New file.
5288 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
5289 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 5290
d1fc817e
UD
5291 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
5292 on powerpc version.
dc927809 5293
249a3d0c
UD
52942004-01-08 Jakub Jelinek <jakub@redhat.com>
5295
5296 * Makefile (tests): Add tst-backtrace1.
5297 * tst-backtrace1.c: New test.
5298
763c0490
RM
52992003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
5300
5301 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
5302 register as second parameter to the REGISTER macro.
5303 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
5304 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
5305 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
5306 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
5307 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
5308 of thread register as second parameter to REGISTER macro in 64 case.
5309
c7baafd5
UD
53102004-01-03 Ulrich Drepper <drepper@redhat.com>
5311
5312 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
5313 (CFLAGS-getpid.o): Defined.
5314 (CFLAGS-getpid.os): Defined.
5315
25ac0258
UD
53162003-12-31 Ulrich Drepper <drepper@redhat.com>
5317
5318 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
5319 returned for main thread does not overlap with any other VMA.
5320 Patch by Jakub Jelinek.
5321
795985e4
UD
53222003-12-29 Jakub Jelinek <jakub@redhat.com>
5323
5324 * tst-raise1.c: Include stdio.h.
5325
cb5b9388
UD
53262003-12-23 Jakub Jelinek <jakub@redhat.com>
5327
5328 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
5329 setting with __ASSUME_TGKILL || defined __NR_tgkill.
5330 If pid is 0, set it to selftid.
5331 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
5332 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
5333 != 0, return self->tid without doing a syscall.
5334 * descr.h (struct pthread): Move pid field after tid.
5335
5336 * Makefile (tests): Add tst-raise1.
5337 * tst-raise1.c: New file.
5338
432aaf5b
RM
53392003-12-23 Roland McGrath <roland@redhat.com>
5340
5341 * tst-oddstacklimit.c: New file.
5342 * Makefile (tests): Add it.
5343 (tst-oddstacklimit-ENV): New variable.
5344
5345 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
5346 value up to page size for __default_stacksize.
5347
33ebea17
UD
53482003-12-21 Ulrich Drepper <drepper@redhat.com>
5349
5350 * Makefile (tests): Add tst-eintr5.
5351 * tst-eintr5.c: New file.
5352
5353 * eintr.c (eintr_source): Prevent sending signal to self.
5354
5355 * tst-eintr2.c (tf1): Improve error message.
5356
bbe35eb5
UD
53572003-12-20 Ulrich Drepper <drepper@redhat.com>
5358
5359 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
5360 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
5361 * pthread_cancel.c: Add comment explaining use of PID field.
5362 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5363 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
5364 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
5365 temporarily to signal the field must not be relied on and updated
5366 by getpid().
5367 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
5368 temporarily negative.
5369 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 5370
4efdd8d3
UD
53712003-12-19 Ulrich Drepper <drepper@redhat.com>
5372
5373 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5374 (eintr_source): If ARG != NULL, use pthread_kill.
5375 * tst-eintr1.c: Adjust for this change.
5376 * tst-eintr2.c: Likewise.
5377 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5378 * tst-eintr3.c: New file.
5379 * tst-eintr4.c: New file.
5380
53812003-12-19 Jakub Jelinek <jakub@redhat.com>
5382
5383 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5384 if CANCELSTATE_BITMASK is set.
5385 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5386 Likewise.
5387
5388 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5389 (tests-reverse): Add tst-cancel23.
5390 * tst-cancel22.c: New test.
5391 * tst-cancel23.c: New test.
5392
675620f7
UD
53932003-12-18 Ulrich Drepper <drepper@redhat.com>
5394
5395 * tst-eintr1.c: Better error messages.
5396
5397 * Makefile (tests): Add tst-eintr2.
5398 * tst-eintr2.c: New file.
5399
54002003-12-18 Jakub Jelinek <jakub@redhat.com>
5401
5402 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5403 (CFLAGS-tst-cancelx21.c): Set.
5404 * tst-cancel21.c: New test.
5405 * tst-cancelx21.c: New test.
5406
5407 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5408 comparison operand.
5409 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5410 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5411 * pt-longjmp.c: Include jmpbuf-unwind.h.
5412 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5413 _JMPBUF_UNWINDS. Adjust compared pointers.
5414 * init.c (__pthread_initialize_minimal_internal): Initialize
5415 pd->stackblock_size.
5416 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5417 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5418 * sysdeps/i386/jmpbuf-unwind.h: New file.
5419 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5420 * sysdeps/s390/jmpbuf-unwind.h: New file.
5421 * sysdeps/sh/jmpbuf-unwind.h: New file.
5422 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5423 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5424 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5425 (_JMPBUF_CFA_UNWINDS): Remove.
5426 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5427
54282003-12-12 Jakub Jelinek <jakub@redhat.com>
5429
5430 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5431 (CFLAGS-tst-cancelx20.c): Set.
5432 * tst-cancel20.c: New test.
5433 * tst-cancelx20.c: New test.
5434
2d951ab6
UD
54352003-12-17 Ulrich Drepper <drepper@redhat.com>
5436
5437 * init.c (__pthread_initialize_minimal_internal): Don't treat
5438 architectures with separate register stack special here when
5439 computing default stack size.
5440
f8a3a2e7
RM
54412003-12-17 Roland McGrath <roland@redhat.com>
5442
5443 * Makefile (tst-cancelx7-ARGS): New variable.
5444 Reportd by Greg Schafer <gschafer@zip.com.au>.
5445
e796f92f
UD
54462003-12-17 Jakub Jelinek <jakub@redhat.com>
5447
5448 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5449 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5450 (tst-stack3-ENV): Set.
5451 ($(objpfx)tst-stack3-mem): New.
5452 * tst-stack3.c: New test.
5453
092eb73c
UD
54542003-12-10 David Mosberger <davidm@hpl.hp.com>
5455
5456 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5457 Add unwind directives. Drop unused .regstk directive.
5458 (_fini_EPILOG_BEGINS): Add unwind directives.
5459
ff48874d
UD
54602003-12-11 Ulrich Drepper <drepper@redhat.com>
5461
5462 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5463 Assume parameter is a pointer.
5464 (lll_futex_wake): Likewise.
20945457
UD
5465 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5466 Likewise.
5467 (lll_futex_wake): Likewise.
ff48874d
UD
5468 Reported by Boris Hu.
5469 * sysdeps/unix/sysv/linux/unregister-atfork.c
5470 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5471
5472 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5473
1d9d0b80
UD
54742003-12-10 Ulrich Drepper <drepper@redhat.com>
5475
5476 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5477 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5478 __rtld_lock_initialize for ld.so lock.
5479 Patch in part by Adam Li <adam.li@intel.com>.
5480
c776b3d7
UD
54812003-12-02 David Mosberger <davidm@hpl.hp.com>
5482
5483 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5484 in $(gnulib). Also, remove stale comment.
5485
54862003-11-12 David Mosberger <davidm@hpl.hp.com>
5487
5488 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5489 advantage of new syscall stub and optimize accordingly.
5490
5491 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5492 from SYS_futex, to match expectations of
5493 sysdep.h:DO_INLINE_SYSCALL.
5494 (lll_futex_clobbers): Remove.
5495 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5496 (lll_futex_wake): Likewise.
5497 (lll_futex_requeue): Likewise.
5498 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5499 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5500 Jelinek).
5501 (__lll_mutex_lock): Likewise.
5502 (__lll_mutex_cond_lock): Likewise.
5503 (__lll_mutex_timed_lock): Likewise.
5504 (__lll_mutex_unlock): Likewise.
5505 (__lll_mutex_unlock_force): Likewise.
5506
5507 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5508 comes before the include of <sysdep.h>.
5509 (THREAD_SELF_SYSINFO): New macro.
5510 (THREAD_SYSINFO): Likewise.
5511 (INIT_SYSINFO): New macro.
5512 (TLS_INIT_TP): Call INIT_SYSINFO.
5513
5514 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5515
5516 * sysdeps/pthread/createthread.c (create_thread): Use
5517 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5518 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5519 THREAD_SELF_SYSINFO instead of open code.
5520 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5521 (THREAD_SYSINFO): Likewise.
5522
5523 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5524
5525 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5526
57d20ee7
UD
55272003-12-06 Ulrich Drepper <drepper@redhat.com>
5528
5529 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5530 instead of .init. Patch by David Mosberger.
5531
67aeab2a
AJ
55322003-11-30 Thorsten Kukuk <kukuk@suse.de>
5533
5534 * sysdeps/pthread/configure.in: Remove broken declaration in C
5535 cleanup handling check.
5536
8ca203e6
AJ
55372003-11-30 Andreas Jaeger <aj@suse.de>
5538
5539 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5540 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5541 Likewise.
5542
46bf9de7
UD
55432003-11-27 Jakub Jelinek <jakub@redhat.com>
5544
5545 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5546 * pthread_attr_destroy.c: Include shlib-compat.h.
5547 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5548 is set in iattr->flags.
5549 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5550
1d9b73ab
UD
55512003-11-21 Jakub Jelinek <jakub@redhat.com>
5552
5553 * Makefile (distribute): Add tst-cleanup4aux.c.
5554
5555 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5556 include.
5557
53f9084e
UD
55582003-11-21 Ulrich Drepper <drepper@redhat.com>
5559
1d9b73ab
UD
5560 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5561 pthread_cond_signal.
5562
e42a990e
UD
5563 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5564 store mutex address if the current value is ~0l.
5565 * sysdeps/pthread/pthread_cond_timedwait.c
5566 (__pthread_cond_timedwait): Likewise.
5567 * sysdeps/pthread/pthread_cond_broadcast.c
5568 (__pthread_cond_broadcast): Don't use requeue for pshared
5569 condvars.
5570
5571 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5572 (__pthread_cond_wait): Don't store mutex address if the current
5573 value is ~0l.
5574 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5575 (__pthread_cond_timedwait): Likewise.
5576 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5577 (__pthread_cond_broadcast): Don't use requeue for pshared
5578 condvars.
5579
5580 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5581 element with ~0l for pshared condvars, with NULL otherwise.
5582
5583 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5584 (__pthread_cond_wait): Don't store mutex address if the current
5585 value is ~0l.
5586 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5587 (__pthread_cond_timedwait): Likewise.
5588 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5589 (__pthread_cond_broadcast): Don't use requeue for pshared
5590 condvars.
5591
bf68b236 5592 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5593 * tst-cond12.c: New file.
bf68b236 5594 * tst-cond13.c: New file.
53f9084e 5595
9780c971
UD
55962003-11-17 Ulrich Drepper <drepper@redhat.com>
5597
5598 * sysdeps/pthread/configure.in: Make missing forced unwind support
5599 fatal.
5600
74e12fbc
UD
56012003-11-11 Ulrich Drepper <drepper@redhat.com>
5602
5603 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5604
c685b2b0
UD
56052003-11-06 Ulrich Drepper <drepper@redhat.com>
5606
5607 * Makefile: Add magic to clean up correctly.
5608
44e94149
UD
56092003-11-05 Jakub Jelinek <jakub@redhat.com>
5610
5611 * unwind.c (FRAME_LEFT): Define.
5612 (unwind_stop): Handle old style cleanups here.
5613 (__pthread_unwind): Handle old style cleanups only if
5614 !HAVE_FORCED_UNWIND.
5615 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5616 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5617 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5618 ($(objpfx)tst-cleanupx4): Likewise.
5619 * tst-cleanup4.c: New test.
5620 * tst-cleanup4aux.c: New.
5621 * tst-cleanupx4.c: New test.
5622
c28422b5
UD
56232003-11-04 Ulrich Drepper <drepper@redhat.com>
5624
5625 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5626 lll_mutex_*lock macros to skip atomic operations on some archs.
5627
27176677
UD
56282003-11-03 Ulrich Drepper <drepper@redhat.com>
5629
5630 * sysdeps/pthread/tst-timer.c (main): Initialize
5631 sigev2.sigev_value as well.
5632
026395a2
RM
56332003-10-15 Roland McGrath <roland@redhat.com>
5634
5635 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5636 is missing.
5637 * sysdeps/pthread/configure: Regenerated.
5638
fa3cbe3d
UD
56392003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5640
5641 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5642 locking macros. No distinction between normal and mutex locking
5643 anymore.
5644 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5645 Merge bits from lowlevelmutex.S we still need.
5646 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5647 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5648 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5649 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5650 new mutex implementation.
5651 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5652 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5653 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5654 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5655 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5656 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5657 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5658 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5659 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5660 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5661 symbol for entry point to avoid cancellation.
5662
e700a908
UD
56632003-10-07 Jakub Jelinek <jakub@redhat.com>
5664
5665 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5666 changes.
5667 (SAVE_OLDTYPE_0): Fix a typo.
5668
c70a86b6
UD
56692003-10-03 Ulrich Drepper <drepper@redhat.com>
5670
5671 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5672 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5673
134abcb5
UD
56742003-10-02 Ulrich Drepper <drepper@redhat.com>
5675
5676 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5677 correct offset.
5678
b77ca0e8
UD
56792003-10-02 Jakub Jelinek <jakub@redhat.com>
5680
5681 * Makefile (tests): Add tst-cancel19.
5682 * tst-cancel19.c: New test.
5683
4d961dc7
UD
56842003-10-02 Ulrich Drepper <drepper@redhat.com>
5685
5686 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5687 restoring of the old cancellation type.
5688
1d5b20ad 56892003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5690
1d5b20ad
UD
5691 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5692
4106a403
RM
56932003-09-27 Wolfram Gloger <wg@malloc.de>
5694
4d961dc7 5695 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5696
fca9d8e4
RM
56972003-09-24 Roland McGrath <roland@redhat.com>
5698
5699 * allocatestack.c (__make_stacks_executable): Don't ignore return
5700 value from _dl_make_stack_executable.
5701
c9c60884
UD
57022003-09-24 Ulrich Drepper <drepper@redhat.com>
5703
69c9fa04
UD
5704 * allocatestack.c (__make_stacks_executable): Also change
5705 permission of the currently unused stacks.
5706
279f1143
UD
5707 * allocatestack.c (change_stack_perm): Split out from
5708 __make_stacks_executable.
5709 (allocate_stack): If the required permission changed between the time
5710 we started preparing the stack and queueing it, change the permission.
5711 (__make_stacks_executable): Call change_stack_perm.
5712
c9c60884
UD
5713 * Makefile: Build tst-execstack-mod locally.
5714 * tst-execstack-mod.c: New file.
5715
54ee14b3
UD
57162003-09-23 Jakub Jelinek <jakub@redhat.com>
5717
5718 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5719
57202003-09-23 Roland McGrath <roland@redhat.com>
5721
5722 * tst-execstack.c: New file.
5723 * Makefile (tests): Add it.
5724 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5725 (LDFLAGS-tst-execstack): New variable.
5726
5727 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5728 whether to use PROT_EXEC for stack mmap.
5729 (__make_stacks_executable): New function.
5730 * pthreadP.h: Declare it.
5731 * init.c (__pthread_initialize_minimal_internal): Set
5732 GL(dl_make_stack_executable_hook) to that.
5733
365b1602
UD
57342003-09-22 Ulrich Drepper <drepper@redhat.com>
5735
5736 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5737 recommendation from AMD re avoidance of lock prefix.
5738
39358e8b
UD
57392003-09-22 Jakub Jelinek <jakub@redhat.com>
5740
5741 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5742 lll_futex_timed_wait instead of lll_futex_wait.
5743 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5744 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5745 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5746 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5747 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5748 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5749 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5750 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5751 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5752 Completely revamp the locking macros. No distinction between
5753 normal and mutex locking anymore.
5754 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5755 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5756 __lll_lock_timedwait): Fix prototypes.
5757 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5758 __lll_lock_timedwait): Likewise.
5759 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5760 macros, add __builtin_expect.
5761 (lll_mutex_timedlock): Likewise. Fix return value.
5762 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5763 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5764 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5765 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5766 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5767 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5768 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5769 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5770
9d08fbbb
UD
57712003-09-22 Ulrich Drepper <drepper@redhat.com>
5772
c0df57e1
UD
5773 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5774 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5775 operation if possible.
5776
9d08fbbb
UD
5777 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5778 like jumping over the lock prefix.
5779
71451de2
UD
57802003-09-21 Ulrich Drepper <drepper@redhat.com>
5781
5782 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5783 locking macros. No distinction between normal and mutex locking
5784 anymore.
3a226d33 5785 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5786 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5787 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5788 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5789 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5790 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5791 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5792 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5793 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5794 * Makefile (routines): Remove libc-lowlevelmutex.
5795 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5796 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5797 for new mutex implementation.
5798 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5799 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5800 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5801 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5802 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5803 Likewise.
5804 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5805 Likewise.
5806 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5807 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5808 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5809 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5810 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5811 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5812 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5813 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5814 Likewise.
5815 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5816 Likewise.
5817 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5818 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5819 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5820 Don't use requeue.
5821 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5822 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5823
8f31c0ef
UD
58242003-09-20 Ulrich Drepper <drepper@redhat.com>
5825
56a4aa98
UD
5826 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5827 in parameters of asm with output parameters.
5828
8f31c0ef
UD
5829 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5830 type of DECR parameter to int.
5831 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5832
8b8074da
UD
58332003-09-18 Jakub Jelinek <jakub@redhat.com>
5834
5835 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5836 guardsize for each thread.
5837
65af7e61
UD
58382003-09-17 Jakub Jelinek <jakub@redhat.com>
5839
9ba96eda
UD
5840 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5841 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5842 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5843
06f6ca90
UD
5844 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5845 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5846 NULL.
5847 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5848 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5849 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5850 (pthread_getaffinity_np): Add hidden_def.
5851
5852 * Makefile (tests): Add tst-attr3.
5853 * tst-attr3.c: New test.
5854
65af7e61
UD
5855 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5856
3402852c
UD
58572003-09-15 Jakub Jelinek <jakub@redhat.com>
5858
5859 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5860 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5861
a4db3439
UD
58622003-09-17 Jakub Jelinek <jakub@redhat.com>
5863
5864 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5865 * tst-align.c: Include tst-stack-align.h.
5866 (tf, do_test): Use TEST_STACK_ALIGN macro.
5867
58682003-09-17 Ulrich Drepper <drepper@redhat.com>
5869
5870 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5871 variable.
5872
92ce4676
UD
58732003-09-16 Ulrich Drepper <drepper@redhat.com>
5874
5875 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5876 stack-related values for the initial thread.
5877
e07bb02a
UD
58782003-09-15 Jakub Jelinek <jakub@redhat.com>
5879
5880 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5881
d087b5dc
UD
58822003-09-11 Ulrich Drepper <drepper@redhat.com>
5883
5884 * pthread_mutex_lock.c: Minor code rearrangements.
5885
7f08f55a
RM
58862003-09-05 Roland McGrath <roland@redhat.com>
5887
5888 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5889 Instead, include ../nptl_db/db_info.c to do its magic.
5890 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5891 (__pthread_pthread_key_2ndlevel_size): Likewise.
5892 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5893 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5894 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5895 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5896 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5897 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5898 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5899 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5900 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5901 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5902 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5903 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5904 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5905 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5906 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5907 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5908 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5909
806e4a4a
UD
59102003-09-08 Ulrich Drepper <drepper@redhat.com>
5911
5912 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5913 of pthread_t to be compatible with LT.
5914 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5915 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5916 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5917 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5918 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5919 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5920 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5921
17f83e56
UD
59222003-09-04 Ulrich Drepper <drepper@redhat.com>
5923
5924 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5925
58e8ec84
UD
59262003-09-04 Jakub Jelinek <jakub@redhat.com>
5927
5928 * unwind-forcedunwind.c: Move to...
5929 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5930 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5931 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5932 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5933 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5934 * unwind.c: Include jmpbuf-unwind.h.
5935 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5936
abf1cf21
JJ
59372003-09-02 Jakub Jelinek <jakub@redhat.com>
5938
4a244f0d
UD
5939 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
5940 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
5941 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
5942 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
5943 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
5944 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
5945 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
5946 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
5947 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
5948 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
5949 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
5950 function.
5951 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
5952 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
5953 * Makefile (tests): Add tst-stack2.
5954 * tst-stack2.c: New test.
5955 * tst-stack1.c: Include limits.h and sys/param.h.
5956 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
5957
e29ef647
UD
5958 * pthread_condattr_setpshared.c: Include errno.h.
5959 (pthread_condattr_setpshared): Return EINVAL if pshared
5960 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
5961
5777d565
UD
5962 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
5963 defined symbol for entry point to avoid cancellation.
5964 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
5965 Likewise.
5966 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5967 Likewise.
5968 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
5969 Likewise.
5970 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
5971 Likewise.
5972 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5973 Likewise.
5974 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
5975 __close_nocancel, __read_nocancel, __write_nocancel,
5976 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
5977 libpthread.so or librt.so, define to corresponding function
5978 without _nocancel suffix.
5979 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
5980 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
5981 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
5982
abf1cf21
JJ
5983 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
5984
8348dcc8
UD
59852003-09-02 Ulrich Drepper <drepper@redhat.com>
5986
5987 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 5988 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
5989
5990 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
5991 in subsections has a symbol associated with it.
5992
5993 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
5994 defined symbol for entry point to avoid cancellation.
5995 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
5996
c874a32e
UD
59972003-09-01 Jakub Jelinek <jakub@redhat.com>
5998
5999 * Makefile (tests): Add tst-tls5.
6000 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
6001 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
6002 ($(objpfx)tst-tls5): New.
6003 ($(objpfx)tst-tls6.out): Likewise.
6004 (tests): Depend on $(objpfx)tst-tls6.out.
6005 * tst-tls3.c: Include stdint.h and pthreaddef.h.
6006 (do_test): Check pthread_self () return value alignment.
6007 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
6008 (tf): Check pthread_self () return value alignment.
6009 * tst-tls5.c: New test.
6010 * tst-tls5.h: New.
6011 * tst-tls5mod.c: New.
6012 * tst-tls5moda.c: New.
6013 * tst-tls5modb.c: New.
6014 * tst-tls5modc.c: New.
6015 * tst-tls5modd.c: New.
6016 * tst-tls5mode.c: New.
6017 * tst-tls5modf.c: New.
6018 * tst-tls6.sh: New test.
6019
c503d3dc
UD
6020 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
6021 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
6022 * init.c (pthread_functions): Initialize them.
6023 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
6024 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
6025 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
6026 pthread_cond_timedwait@@GLIBC_2.3.2.
6027
48614753
JJ
60282003-09-01 Jakub Jelinek <jakub@redhat.com>
6029
56a1b877
JJ
6030 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
6031 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
6032 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
6033 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
6034 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
6035 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6036
6037 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
6038
48614753
JJ
6039 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
6040 _POSIX_THREAD_PRIORITY_SCHEDULING.
6041 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6042
28c97261
UD
60432003-08-31 Ulrich Drepper <drepper@redhat.com>
6044
eef80cf8
UD
6045 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
6046 nested function, use static inline function from libio.h.
6047 Code by Richard Henderson.
6048
28c97261
UD
6049 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
6050 weak.
6051
cd2fbe58
UD
60522003-08-30 Jakub Jelinek <jakub@redhat.com>
6053
6054 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
6055 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
6056 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
6057 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
6058 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
6059 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
6060 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
6061 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
6062 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
6063 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
6064 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
6065 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
6066 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
6067 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
6068 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
6069 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
6070 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
6071 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
6072 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
6073 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
6074 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
6075 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
6076 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
6077 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
6078 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
6079 * sysdeps/sparc/tls.h: New file.
6080 * sysdeps/sparc/tcb-offsets.sym: New file.
6081 * sysdeps/sparc/Makefile: New file.
6082 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
6083 * init.c [__sparc__] (__NR_set_tid_address): Define.
6084
feda52c0
UD
60852003-08-29 Jakub Jelinek <jakub@redhat.com>
6086
6087 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
6088 _IO_release_lock): Define.
6089
7c868816
JJ
60902003-08-29 Jakub Jelinek <jakuB@redhat.com>
6091
0261d33f 6092 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
6093 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
6094
68b9e1ae
UD
60952003-08-27 Ulrich Drepper <drepper@redhat.com>
6096
6097 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
6098 (__pthread_cleanup_class): Add missing return types of member
6099 functions.
6100
13b3edfc
UD
61012003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
6102
6103 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6104 (lll_mutex_unlock_force): Add memory barrier between store and futex
6105 syscall.
6106
bb606fbe
UD
61072003-08-25 Ulrich Drepper <drepper@redhat.com>
6108
6109 * tst-cancel4.c (do_test): Also unlink tempfname and remove
6110 tempmsg in first loop.
6111
ee4e5a3d
UD
61122003-08-18 Ulrich Drepper <drepper@redhat.com>
6113
6114 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6115 _POSIX_THREAD_PRIORITY_SCHEDULING.
6116 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6117
334fcf2a
UD
61182003-08-07 Jakub Jelinek <jakub@redhat.com>
6119
6120 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
6121 (__rtld_lock_default_lock_recursive,
6122 __rtld_lock_default_unlock_recursive): Define.
6123 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
6124 __rtld_lock_unlock_recursive): Define using
6125 GL(_dl_rtld_*lock_recursive).
6126 * init.c (__pthread_initialize_minimal_internal): Initialize
6127 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
6128 Lock GL(_dl_load_lock) the same number of times as
6129 GL(_dl_load_lock) using non-mt implementation was nested.
6130
6131 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
6132 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
6133
a30fb2df
UD
61342003-08-06 Jakub Jelinek <jakub@redhat.com>
6135
6136 * tst-cancel17.c (do_test): Make len2 maximum of page size and
6137 PIPE_BUF.
6138
ce0d30a0
JJ
61392003-08-07 Jakub Jelinek <jakub@redhat.com>
6140
6141 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
6142
9c988b83
UD
61432003-08-03 Jakub Jelinek <jakub@redhat.com>
6144
6145 * sysdeps/pthread/createthread.c (do_clone): Move error handling
6146 to first syscall error check. Move syscall error check for tkill
6147 into __ASSUME_CLONE_STOPPED #ifdef.
6148
5c5252bd
UD
61492003-08-02 Ulrich Drepper <drepper@redhat.com>
6150
f1205aa7
UD
6151 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
6152 is not defined, do explicit synchronization.
6153 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
6154 is not defined also unlock pd->lock for non-debugging case in case
6155 it is necessary.
6156 * pthread_create.c (start_thread): Always get and release pd->lock
6157 if __ASSUME_CLONE_STOPPED is not defined.
6158 (start_thread_debug): Removed. Adjust users.
6159 * allocatestack.c (allocate_stack): Always initialize lock if
6160 __ASSUME_CLONE_STOPPED is not defined.
6161 * Makefile (tests): Add tst-sched1.
6162 * tst-sched1.c: New file.
6163
5c5252bd
UD
6164 * sysdeps/pthread/createthread.c (do_clone): Only use
6165 sched_setschduler and pass correct parameters.
6166
973d66e4
UD
61672003-07-31 Jakub Jelinek <jakub@redhat.com>
6168
6169 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
6170 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
6171 PTHREAD_STACK_MIN in comments.
6172
d347a4ab
UD
61732003-07-31 Jakub Jelinek <jakub@redhat.com>
6174
6175 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6176 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
6177 argument.
6178 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
6179 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
6180 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
6181 (__pthread_cleanup_upto): Fix prototype.
6182 (_longjmp_unwind): Adjust caller.
6183 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
6184 Change second argument to const struct pointer.
6185 * tst-sem8.c (main): Remove unused s2 and s3 variables.
6186 * tst-sem9.c (main): Likewise.
6187 * unwind.c: Include string.h for strlen prototype.
6188
1b26e9a5
UD
61892003-07-31 Ulrich Drepper <drepper@redhat.com>
6190
6191 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6192 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
6193 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
6194 Define HAVE_CMOV.
6195 Patch by Nicholas Miell <nmiell@attbi.com>.
6196
adc12574
UD
61972003-07-30 Jakub Jelinek <jakub@redhat.com>
6198
6199 * init.c (__pthread_initialize_minimal_internal): Initialize
6200 GL(dl_init_static_tls).
6201 * pthreadP.h (__pthread_init_static_tls): New prototype.
6202 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
6203 New functions.
6204 * Makefile (tests): Add tst-tls4.
6205 (modules-names): Add tst-tls4moda and tst-tls4modb.
6206 ($(objpfx)tst-tls4): Link against libdl and libpthread.
6207 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
6208 tst-tls4modb.so.
6209 * tst-tls4.c: New file.
6210 * tst-tls4moda.c: New file.
6211 * tst-tls4modb.c: New file.
6212
a7f6c66e
RM
62132003-06-19 Daniel Jacobowitz <drow@mvista.com>
6214
6215 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
6216 before __timer_dealloc.
6217 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
6218 Don't call list_unlink.
6219
172ce013
RM
62202003-07-29 Roland McGrath <roland@redhat.com>
6221
6222 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
6223
7b787f85
UD
62242003-07-25 Jakub Jelinek <jakub@redhat.com>
6225
6226 * tst-cancel17.c (do_test): Check if aio_cancel failed.
6227 Don't reuse struct aiocb A if it failed.
6228 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
6229 not just one byte, as that does not block.
6230
0e9d6240
UD
62312003-07-22 Jakub Jelinek <jakub@redhat.com>
6232
9d79e037
UD
6233 * sysdeps/pthread/unwind-resume.c: New file.
6234 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
6235 unwind-resume in csu subdir.
6236 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
6237 exceptions.
6238 (librt-sysdep_routines, librt-shared-only-routines): Add
6239 rt-unwind-resume.
6240 * sysdeps/pthread/rt-unwind-resume.c: New file.
6241 * unwind-forcedunwind.c: New file.
6242 * Makefile (libpthread-routines): Add unwind-forcedunwind.
6243 (libpthread-shared-only-routines): Likewise.
6244 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
6245 * pthreadP.h (pthread_cancel_init): New prototype.
6246 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
6247
6248 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
6249 attr argument const struct pthread_attr *.
6250
0e9d6240
UD
6251 * res.c (__res_state): Return __resp.
6252 * descr.h: Include resolv.h.
6253 (struct pthread): Add res field.
6254 * pthread_create.c: Include resolv.h.
6255 (start_thread): Initialize __resp.
6256 * Makefile (tests): Add tst-_res1.
6257 (module-names): Add tst-_res1mod1, tst-_res1mod2.
6258 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
6259 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
6260 libpthread.
6261 * tst-_res1.c: New file.
6262 * tst-_res1mod1.c: New file.
6263 * tst-_res1mod2.c: New file.
6264
1a379ea0
UD
62652003-07-21 Ulrich Drepper <drepper@redhat.com>
6266
7e939b21
UD
6267 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
6268
1a379ea0
UD
6269 * Makefile: Define various *-no-z-defs variables for test DSOs
6270 which has undefined symbols.
6271
ca86a763
UD
62722003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
6273
6274 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6275 Retry if the stwcx fails to store once_control.
6276
80f536db
UD
62772003-07-20 Ulrich Drepper <drepper@redhat.com>
6278
6279 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
6280 pthread_attr_setaffinity.
6281 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
6282 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
6283 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
6284 * pthread_attr_destroy.c: Free cpuset element if allocated.
6285 * pthread_create.c: Pass iattr as additional parameter to
6286 create_thread.
6287 * sysdeps/pthread/createthread.c: If attribute is provided and
6288 a new thread is created with affinity set or scheduling parameters,
6289 start thread with CLONE_STOPPED.
6290 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
6291 pthread_attr_setaffinity.
6292 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
6293 cpuset element.
6294
73299943
UD
62952003-07-15 Ulrich Drepper <drepper@redhat.com>
6296
6297 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
6298
da35d15e
UD
62992003-07-14 Ulrich Drepper <drepper@redhat.com>
6300
6301 * sysdeps/pthread/configure.in: Require CFI directives also for
6302 ppc and s390.
6303
75540d8a
UD
63042003-07-15 Jakub Jelinek <jakub@redhat.com>
6305
6306 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6307 Add cfi directives.
6308
4a17085f
UD
63092003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6310
6311 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
6312 CLEANUP_JMP_BUF.
6313 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
6314 registers as variables. Call __pthread_mutex_unlock_usercnt.
6315 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6316 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
6317 not self pointer in __writer. Compare with TID to determine
6318 deadlocks.
6319 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6320 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
6321 Likewise.
6322 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
6323 Likewise.
6324 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
6325 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
6326 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
6327 macros also when compiling librt.
6328
6080ecdf
UD
63292003-07-11 Jakub Jelinek <jakub@redhat.com>
6330
6331 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
6332 -fasynchronous-unwind-tables.
6333 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
6334 (PSEUDO): Add cfi directives.
6335 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
6336 Likewise.
6337 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6338 Likewise.
6339
da0c02ee
UD
63402003-07-08 Jakub Jelinek <jakub@redhat.com>
6341
6342 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
6343 __pthread_unregister_cancel): Add prototypes and hidden_proto.
6344 * unwind.c (__pthread_unwind_next): Add hidden_def.
6345 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
6346 Likewise.
6347 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6348 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6349 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6350 Likewise.
6351 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
6352 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
6353 Likewise.
6354 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
6355 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
6356 __pthread_unregister_cancel and __pthread_unwind_next.
6357
57a5ea02
UD
63582003-07-04 Jakub Jelinek <jakub@redhat.com>
6359
6360 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
6361 different symbol for the cancellation syscall wrapper and
6362 non-cancellation syscall wrapper.
6363 (PSEUDO_END): Define.
6364
d810b358
UD
63652003-07-05 Richard Henderson <rth@redhat.com>
6366
6367 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
6368 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
6369 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6370 return actual return value from the syscall, not 0.
d810b358 6371
db54f488
UD
63722003-07-07 Ulrich Drepper <drepper@redhat.com>
6373
6374 * descr.h (struct pthread): Add pid field.
6375 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6376 (__reclaim_stacks): Likewise.
6377 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6378 also check for PID of the signal source.
6379 (__pthread_initialize_minimal_internal): Also initialize pid field
6380 of initial thread's descriptor.
6381 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6382 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6383 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6384 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6385 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6386
5e497a41
UD
63872003-07-05 Ulrich Drepper <drepper@redhat.com>
6388
6389 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6390 Fix use of parameter.
6391 (__libc_cleanup_pop): Likewise.
6392
86a0c4fa
UD
63932003-07-04 Ulrich Drepper <drepper@redhat.com>
6394
6395 * init.c (sigcancel_handler): Change parameters to match handler
6396 for SA_SIGACTION. Check signal number and code to recognize
6397 invalid invocations.
6398
bdbecaa3
RM
63992003-07-03 Roland McGrath <roland@redhat.com>
6400
6401 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6402 Apply sizeof (struct pthread) bias to r13 value.
6403
56421b23
UD
64042003-07-03 Ulrich Drepper <drepper@redhat.com>
6405
fbd90f6c
UD
6406 * sysdeps/pthread/configure.in: Require CFI directives.
6407
56421b23
UD
6408 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6409 definition.
6410 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6411 libpthread compilation.
6412 * unwind.c (__pthread_unwind): Add hidden_def.
6413 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6414
ca2b4cd7
UD
64152003-07-01 Ulrich Drepper <drepper@redhat.com>
6416
6417 * libc-cancellation.c (__libc_cleanup_routine): Define.
6418 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6419 (__pthread_cleanup_pop): Define.
6420
f036e569
UD
64212003-07-01 Richard Henderson <rth@redhat.com>
6422
6423 * sysdeps/alpha/elf/pt-initfini.c: New file.
6424 * sysdeps/alpha/pthread_spin_lock.S: New file.
6425 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6426 * sysdeps/alpha/pthreaddef.h: New file.
6427 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6428 * sysdeps/alpha/tls.h: New file.
6429 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6430 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6431 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6432 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6433 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6434 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6435 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6436 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6437 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6438 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6439
3b985826
UD
64402003-07-01 Ulrich Drepper <drepper@redhat.com>
6441
6442 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6443 cleanup support and unwind info.
6444
3a4d1e1e
UD
64452003-06-30 Ulrich Drepper <drepper@redhat.com>
6446
6447 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6448 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6449 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6450 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6451 * tst-once3.c: Add cleanup handler and check it is called.
6452 * tst-once4.c: Likewise.
6453 * tst-oncex3.c: New file.
6454 * tst-oncex4.c: New file.
6455 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6456
e479cc8e
UD
64572003-06-29 Ulrich Drepper <drepper@redhat.com>
6458
6459 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6460
7d7ff54c
UD
64612003-06-27 Ulrich Drepper <drepper@redhat.com>
6462
483e95d0
UD
6463 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6464 (tf_msgsnd): Likewise.
6465
7d7ff54c
UD
6466 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6467 premature returns a bit more.
6468
7539c7ec
UD
64692003-06-26 Ulrich Drepper <drepper@redhat.com>
6470
6471 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6472 definition to the front.
6473
6474 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6475 the cleanup functions to make the names unique. Fix dwarf opcode
6476 un unwind table.
6477 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6478 functions to make the names unique. Fix CFA offset for two blocks.
6479
0af6a1d9
UD
64802003-06-25 Ulrich Drepper <drepper@redhat.com>
6481
6482 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6483 missing closing braces.
6484 Patch by Christophe Saout <christophe@saout.de>.
6485
eef4a9f3
RM
64862003-06-24 Roland McGrath <roland@redhat.com>
6487
6488 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6489
4165d44d
UD
64902003-06-24 Ulrich Drepper <drepper@redhat.com>
6491
7f8f7b9d
UD
6492 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6493 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6494
4165d44d
UD
6495 * pthreadP.h: Declare __find_thread_by_id.
6496 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6497 * pthread_clock_gettime.c: Allow using other thread's clock.
6498 * pthread_clock_settime.c: Likewise.
6499 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6500 * Makefile: Add rules to build and run tst-clock2.
6501 * tst-clock2.c: New file.
6502
67b78ef9
UD
65032003-06-23 Ulrich Drepper <drepper@redhat.com>
6504
6505 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6506 to use exception-based cleanup handler.
6507 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6508
6509 * tst-cond8.c (ch): Announce that we are done.
6510
6511 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6512
6513 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6514 Also test aio_suspend with timeout value.
6515
61623643
UD
65162003-06-22 Ulrich Drepper <drepper@redhat.com>
6517
3a4f2043
UD
6518 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6519 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6520 attribute_hidden.
6521
61623643
UD
6522 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6523 (__pthread_mutex_lock_internal): Likewise.
6524 (__pthread_mutex_unlock_internal): Likewise.
6525 (__pthread_mutex_unlock_usercnt): Declare.
6526 * pthread_mutex_destroy.c: Always fail if used in any way.
6527 * pthread_mutex_init.c: Update comment.
6528 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6529 * pthread_mutex_timedlock.c: Adjust __nusers.
6530 * pthread_mutex_trylock.c: Adjust __nusers.
6531 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6532 and public interfaces are wrapper with pass additional parameter.
6533 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6534 parameter zero.
6535 * tst-mutex8.c: New file.
6536 * Makefile (tests): Add tst-mutex8.
6537 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6538 __pthread_mutex_unlock_usercnt.
6539 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6540 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6541 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6542 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6543 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6544 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6545 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6546 Add __nusers.
6547 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6548 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6549 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6550 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6551 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6552
6553 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6554 * pthread_mutex_timedlock.c: Likewise.
6555 * pthread_mutex_trylock.c: Adjust __nusers.
6556 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6557 * tst-mutex9.c: New file.
6558 * Makefile (tests): Add tst-mutex9.
6559 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6560 * sysdeps/ia64/tls.h: Likewise.
6561 * sysdeps/powerpc/tls.h: Likewise.
6562 * sysdeps/s390/tls.h: Likewise.
6563 * sysdeps/sh/tls.h: Likewise.
6564 * sysdeps/x86_64/tls.h: Likewise.
6565 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6566 Change type of __owner.
6567 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6568 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6569 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6570 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6571 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6572
9bdabb94
UD
65732003-06-19 Jakub Jelinek <jakub@redhat.com>
6574
6575 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6576 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6577
6578 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6579 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6580 instead of nr to lll_futex_wake. Only set errno and return -1
6581 if err < 0.
6582
6583 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6584 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6585 return actual return value from the syscall, not 0.
6586
f6c93bd9
UD
65872003-06-18 Ulrich Drepper <drepper@redhat.com>
6588
ca343e73
UD
6589 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6590 find a random value.
6591 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6592 errno==EIDRM.
6593
50441a98
UD
6594 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6595 compat_timer_settime.
6596 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6597 compat_timer_gettime.
6598 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6599 compat_timer_getoverrun.
50441a98
UD
6600 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6601 compat_timer_delete.
6602
f6c93bd9
UD
6603 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6604 error-checking mutex detect busy mutexes.
6605
047aec8f
UD
66062003-06-17 Ulrich Drepper <drepper@redhat.com>
6607
1d53508d
UD
6608 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6609 Add ax to clobber list.
6610 (lll_mutex_cond_lock): Likewise.
6611 (lll_mutex_unlock): Likewise.
6612 (lll_lock): Likewise.
6613 (lll_unlock): Likewise.
6614
f23b30e2
UD
6615 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6616 * tst-cancel18.c: New file.
6617 * tst-cancelx18.c: New file.
6618
6619 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6620 and tcdrain.
6621
6622 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6623 * tst-cancel17.c: New file.
6624 * tst-cancelx17.c: New file.
6625
6626 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6627 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6628 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6629
047aec8f
UD
6630 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6631
bbde8527
UD
66322003-06-16 Jakub Jelinek <jakub@redhat.com>
6633
6634 * sysdeps/pthread/createthread.c (create_thread): Set
6635 header.multiple_threads unconditionally.
6636 * allocatestack.c (allocate_stack): Likewise.
6637 * descr.h (struct pthread): Add header.multiple_threads
6638 unconditionally.
6639 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6640 Define for librt. #error if neither libpthread, libc nor librt.
6641 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6642 Likewise.
6643 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6644 CDISABLE): Likewise.
6645 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6646 CDISABLE): Likewise.
6647 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6648 CDISABLE): Likewise.
6649 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6650 CDISABLE): Likewise. Access header.multiple_threads outside of
6651 libc and libpthread.
6652 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6653 Likewise.
6654 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6655 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6656
26676450
UD
66572003-06-17 Ulrich Drepper <drepper@redhat.com>
6658
6659 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6660 Also test early cancellation before the thread reaches the cancellation
6661 point.
6662
6663 * Makefile: Compile forward.c with exceptions.
6664
6665 * sysdeps/unix/sysv/linux/sleep.c: New file.
6666
301a6724
UD
66672003-06-16 Ulrich Drepper <drepper@redhat.com>
6668
0e0deb03
UD
6669 * Makefile: Add CFLAGS definition to compile function wrappers
6670 duplicated from libc with exceptions.
6671 * tst-cancel4.c: Also check cancellation handlers.
6672
301a6724
UD
6673 * Makefile: Add rules to build and run tst-cancel16 and
6674 tst-cancelx16. Add missing CFLAGS definitions.
6675 * tst-cancel16.c: New file.
6676 * tst-cancelx16.c: New file.
6677
7a114794
UD
66782003-06-15 Ulrich Drepper <drepper@redhat.com>
6679
452aea84
UD
6680 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6681 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6682 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6683 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6684
7a114794
UD
6685 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6686 (LIBC_CANCEL_RESET): Likewise.
6687 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6688 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6689 librt-cancellation.
6690 (CFLAGS-libcrt-cancellation.c): Define.
6691 * sysdeps/pthread/librt-cancellation.c: New file.
6692 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6693 macros also when compiling librt.
6694 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6695 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6696 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6697 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6698 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6699 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6700 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6701
6702 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6703 compat_timer_create.
6704
8ba1d429
UD
67052003-06-14 Ulrich Drepper <drepper@redhat.com>
6706
cc8fb6f3
UD
6707 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6708
8ba1d429
UD
6709 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6710 __register_atfork.
6711 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6712 Add libc_hidden_def.
6713
d4f100e2
RM
67142003-06-13 Roland McGrath <roland@redhat.com>
6715
6716 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6717 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6718
dd9423a6
UD
67192003-06-11 Ulrich Drepper <drepper@redhat.com>
6720
6721 * allocatestack.c (queue_stack): Always inline.
6722 * ptreadhP.h (__do_cancel): Likewise.
6723
ed24330d
JJ
67242003-06-10 Jakub Jelinek <jakub@redhat.com>
6725
6726 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6727 a typo.
6728
06120d79
UD
67292003-06-10 Ulrich Drepper <drepper@redhat.com>
6730
6731 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6732 (__pthread_cond_signal): Remove incorrect second addition for
6733 cond_lock!=0.
6734
b1720346
UD
67352003-06-09 Ulrich Drepper <drepper@redhat.com>
6736
5b318f85
UD
6737 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6738 (__pthread_cond_signal): Use correct futex pointer in
6739 __lll_mutex_lock_wait call.
6740
b1720346
UD
6741 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6742 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6743
3e36c37d
UD
67442003-06-08 Ulrich Drepper <drepper@redhat.com>
6745
ecf7955d
UD
6746 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6747 cancelable.
ed24330d 6748 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6749 Likewise.
6750
3e36c37d
UD
6751 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6752 hand-written CFI generation code. Since ENTRY/END also initiated
6753 CFI frames this caused two CFI sets to be generated.
6754
7726edc2
UD
67552003-06-07 Ulrich Drepper <drepper@redhat.com>
6756
6757 * cleanup_routine.c: New file.
6758 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6759 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6760 cleanup handling.
6761 * Makefile (libpthread-routines): Add cleanup_routine.
6762 Add more CFLAGS variables to compile with exceptions. Add comments
6763 why which file needs unwind tables.
6764 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6765 tests.
6766 * tst-cancelx1.c: New file.
6767 * tst-cancelx2.c: New file.
6768 * tst-cancelx3.c: New file.
6769 * tst-cancelx4.c: New file.
6770 * tst-cancelx5.c: New file.
6771 * tst-cancelx6.c: New file.
6772 * tst-cancelx7.c: New file.
6773 * tst-cancelx8.c: New file.
6774 * tst-cancelx9.c: New file.
6775 * tst-cancelx10.c: New file.
6776 * tst-cancelx11.c: New file.
6777 * tst-cancelx12.c: New file.
6778 * tst-cancelx13.c: New file.
6779 * tst-cancelx14.c: New file.
6780 * tst-cancelx15.c: New file.
6781 * tst-cleanupx0.c: New file.
6782 * tst-cleanupx0.expect: New file.
6783 * tst-cleanupx1.c: New file.
6784 * tst-cleanupx2.c: New file.
6785 * tst-cleanupx3.c: New file.
6786
6787 * tst-cleanup0.c: Make standard compliant.
6788 * tst-cleanup1.c: Likewise.
6789
6790 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6791 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6792 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6793 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6794 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6795 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6796 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6797 CLEANUP_JMP_BUF.
6798 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6799 * tst-cancel12.c: New file.
6800 * tst-cancel13.c: New file.
6801 * tst-cancel14.c: New file.
6802 * tst-cancel15.c: New file.
6803 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6804 and tst-cancel15.
6805
6806 * tst-cancel1.c: Add some comments.
6807
6808 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6809 timeout correctly.
6810
7a8a8e21
UD
68112003-06-06 Ulrich Drepper <drepper@redhat.com>
6812
6813 * Makefile (CFLAGS-pthread_cancel.c): Define.
6814
4ad0bbf4
UD
68152003-06-05 Ulrich Drepper <drepper@redhat.com>
6816
6817 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6818 Change type of __writer element to int.
6819 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6820 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6821 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6822 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6823 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6824 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6825 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6826 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6827 Compare with TID to determine deadlocks.
6828 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6829 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6830 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6831 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6832 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6833 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6834 Likewise.
6835 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6836 Likewise.
6837 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6838 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6839 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6840 Likewise.
6841 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6842 Likewise.
6843 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6844 * Makefile (tests): Add tst-rwlock12.
6845 * tst-rwlock12.c: New file.
6846
332faa96
JJ
68472003-06-05 Jakub Jelinek <jakub@redhat.com>
6848
6849 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6850 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6851 Remove bogus hidden_proto.
6852 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6853 Likewise.
6854 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6855 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6856 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6857 ___lll_mutex_timedlock): Likewise.
6858
29d9e2fd
UD
68592003-06-04 Ulrich Drepper <drepper@redhat.com>
6860
6861 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6862 (__pthread_cond_signal): Add some code to eventually handle
6863 cond_lock!=0.
6864
6f1acb30
UD
68652003-06-01 Ulrich Drepper <drepper@redhat.com>
6866
6867 * Makefile (tests): Add tst-exec4.
6868 (tst-exec4-ARGS): Define.
6869 * tst-exec4.c: New file.
6870
49b65043
UD
68712003-05-31 Ulrich Drepper <drepper@redhat.com>
6872
31195be2
UD
6873 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6874 Also fail if tv_nsec < 0.
6875 (__lll_timedwait_tid): Likewise.
6876 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6877 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6878 Likewise.
6879 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6880 Likewise.
6881 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6882 Likewise.
6883 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6884 Likewise.
80b54217
UD
6885 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6886 Likewise.
6887 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6888 Likewise.
31195be2 6889
dcfc8224
UD
6890 * Makefile (tests): Add tst-sem8 and tst-sem9.
6891 * tst-sem8.c: New file.
6892 * tst-sem9.c: New file.
6893 * sem_open.c: Fix creation of in_use record if the file exists but
6894 no internal record.
6895
49b65043
UD
6896 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6897 definitions.
6898
6899 * sysdeps/pthread/timer_create.c (timer_create): In case
6900 evp==NULL, assign timer ID to sival_ptr.
6901
6902 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6903 struct pthread_unwind_buf *.
6904 (struct pthread): Likewise for cleanup_jmp_buf element.
6905
6906 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6907 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6908 * unwind.c (__pthread_unwind_next): Likewise.
6909
50794a45
UD
69102003-05-30 Ulrich Drepper <drepper@redhat.com>
6911
5d4f57bd
UD
6912 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6913 (lll_futex_timed_wait): Use int for futex value parameter.
6914 (lll_futex_wake): Likewise.
6915 (lll_futex_requeue): Likewise.
6916
6917 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6918 Replace one memory operation with one register operation.
6919
6920 * tst-join4.c (do_test): Fix error message.
6921
7ab7ea33
UD
6922 * tst-rwlock6.c (do_test): Use correct format specifier.
6923
6924 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6925 (__lll_mutex_lock_wait): Replace one memory operation with one
6926 register operation.
6927 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6928 (__lll_mutex_lock_wait): Likewise.
6929
50794a45
UD
6930 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6931 (__lll_mutex_cond_lock): Add one to value parameter of
6932 __lll_lock_wait to reflect reality in the futex syscall.
6933 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6934 (lll_mutex_cond_lock): Likewise.
6935
5a70784e
JJ
69362003-05-30 Jakub Jelinek <jakub@redhat.com>
6937
6938 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
6939 New function.
6940 (lll_mutex_cond_lock): Define.
6941
e7c5ac68
UD
69422003-05-29 Ulrich Drepper <drepper@redhat.com>
6943
586d1748
UD
6944 * Makefile (tests): Add tst-signal6.
6945 * tst-signal6.c: New file.
6946
b8ba4a27
UD
6947 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
6948 (__lll_mutex_unlock_force): New function
6949 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6950
65d46efe
UD
6951 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6952 (__lll_mutex_unlock_force): New function.
6953 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
6954
6955 * tst-rwlock7.c (do_test): Use correct format specifier.
6956
e7c5ac68
UD
6957 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
6958 Find break parameter in correct asm argument.
6959
284bdc42
UD
69602003-05-27 Jakub Jelinek <jakub@redhat.com>
6961
6962 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
6963 Remove out4.
6964 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
6965 error occured.
6966 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6967 Add __mutex.
6968 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
6969 lll_futex_requeue, lll_mutex_unlock_force): Define.
6970
e7c5ac68
UD
69712003-05-30 Jakub Jelinek <jakub@redhat.com>
6972
6973 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6974 (pthread_cond_t): Add __mutex.
6975 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
6976 lll_futex_requeue, lll_mutex_unlock_force): Define.
6977
ea2630c6
UD
69782003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6979
6980 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
6981 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 6982 Add __mutex field.
ea2630c6
UD
6983 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
6984 Define.
6985 (lll_futex_wait, lll_futex_wake): Define.
6986 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
6987 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
6988 FUTEX_REQUEUE instead of FUTEX_WAIT.
6989 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
6990 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
6991 mutex which was used in condvar structure. Call
6992 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
6993 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
6994
6995 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
6996 include tcb-offsets.h. Read wakeup value in locked region.
6997 Use the value of gbr register as THREAD_ID.
6998 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6999 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7000 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7001
7002 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
7003 macros.
7004
5a77f150
UD
70052003-05-28 Ulrich Drepper <drepper@redhat.com>
7006
7007 * sysdeps/pthread/pthread_cond_broadcast.c
7008 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
7009
7661d9f7
UD
70102003-05-26 Ulrich Drepper <drepper@redhat.com>
7011
7012 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
7013 typo in register name.
7014 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
7015 correctly. Actually use requeue. Little optimization.
7016 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
7017 mutex address early. Handle cancellation state as 32-bit value.
7018 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7019 Remove unnecessary label.
7020
69431c9a
UD
70212003-05-25 Ulrich Drepper <drepper@redhat.com>
7022
7023 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
7024 instead of FUTEX_WAIT.
7025 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
7026 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
7027 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
7028 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
7029 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7030 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
7031 used in condvar structure. Call __pthread_mutex_cond_lock instead
7032 of __pthread_mutex_lock_internal.
7033 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7034 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7035 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7036 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
7037 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7038 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7039 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
7040 Add pthread_mutex_cond_lock.
7041 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
7042 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
7043 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
7044 lll_mutex_cond_lock.
7045 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7046 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 7047 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 7048 Add __mutex field.
248a3490 7049 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
7050 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7051
7052 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
7053 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7054
7055 * pthreadP.h: Declare __pthread_mutex_cond_lock.
7056 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
7057 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
7058 macro don't define aliases.
7059
7060 * cancellation.c: Remove __pthread_enable_asynccancel_2.
7061 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
7062 * sysdeps/pthread/pthread_cond_timedwait.c: Use
7063 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
7064 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7065 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7066 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7067 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7068 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7069
fddfebbd
UD
70702003-05-17 Ulrich Drepper <drepper@redhat.com>
7071
7072 * sem_open.c: Fix one endless loop. Implement correct semantics
7073 wrt opening the same semaphore more then once.
7074 * sem_close.c: Adjust for sem_open change.
7075 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
7076 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
7077 * Makefile (tests): Add tst-sem7.
7078 * tst-sem7.c: New file.
7079
1eefffb0
RM
70802003-05-16 Roland McGrath <roland@redhat.com>
7081
7082 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
7083 uninitialized variable braino.
7084
6e66dc78
UD
70852003-05-16 Ulrich Drepper <drepper@redhat.com>
7086
23ae6451
UD
7087 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
7088 test for syscall availability.
7089
7090 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
7091 __no_posix_timers to -1 if the syscalls don't exist.
7092
7ac5b8e2
UD
7093 * pthread_join.c (pthread_join): Set tid field of the joined
7094 thread to -1. This isn't necessary but helps to recognize some
7095 error conditions with almost no cost.
7096
7097 * allocatestack.c (FREE_P): Also negative values indicate an
7098 unused stack.
7099
6e66dc78
UD
7100 * unwind.c: Include <unistd.h>.
7101
855dba3c
UD
71022003-05-14 Ulrich Drepper <drepper@redhat.com>
7103
7104 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
7105
81f3ac4c
UD
71062003-05-14 Jakub Jelinek <jakub@redhat.com>
7107
7108 * Makefile (crti-objs, crtn-objs): New variables.
7109 (omit-deps, extra-objs): Add crtn.
7110 ($(objpfx)libpthread.so): Depend on both crti and crtn
7111 and links to them in multidir.
7112 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
7113
7158eae4
UD
71142003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
7115
7116 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7117 (lll_mutex_unlock): Use atomic_exchange_rel.
7118
edf205d5
UD
71192003-05-11 Ulrich Drepper <drepper@redhat.com>
7120
7121 * cond-perf.c (cons): Add missing locking around setting of alldone.
7122
a3f979a7
UD
71232003-05-10 Ulrich Drepper <drepper@redhat.com>
7124
7125 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
7126 related macros.
7127 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7128
880867a4
UD
71292003-05-09 Ulrich Drepper <drepper@redhat.com>
7130
949ec764
UD
7131 * tst-sem6.c: New file.
7132 * Makefile (tests): Add tst-sem6.
7133
7134 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
7135 Use atomic_exchange_rel instead of atomic_exchange.
7136 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
7137 Likewise.
7138
7139 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
7140 code for lll_futex_wait and lll_futex_wake in static apps. Use
7141 vsyscall is possible.
7142
7143 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
7144 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
7145 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
7146 pthread_setaffinity_np.
7147 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
7148 and pthread_setaffinity_np.
7149 * Makefile (libpthread-routines): Add pthread_getaffinity and
7150 pthread_setaffinity.
7151
880867a4
UD
7152 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
7153 use it in case mmap to allocate the stack fails.
7154 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
7155 ARCH_MAP_FLAGS here.
7156 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
7157 ARCH_RETRY_MMAP.
7158
92d83c72
UD
71592003-05-08 Ulrich Drepper <drepper@redhat.com>
7160
7161 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
7162 handler implementation. It is now lockless in fork().
7163 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
7164 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
7165 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
7166 declare the __fork_*_lists.
7167 (struct fork_handler): Include pointers to all three functions.
7168 Add next, refcntr and need_signal elements.
7169 (__fork_handlers): New declaration.
7170 (__register_atfork_malloc): Remove declaration.
7171 (HAVE_register_atfork_malloc): Remove definition.
7172 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
7173 __pthread_child_handler variable.
7174 (__libc_pthread_init): Use __register_atfork instead of explicitly
7175 adding to the list.
7176 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
7177 and lll_futex_wake.
7178 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7179
7180 * unwind.c (unwind_cleanup): Print error message and then abort. This
7181 function must never be reached.
7182
7183 * cond-perf.c: New file.
7184
be4d8038
UD
71852003-05-05 Ulrich Drepper <drepper@redhat.com>
7186
7187 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
7188
c6696b79
RM
71892003-05-04 Roland McGrath <roland@redhat.com>
7190
7191 * Makefile ($(objpfx)../libc.so): New target.
7192
7da168bf
UD
71932003-05-02 Ulrich Drepper <drepper@redhat.com>
7194
7195 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7196 (pthread_condattr_t): Size is only an int, don't use long for
7197 alignment.
7198 (pthread_mutexattr_t): Likewise.
7da168bf
UD
7199 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7200 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7201 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7202
9a7178d6
UD
72032003-05-01 Ulrich Drepper <drepper@redhat.com>
7204
7205 * sysdeps/i386/tls.h: Define THREAD_ID.
7206 * sysdeps/ia64/tls.h: Likewise.
7207 * sysdeps/powerpc/tls.h: Likewise.
7208 * sysdeps/s390/tls.h: Likewise.
7209 * sysdeps/sh/tls.h: Likewise.
7210 * sysdeps/x86_64/tls.h: Likewise.
7211 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
7212 record ownership.
7213 * pthread_mutex_timedlock.c: Likewise.
7214 * pthread_mutex_trylock.c: Likewise.
7215 * pthread_mutex_unlock.c: Likewise.
7216 * pthread_rwlock_trywrlock.c: Likewise.
7217 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
7218 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7219 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
7220 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7221
7222 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
7223 flag.
7224
a234e27d
UD
72252003-04-29 Jakub Jelinek <jakub@redhat.com>
7226
7227 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7228 (__SIZEOF_PTHREAD_COND_T): Define to 48.
7229 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
7230 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7231 Make __align long long instead of long.
7232 (pthread_rwlock_t): Formatting.
7233 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
7234 (pthread_rwlock_t): Formatting.
7235 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7236 (pthread_cond_t): Make __align long long instead of long.
7237 (pthread_rwlock_t): Move __flags field to the same position as in
7238 linuxthreads.
7239
f025c136
UD
72402003-04-30 Ulrich Drepper <drepper@redhat.com>
7241
7242 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
7243 * tst-rwlock7.c (do_test): Likewise.
7244
7531ab9e
RM
72452003-04-26 Roland McGrath <roland@redhat.com>
7246
7247 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
7248
299601a1
UD
72492003-04-22 Jakub Jelinek <jakub@redhat.com>
7250
299601a1
UD
7251 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
7252 sizeof (struct pthread).
7253 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 7254 1 struct pthread.
299601a1
UD
7255 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
7256 to 0.
7257 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
7258 struct pthread.
7259 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
7260 to 32-bit bytes.
7261 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
7262 tcbp.
7263 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
7264 unneccessarily.
7265 (NO_TLS_OFFSET): Define.
299601a1
UD
7266 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
7267 add TLS_TCB_SIZE unnecessarily.
299601a1 7268
950094f8
RM
72692003-04-22 Roland McGrath <roland@redhat.com>
7270
7271 * Makeconfig (shared-thread-library): Reverse link order to work
7272 around linker bug.
7273
dc2f6455
UD
72742003-04-22 Ulrich Drepper <drepper@redhat.com>
7275
7276 * semaphore.h: Fix typo in comment.
7277
e7608d77
UD
72782003-04-21 Ulrich Drepper <drepper@redhat.com>
7279
6a87ee19
UD
7280 * sysdeps/pthread/sigfillset.c: New file.
7281
e7608d77
UD
7282 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
7283 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
7284 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
7285 * sysdeps/pthread/sigaction.c: Likewise.
7286 * sysdeps/pthread/sigprocmask.c: New file.
7287 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
7288 __SIGRTMIN+1.
7289 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7290 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
7291 in this case.
7292
0b3df49e
UD
72932003-04-19 Ulrich Drepper <drepper@redhat.com>
7294
58a7a325
UD
7295 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7296 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
7297
0b3df49e
UD
7298 * sysdeps/unix/sysv/linux/unregister-atfork.c
7299 (__unregister_atfork): Don't free memory not allocated dynamically.
7300
7301 * semaphore.h: Remove __THROW marker from cancellation points.
7302 * nptl/sysdeps/pthread/pthread.h: Likewise.
7303
7d74651e
UD
73042003-04-18 Ulrich Drepper <drepper@redhat.com>
7305
76a67697
UD
7306 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
7307 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
7308 __THROW.
7309
dd9d6538
JJ
73102003-04-16 Jakub Jelinek <jakub@redhat.com>
7311
7312 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
7313
4ab6f47c
RM
73142003-04-15 Roland McGrath <roland@redhat.com>
7315
7316 * forward.c (__pthread_unwind): Tweak to avoid warning.
7317
162434a6
UD
73182003-04-15 Ulrich Drepper <drepper@redhat.com>
7319
7320 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
7321
35909161
UD
73222003-04-14 Ulrich Drepper <drepper@redhat.com>
7323
18ddd3aa 7324 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
7325 overflow CFA advance instructions.
7326 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7327
18a8e730
UD
73282003-04-14 Jakub Jelinek <jakub@redhat.com>
7329
bd4f43b4
UD
7330 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
7331 * sysdeps/i386/pthread_spin_lock.c: Likewise.
7332 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
7333 defined.
7334
18a8e730
UD
7335 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
7336 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
7337 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
7338 DW_CFA_advance_loc for .Laddl-.Lsubl.
7339
08c765fa
UD
73402003-04-13 Ulrich Drepper <drepper@redhat.com>
7341
18a8e730
UD
7342 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
7343 position-independent unwind data for static libraries.
7344 Add missing unwind info. Add comments.
7345
ad2be852
UD
7346 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
7347 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7348 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
7349 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7350
177d1ad3
UD
73512003-04-12 Ulrich Drepper <drepper@redhat.com>
7352
08c765fa
UD
7353 * Makefile: Make sure all cancellation points are compiled with
7354 exception and asynchronous unwind tables.
7355
177d1ad3
UD
7356 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
7357 which mishandles loading of global object addresses in PIC.
7358 (THREAD_SETMEM_NC): Likewise.
7359
09d65ff3
UD
73602003-04-11 Ulrich Drepper <drepper@redhat.com>
7361
7362 * pthread.h: Define new data structure for cleanup buffer. Declare
7363 new cleanup handler interfaces.
7364 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
7365 (struct pthread): Add cleanup_jmp_buf pointer. Define
7366 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
7367 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
7368 it. Declare old cleanup handler installation functions.
7369 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
7370 handling.
7371 * cleanup_defer.c: Likewise.
7372 * cleanup_compat.c: New file. Old cleanup code.
7373 * cleanup_def_compat.c: New file. Old cleanup code.
7374 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7375 if own thread descriptor.
7376 * unwind.c: New file.
7377 * forward.c: Add __pthread_unwind.
7378 * init.c (pthread_functions): Add __pthread_unwind.
7379 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7380 Add ptr___pthread_unwind.
7381 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7382 and unwind function.
7383 * Makefile (libpthread-routines): Add cleanup_compat,
7384 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7385 table generation if necessary.
7386 * version.c: Record whether unwind support is compiled in.
7387 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7388 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7389 handler interfaces.
7390 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7391 complication to generate unwind information for syscall wrappers.
68107ec0 7392 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7393 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7394 __cleanup_fct_attribute.
7395
7396 * Makefile: Add rules to build and run tst-cleanup0.
7397 * tst-cleanup0.c: New file.
7398 * tst-cleanup0.expect: New file.
7399
7400 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7401 caller. Optimize to avoid often unecessary local variable.
7402
0dc44b51
RM
74032003-04-11 Roland McGrath <roland@redhat.com>
7404
7405 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7406 sets variable `multidir'; include that.
7407 (generated): Add it.
7408 ($(objpfx)$(multidir)/crti.o): New target.
7409 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7410
84a80719
UD
74112003-04-11 Ulrich Drepper <drepper@redhat.com>
7412
7413 * tst-attr2.c (do_test): Add cast to avoid warning.
7414 * tst-mutex4.c (do_test): Likewise.
7415
88ff4759
UD
74162003-04-10 Ulrich Drepper <drepper@redhat.com>
7417
7418 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7419 in child.
7420
b2041097
UD
74212003-04-09 Ulrich Drepper <drepper@redhat.com>
7422
7423 * Makefile (tests): Add tst-detach1.
7424 * tst-detach1.c: New file.
7425
f9657e88
UD
74262003-04-08 Ulrich Drepper <drepper@redhat.com>
7427
9afe4964
UD
7428 * sysdeps/pthread/pthread.h: Remove duplicate
7429 pthread_cleanup_{push,pop} definitions.
7430
f9657e88
UD
7431 * tst-barrier2.c: Eliminate warnings.
7432 * tst-cancel4.c: Likewise.
7433 * tst-cond4.c: Likewise.
7434 * tst-cond6.c: Likewise.
7435 * tst-detach1.c: Likewise.
7436 * tst-rwlock4.c: Likewise.
7437 * tst-rwlock6.c: Likewise.
7438 * tst-rwlock7.c: Likewise.
7439 * tst-sem3.c: Likewise.
7440 * tst-spin2.c: Likewise.
7441 * tst-umask1.c: Likewise.
7442
69b35e86
UD
74432003-04-07 Ulrich Drepper <drepper@redhat.com>
7444
7445 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7446
c70ad7d7
UD
74472003-04-06 Ulrich Drepper <drepper@redhat.com>
7448
7449 * descr.h (struct pthread): Move cancelhandling member to the front.
7450
54e0138f
UD
74512003-04-05 Ulrich Drepper <drepper@redhat.com>
7452
7453 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7454 malloc_parent, and malloc_child statically.
7455 (__register_atfork_malloc): New function.
7456 (free_mem): Don't free any of the malloc_* variables on the list.
7457 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7458 Define HAVE_register_atfork_malloc.
7459
b22d701b
UD
74602003-04-04 Ulrich Drepper <drepper@redhat.com>
7461
7462 * sysdeps/pthread/createthread.c (create_thread): Add some more
7463 comments explaining when to set multiple_threads and when not.
7464
7465 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7466 THREAD_ATOMIC_BIT_SET if not already defined.
7467 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7468 THREAD_ATOMIC_BIT_SET:
7469 * sysdeps/x86_64/tls.h: Likewise.
7470 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7471 THREAD_ATOMIC_CMPXCHG_VAL.
7472 (_pthread_cleanup_pop_restore): Likewise.
7473 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7474 (__pthread_enable_asynccancel_2): Likewise.
7475 (__pthread_disable_asynccancel): Likewise.
7476 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7477 (__libc_disable_asynccancel): Likewise.
7478 * init.c (sigcancel_handler): Likewise.
7479 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7480 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7481
86246935
UD
74822003-04-03 Ulrich Drepper <drepper@redhat.com>
7483
7484 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7485 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7486 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7487 * Makefile (tests): Add tst-cancel11.
7488 * tst-cancel11.c: New file.
7489
6b4686a5
UD
74902003-04-01 Ulrich Drepper <drepper@redhat.com>
7491
7492 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7493 round, not the first. Use specific_used flag instead of local
7494 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7495 (__free_tcb): Don't call deallocate_tsd here.
7496 (start_thread): Call deallocate_tsd here.
7497 * pthread_setspecific.c: Set specific_used flag really only when
7498 needed.
0d73a73b 7499 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7500 * tst-tsd3.c: New file.
0d73a73b 7501 * tst-tsd4.c: New file.
6b4686a5 7502
42b2395d
UD
75032003-03-31 Ulrich Drepper <drepper@redhat.com>
7504
211d90c5
UD
7505 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7506 Use atomic_exchange_and_add instead of __lll_add.
7507 (__lll_mutex_timedlock): Likewise.
7508 Patch by Ian Wienand.
7509
75102003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7511
7512 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7513 (SINGLE_THREAD_P): Fix typo.
7514 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7515
75162003-03-31 Ulrich Drepper <drepper@redhat.com>
7517
7518 * Makefile (tests): Add tst-align.
7519 * tst-align.c: New file.
7520 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7521
42b2395d
UD
7522 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7523 function correctly.
7524
211d90c5
UD
7525 * tst-tsd2.c: Add casts to avoid warnings.
7526
163b180f
UD
75272003-03-30 Ulrich Drepper <drepper@redhat.com>
7528
7529 * descr.h (struct pthread): Move most often used elements to the front.
7530
ea473bad
UD
75312003-03-29 Ulrich Drepper <drepper@redhat.com>
7532
7533 * Makefile (libpthread-routines): Add pthread_atfork.
7534 (libpthread-static-only-routines): Add pthread_atfork.
7535
dd731d53
UD
75362003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7537
7538 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7539 of TLS_DTV_AT_TP.
7540 (INSTALL_DTV): Add parens.
7541 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7542 Use passed descr instead of THREAD_SELF.
7543 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7544 (__lll_mutex_timedlock_wait): Correct expected value after
7545 spurious wakeup.
7546 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7547 Release lock before waking up the waiters.
7548 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7549 criteria. Reorderstruct passed to cleanup handler. Fix
7550 handling of cancellation and failung pthread_mutex_unlock call.
7551 Use __pthread_enable_asynccancel_2 instead of
7552 __pthread_enable_asynccancel.
7553 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7554 Return result of lock re-get if it fails.
7555 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7556 for __pthread_cleanup_push.
7557 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7558 completely broken rwlock implementation.
7559 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7560 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7561 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7562 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7563 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7564 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7565 versioned_symbol macro.
7566 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7567 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7568
c75d02f0
UD
75692003-03-27 Ulrich Drepper <drepper@redhat.com>
7570
5f5004df
UD
7571 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7572 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7573 and __helper_tid.
7574 (struct timer): Remove th and bar field.
7575 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7576 debugging code. Create only one helper thread.
7577 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7578 helper thread.
7579 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7580 Renamed. Define statically. Use thread info from siginfo.
7581 (__helper_once): New variable.
7582 (__helper_tid): New variable.
7583 (__reset_helper_control): New function.
7584 (__start_helper_thread): New function.
7585
18d009ca
UD
7586 * pthread_create.c (start_thread): Don't use setjmp inside
7587 __builtin_expect to work around gcc bug.
7588
c75d02f0
UD
7589 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7590 timer_delete syscall fails, but not with ENOSYS, set
7591 __no_posix_timers.
7592
7593 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7594 (timer_settime): Fix typo.
28cf3058
UD
7595 * sysdeps/unix/sysv/linux/timer_getoverr.c
7596 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7597
049ac259
JJ
75982003-03-27 Jakub Jelinek <jakub@redhat.com>
7599
7600 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7601 offset of cleanupbuf.__prev.
7602
f93d39dd
JJ
76032003-03-26 Jakub Jelinek <jakub@redhat.com>
7604
7605 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7606 of included file.
7607
f064e4c5
UD
76082003-03-26 Ulrich Drepper <drepper@redhat.com>
7609
7610 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7611 NULL provide default definition to syscall.
7612
83e886a3
RM
76132003-03-25 Roland McGrath <roland@redhat.com>
7614
7615 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7616 (timer_id2ptr): Fix typo.
7617
09402f5b
UD
76182003-03-25 Ulrich Drepper <drepper@redhat.com>
7619
7620 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7621 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7622 * sysdeps/ia64/pthreaddef.h: Likewise.
7623 * sysdeps/powerpc/pthreaddef.h: Likewise.
7624 * sysdeps/s390/pthreaddef.h: Likewise.
7625 * sysdeps/sh/pthreaddef.h: Likewise.
7626 * sysdeps/x86_64/pthreaddef.h: Likewise.
7627 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7628 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7629 being changed.
7630 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7631 SIGTIMER is not unblocked.
7632 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7633 RT signal taken.
7634 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7635 be send.
7636 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7637 pass pointer through as ID.
7638 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7639 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7640 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7641 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7642 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7643 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7644 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7645 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7646 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7647 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7648 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7649 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7650 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7651 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7652 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7653 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7654 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7655 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7656 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7657 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7658 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7659 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7660 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7661 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7662 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7663 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7664 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7665 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7666 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7667 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7668 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7669 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7670 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7671
7672 * pthreadP.h: Remove FRAME_LEFT definition.
7673 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7674 already left frame. Programs which have this problem are not POSIX
7675 compliant.
7676 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7677
5e826ab5
UD
76782003-03-24 Ulrich Drepper <drepper@redhat.com>
7679
7680 * sysdeps/pthread/tst-timer.c: Check return values of the
7681 functions we test.
7682
b910f788
RM
76832003-03-23 Roland McGrath <roland@redhat.com>
7684
3045a1fe
RM
7685 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7686 * tst-tls3mod.c: Likewise.
7687 * tst-tls1.c: Likewise.
7688 * tst-tls2.c: Likewise.
7689
85047fe3
RM
7690 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7691 undefined behavior.
7692
b910f788
RM
7693 * tst-join5.c (tf1, tf2): Add a cast.
7694
7695 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7696
7697 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7698 Don't test anything.
7699 * tst-cond4.c: Likewise.
7700 * tst-cond6.c: Likewise.
7701 * tst-flock2.c: Likewise.
7702 * tst-mutex4.c: Likewise.
7703 * tst-rwlock4.c: Likewise.
7704 * tst-signal1.c: Likewise.
7705 * tst-spin2.c: Likewise.
7706 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7707
7708 * tst-mutex4.c: Use test-skeleton.c.
7709 * tst-spin2.c: Likewise.
7710 * tst-sysconf.c: Likewise.
7711 * tst-barrier2.c: Likewise.
7712 * tst-cond4.c: Likewise.
7713 * tst-cond6.c: Likewise.
7714 * tst-rwlock4.c: Likewise.
7715 * tst-unload.c: Likewise.
7716 * tst-flock2.c (do_test): Use return instead of exit.
7717
4baa087a
RM
77182003-03-22 Jakub Jelinek <jakub@redhat.com>
7719
7720 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7721
5a3ab2fc
UD
77222003-03-21 Ulrich Drepper <drepper@redhat.com>
7723
9f07eae2
UD
7724 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7725 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7726 instead of __lll_compare_and_swap.
7727 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7728 Likewise.
7729 Removed definition if __lll_compare_and_swap.
7730
5a3ab2fc
UD
7731 * cancellation.c: Adjust for new form of compare&exchange macros.
7732 * cleanup_defer.c: Likewise.
7733 * init.c: Likewise.
7734 * libc-cancellation.c: Likewise.
7735 * old_pthread_cond_broadcast.c: Likewise.
7736 * old_pthread_cond_signal.c: Likewise.
7737 * old_pthread_cond_timedwait.c: Likewise.
7738 * old_pthread_cond_wait.c: Likewise.
7739 * pthread_cancel.c: Likewise.
7740 * pthread_create.c: Likewise.
7741 * pthread_detach.c: Likewise.
7742 * pthread_join.c: Likewise.
7743 * pthread_key_delete.c: Likewise.
7744 * pthread_setcancelstate.c: Likewise.
7745 * pthread_setcanceltype.c: Likewise.
7746 * pthread_timedjoin.c: Likewise.
7747 * pthread_tryjoin.c: Likewise.
7748 * sysdeps/pthread/createthread.c: Likewise.
7749
b1aea098
UD
77502003-03-20 Ulrich Drepper <drepper@redhat.com>
7751
7752 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7753 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7754 definitions. Replace uses with calls to atomic_* functions.
7755 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7756 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7757 __lll_test_and_set calls with atomic_exchange_and_add and
7758 atomic_exchange calls respectively.
7759 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7760 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7761 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7762 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7763 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7764 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7765 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7766
7767 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7768 returns the old value.
7769
100a7100
RM
77702003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7771
7772 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7773 int for variable OLDVAL and correct inline assembler contraint.
7774 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7775 type int for variable OLD.
7776
7777 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7778 only for s390-32.
7779 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7780 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7781 instead of multiple_threads field in the TCB.
7782
95767b36
UD
77832003-03-19 Ulrich Drepper <drepper@redhat.com>
7784
4009bf40
UD
7785 * sysdeps/i386/i686/bits/atomic.h: Removed.
7786 * sysdeps/i386/i586/bits/atomic.h: Removed.
7787 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7788 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7789 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7790 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7791 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7792 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7793 * atomic.h: Removed. Moved to glibc.
7794
560a784f
UD
7795 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7796 support for clock selection.
7797
95767b36
UD
7798 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7799 signalling waiters.
7800
043ad426
RM
78012003-03-18 Roland McGrath <roland@redhat.com>
7802
94659495
RM
7803 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7804 Add __lll_rel_instr first. Add memory clobber.
7805 (lll_mutex_unlock): Use __lll_test_and_set.
7806 From Paul Mackerras <paulus@samba.org>.
7807
7808 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7809 unconditionally.
7810 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7811 (SINGLE_THREAD_P): Add `header.' prefix.
7812 From Paul Mackerras <paulus@samba.org>.
7813
043ad426
RM
7814 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7815 pthread_timedjoin_np to ...
7816 (libpthread: GLIBC_2.3.3): ... here.
7817 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7818
7819 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7820 Avoid shadowing VAL variable.
7821
7822 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7823 New macro.
7824
86a9ee5e
UD
78252003-03-18 Ulrich Drepper <drepper@redhat.com>
7826
ac9e0aa1
UD
7827 * Makefile (tests): Add tst-cond11.
7828 * tst-cond11.c: New file.
7829
a14b373c
UD
7830 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7831 struct passed to cleanup handler to eliminate one more
7832 instruction.
7833 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7834
24a49f38
UD
7835 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7836 (pthrad_cond_t): Replace __unused field with __clock.
7837
7838 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7839 waken all waiters in cleanup handler.
7840 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7841 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7842
86a9ee5e
UD
7843 * pthread_condattr_getclock.c: New file.
7844 * pthread_condattr_setclock.c: New file.
7845 * sysdeps/pthread/pthread.h: Declare these new functions.
7846 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7847 * Makefile (libpthread-routines): Add the new functions.
7848 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7849 Renamed field to value. Document use of the bits.
7850 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7851 change.
7852 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7853 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7854 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7855 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7856 Add __clock field.
7857 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7858 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7859 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7860 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7861 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7862 Implement clock selection.
7863 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7864 * pthread-errnos.sym: Add ENOSYS.
7865 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7866 _POSIX_CLOCK_SELECTION.
7867 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7868
7869 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7870 invalid .size directive.
7871
98054a05
RM
78722003-03-17 Roland McGrath <roland@redhat.com>
7873
7874 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7875 Formatting tweaks.
7876
001bea71
UD
78772003-03-17 Ulrich Drepper <drepper@redhat.com>
7878
4773086e
UD
7879 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7880 Use __lll_add instead of spelling it out. Use protected symbol names.
7881 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7882 Use __lll_add.
7883 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7884 Renamed from lll_compare_and_swap. Use new name where necessary.
7885 (__lll_add): Defined.
7886 (__lll_dec_if_positive): Defined.
7887 (__lll_test_and_set): Defined.
7888 * sysdeps/ia64/pthread_spin_init.c: Removed.
7889 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7890 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7891 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7892 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7893 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7894 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7895 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7896 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7897 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7898 __sync_lock_release_si.
7899 Patch by Jakub Jelinek.
7900
7901 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7902 Fix timeout handling.
7903 (__lll_timedwait_tid): Likewise.
7904 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7905 Patch by Jakub Jelinek.
7906
7907 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7908
de4471dd
RM
79092003-03-17 Roland McGrath <roland@redhat.com>
7910
7911 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7912 * sysdeps/pthread/pthread_spin_init.c: New file.
7913 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7914 * sysdeps/powerpc/Makefile: New file.
7915 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7916 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7917 * sysdeps/powerpc/pthreaddef.h: New file.
7918 * sysdeps/powerpc/tcb-offsets.sym: New file.
7919 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7920 * sysdeps/powerpc/tls.h: New file.
7921 * sysdeps/powerpc/bits/atomic.h: New file.
7922 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7923 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7924 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7925
de4471dd
RM
7926 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7927 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7928 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7929 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7930 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7931 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7932 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7933 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7934 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7935 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7936 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7937 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
7938 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
7939 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
7940 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
7941
7942 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
7943 not gettimeofday.
7944 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
7945 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
7946 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
7947 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
7948 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
7949
5778033f
UD
79502003-03-17 Ulrich Drepper <drepper@redhat.com>
7951
7952 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
7953 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7954 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7955 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7956 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
7957
796038f8
RM
79582003-03-16 Roland McGrath <roland@redhat.com>
7959
7960 * tst-fork4.c: Include <string.h>.
7961 * tst-signal2.c: Likewise.
7962 * tst-mutex5.c (do_test): exit -> return.
7963 * tst-mutex2.c: Include <stdlib.h>.
7964
51d0678c
UD
79652003-03-16 Ulrich Drepper <drepper@redhat.com>
7966
5778033f
UD
7967 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
7968 (__lll_mutex_timedlock_wait): Correct expected value after
7969 spurious wakeup. Otherwise we would never wait again.
7970
b6e2f87a
UD
7971 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
7972 zone versus inline asm stupidity. Use correct instructions.
7973
51d0678c
UD
7974 * tst-rwlock6.c: Add some more status output.
7975
8112cc70
RM
79762003-03-15 Roland McGrath <roland@redhat.com>
7977
7978 * sysdeps/pthread/configure.in: New file.
7979 * sysdeps/pthread/configure: New file (generated).
7980
49773c19
UD
79812003-03-15 Ulrich Drepper <drepper@redhat.com>
7982
7983 * allocatestack.c (allocate_stack): Store the exact stack size of
7984 user allocated stacks.
7985
eec0ca9f
JJ
79862003-03-15 Jakub Jelinek <jakub@redhat.com>
7987
7988 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
7989 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
7990 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7991 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
7992 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
7993 Use `header.' prefix.
7994 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
7995
a87731e2
UD
79962003-03-15 Ulrich Drepper <drepper@redhat.com>
7997
7998 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
7999 __builtin_frame_address, use stack pointer.
8000
8001 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
8002 instead of __builtin_frame_pointer.
8003
e22a221d
UD
80042003-03-14 Ulrich Drepper <drepper@redhat.com>
8005
92ed3daf
UD
8006 * tst-basic1.c (do_test): Add cast to avoid warning.
8007 * tst-basic2.c (do_test): Likewise.
8008
9b89567d
UD
8009 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
8010 amount of stack correction.
8011
e22a221d
UD
8012 * tst-fork4.c: Use test-skeleton.c.
8013
2e49caba
RM
80142003-03-14 Roland McGrath <roland@redhat.com>
8015
8016 * init.c: Fix typo "#eli" for "#else".
8017
415ef7d8
RM
80182003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
8019
8020 * allocatestack.c (__stack_user): Use hidden_data_def.
8021 * pthread_create.c (__pthread_keys): Likewise.
8022
8023 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
8024
52287505
RM
80252003-03-14 Roland McGrath <roland@redhat.com>
8026
415ef7d8
RM
8027 * tst-fork4.c: New file.
8028 * Makefile (tests): Add it.
8029
52287505
RM
8030 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
8031 we always define the padding space.
8032 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
8033 stopped supporting its own extensions fully.
8034 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
8035 struct also called `header', so `header.multiple_threads' is the field
8036 name to use on all machines.
8037 * allocatestack.c (allocate_stack): Use `header.' prefix.
8038 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8039 * pthread_create.c (__pthread_create_2_1): Likewise.
8040 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
8041 (THREAD_SELF): Likewise.
8042 * sysdeps/x86_64/tls.h: Likewise.
8043 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8044 (SINGLE_THREAD_P): Likewise.
8045 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8046 (SINGLE_THREAD_P): Likewise.
8047 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8048 (SINGLE_THREAD_P): Likewise.
8049
8050 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
8051 value directly.
8052
c44bf9aa
UD
80532003-03-14 Ulrich Drepper <drepper@redhat.com>
8054
e22a221d
UD
8055 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
8056 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
8057
0eb18281
UD
8058 * pthread_create.c (start_thread): setjmp is expected to return 0.
8059
c44bf9aa
UD
8060 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
8061 (THREAD_GETMEM_NC): Likewise.
8062
564cd8b6
UD
80632003-03-13 Ulrich Drepper <drepper@redhat.com>
8064
8065 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
8066 and the size of the stack which must be allocated is a multiple,
8067 allocate one more page.
8068 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
8069 MULTI_PAGE_ALIASING.
8070
6461e577
RM
80712003-03-13 Roland McGrath <roland@redhat.com>
8072
8073 * pthread_create.c (start_thread): Set EXITING_BIT after the
8074 event-reporting (and destructors), not before.
8075
b5ec5617
UD
80762003-03-13 Jakub Jelinek <jakub@redhat.com>
8077
6461e577
RM
8078 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
8079 lll_futex_wake): Declare register variables as long int instead of
8080 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
8081 Make syscall arguments clobbered by the syscall.
8082 (lll_futex_wait): Define using lll_futex_timed_wait.
8083
8084 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
8085 to void *.
8086
8087 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
8088 PPID if [! NDEBUG].
8089
8090 * allocatestack.c (nptl_ncreated): Only declare if
8091 COLORING_INCREMENT != 0.
8092
8093 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
8094 (__libc_enable_asynccancel_2): Remove prototype.
8095
b5ec5617
UD
8096 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
8097 ctid to match kernel.
8098
d0369fb8
UD
80992003-03-12 Ulrich Drepper <drepper@redhat.com>
8100
7588880f
UD
8101 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
8102 libc_multiple_threads.
8103 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
8104 __libc_multiple_threads to...
8105 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
8106
8107 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
8108 versioning.
8109 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8110 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8111
8112 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
8113 (__pthread_once_internal): Define.
8114
8115 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
8116 macros instead of .symver directly.
8117 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8118 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8119
d0369fb8
UD
8120 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
8121 * sysdeps/x86_64/tcb-offsets.sym: New file.
8122 * sysdeps/x86_64/Makefile: New file.
8123
8124 * sysdeps/i386/tcb-offsets.sym: Add SELF.
8125 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
8126 to access own pthread_t in TCB.
8127 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8128 Likewise.
8129 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8130 Likewise.
8131 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8132
0bb2ac85
RM
81332003-03-12 Roland McGrath <roland@redhat.com>
8134
8135 * pthread-errnos.sym: New file.
8136 * Makefile (gen-as-const-headers): New variable, list that file.
8137 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
8138 header <pthread-errnos.h> instead of defining errno values here.
8139 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8140 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8141 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8142 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8143 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8144 Likewise.
8145 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8146 Likewise.
8147 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8148 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8149 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8150 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8151 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8152 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8153 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8154 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8155 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8156 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8157 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
8158 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
8159 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8160 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
8161 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
8162 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8163 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8164 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8165 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8166 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8167 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8168 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8169 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
8170 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
8171 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
8172 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8173 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8174
8175 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
8176 CLONE_CHILD_SETTID worked.
8177
35e148cb
UD
81782003-03-12 Ulrich Drepper <drepper@redhat.com>
8179
d0369fb8
UD
8180 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
8181 file.
8182 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
8183 file.
8184
8185 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8186 (pthread_cond_t): Add padding.
8187
da49194d
UD
8188 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
8189 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
8190 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
8191
35e148cb
UD
8192 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
8193 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
8194 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
8195 (__pthread_rwlock_timedrdlock): Likewise.
8196 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
8197 (__pthread_rwlock_wrlock): Likewise.
8198 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
8199 (__pthread_rwlock_rdlock): Likewise.
8200
8201 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
8202
8203 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
8204 result of lock re-get if it fails.
8205
3e976b96
UD
82062003-03-11 Ulrich Drepper <drepper@redhat.com>
8207
5a03acfe
UD
8208 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
8209 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
8210 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8211 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
8212 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8213 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8214 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8215 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8216 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8217 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8218
8219 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
8220 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
8221
8222 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
8223 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
8224 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
8225 (create_thread): Likewise.
8226 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
8227 * init.c (__pthread_initialize_minimal_internal): Initialize
8228 __libc_multiple_threads_ptr if necessary.
8229 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
8230 __pthread_multiple_threads and __libc_multiple_threads_ptr.
8231 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
8232 __libc_multiple_threads.
8233 (__libc_pthread_init): Return pointer to __libc_pthread_init if
8234 necessary.
8235
8236 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
8237 (THREAD_SETMEM_NC): Likewise.
8238
8239 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
8240 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
8241 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
8242 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
8243
8244 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
8245 Eliminate one entire instruction.
8246
32a589b1
UD
8247 * cancellation.c (__pthread_enable_asynccancel_2): New function.
8248 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
8249 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8250 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
8251 instead of __pthread_enable_asynccancel.
8252 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8253 (__pthread_cond_wait): Likewise.
8254 * sysdeps/pthread/pthread_cond_timedwait.c
8255 (__pthread_cond_timedwait): Likewise.
8256 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
8257
3e976b96
UD
8258 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8259 (__condvar_cleanup): Wake up all waiters in case we got signaled
8260 after being woken up but before disabling asynchronous
8261 cancellation.
8262 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8263 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
8264 (__condvar_cleanup): Likewise.
8265
8266 * init.c (__NR_set_tid_address): If already defined, don't redefine.
8267 Make it an error if architecture has no #if case. Add x86-64.
8268
8269 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
8270 pt-initfini.s generation.
8271
8272 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
8273 (TLS_INIT_TP): Fix typo.
8274
6c477888
UD
82752003-03-11 Jakub Jelinek <jakub@redhat.com>
8276
8277 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
8278 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
8279
8280 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
8281 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8282 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
8283 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
8284 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
8285 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8286 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8287 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
8288
ea694823
UD
82892003-03-11 Ulrich Drepper <drepper@redhat.com>
8290
6c477888
UD
8291 * sysdeps/pthread/pthread_cond_timedwait.c
8292 (__pthread_cond_timedwait): Return the result of the final
8293 locking. If it succeeds, the regular function return value.
8294
8295 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
8296 Return result of the final locking.
8297 * version.c (__nptl_main): Work around problems with the strange
8298 INTERNAL_SYSCALL macro on ppc32.
8299 * init.c (__pthread_initialize_minimal_internal): Unblock
8300 SIGCANCEL in case the parent blocked it.
8301 Reported by Paul Mackerras <paulus@samba.org>.
8302
ea694823
UD
8303 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
8304 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
8305 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
8306
b33e6163
RM
83072003-03-11 Jakub Jelinek <jakub@redhat.com>
8308
8309 * sysdeps/pthread/pthread_cond_timedwait.c
8310 (__pthread_cond_timedwait): Unlock and fail if
8311 __pthread_mutex_unlock_internal failed.
8312
8313 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
8314 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
8315 Use ARCH_CLONE.
8316 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
8317 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
8318 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
8319 ALLOCATE_STACK): New macros.
8320 (TLS_TPADJ): New macro.
8321 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
8322 (allocate_stack): Handle TLS_DTV_AT_TP and
8323 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
8324 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
8325 Don't set PD->self.
8326 * init.c [__ia64__] (__NR_set_tid_address): Define.
8327
8328 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
8329 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
8330 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
8331 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
8332 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
8333 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
8334 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
8335 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
8336 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
8337 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
8338 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
8339 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
8340 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
8341 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
8342 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
8343 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
8344 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
8345 * sysdeps/ia64/bits/atomic.h: New file.
8346 * sysdeps/ia64/Makefile: New file.
8347 * sysdeps/ia64/pthread_spin_init.c: New file.
8348 * sysdeps/ia64/pthread_spin_lock.c: New file.
8349 * sysdeps/ia64/pthread_spin_trylock.c: New file.
8350 * sysdeps/ia64/pthread_spin_unlock.c: New file.
8351 * sysdeps/ia64/pthreaddef.h: New file.
8352 * sysdeps/ia64/tcb-offsets.sym: New file.
8353 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
8354 * sysdeps/ia64/tls.h: New file.
8355
8356 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
8357 to syscall instead of no arguments.
8358
2b30b2e5
UD
83592003-03-10 Ulrich Drepper <drepper@redhat.com>
8360
db5f2fc9
UD
8361 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
8362 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
8363 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
8364 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
8365
8366 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
8367 unused code.
8368
6a4263e3
UD
8369 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
8370
3de7c2a9
UD
8371 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8372 lowlevelbarrier.sym.
8373 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8374 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8375 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8376 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8377
2a544d82
UD
8378 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8379 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8380 (__lll_mutex_timedlock_wait): Likewise.
8381 (lll_mutex_lock): Adjust asm for that.
8382 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8383 (lll_lock): Adjust asm for operand order change.
8384 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8385 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8386
ec06436c
UD
8387 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8388 Reverse order of parameters.
8389 (__lll_timedwait_tid): Remove regparms attribute.
8390 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8391 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8392
3273832c
UD
8393 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8394 (__lll_timedwait_tid): Remove one unnecessary instruction.
8395
51f32ab8
UD
8396 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8397 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8398 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8399 lowlevelmutex.S.
8400
8401 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8402 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8403 for NOT_IN_libc.
8404 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8405 lowlevellock.S.
8406
fad48d9e
UD
8407 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8408 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8409 for libc.so.
8410 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8411 define LOCK here (if UP is not defined). The actual code is in
8412 lowlevelmutex.S.
8413
9356d063
UD
8414 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8415 LOCK is already defined. Don't define lll_unlock_wake_cb and
8416 __lll_timedwait_tid for libc.so.
8417 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8418 define LOCK here (if UP is not defined). The actual code is in
8419 lowlevellock.S.
8420
ebf0cbc5 8421 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8422 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8423 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8424 instead of lowlevelsem.h.
8425 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8426 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8427 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8428
c915e5ad
UD
8429 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8430 lowlevelrwlock.sym.
8431 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8432 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8433 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8434
4c3c2e8a
UD
8435 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8436 register loading.
8437 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8438 last changed. D'oh.
8439
2b30b2e5
UD
8440 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8441
8442 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8443 of __libc_locking_needed.
8444 (lll_trylock): Initialize %eax to zero.
8445
2b30b2e5
UD
8446 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8447 pthread_cond_t definition.
8448
e48f9638
RM
84492003-03-10 Roland McGrath <roland@redhat.com>
8450
8451 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8452 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8453 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8454 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8455 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8456
8457 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8458 Instead of setting PD->multiple_threads, set globals
8459 __pthread_multiple_threads and __libc_multiple_threads.
8460 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8461 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8462 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8463
8464 * descr.h (struct pthread): Conditionalize first member on
8465 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8466 containing an anonymous tcbhead_t. Move `list' member out.
8467 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8468 * allocatestack.c: Remove use of `header.data.' prefix.
8469 * pthread_create.c: Likewise.
8470 * init.c (__pthread_initialize_minimal_internal): Likewise.
8471 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8472 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8473 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8474 * sysdeps/x86_64/tls.h: Likewise.
8475 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8476 (SINGLE_THREAD_P): Likewise.
8477 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8478 (SINGLE_THREAD_P): Likewise.
8479 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8480 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8481
c37cae9e
UD
84822003-03-09 Ulrich Drepper <drepper@redhat.com>
8483
d38c777e
RM
8484 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8485
7b44a5e0 8486 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8487 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8488
c2e5e085
UD
8489 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8490 leftovers from the ia32 code.
8491
8492 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8493 memory load.
8494 (clear_once_control): Don't load %esi.
8495
8496 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8497 handling.
8498
8499 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8500
cd4b2a55
UD
8501 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8502 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8503
c37cae9e
UD
8504 * Makefile (tests): Add tst-cond10.
8505 * tst-cond10.c: New file.
8506
d130a341
UD
85072003-03-08 Ulrich Drepper <drepper@redhat.com>
8508
ccf1d573
UD
8509 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8510 * tst-signal3.c (do_test): Likewise.
8511 * tst-sem5.c (do_test): Likewise.
8512 * tst-kill6.c (do_test): Likewise.
8513 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8514
8515 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8516 of inc/dec.
8517 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8518 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8519 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8520 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8521 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8522 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8523 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8524 Likewise.
8525 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8526 Likewise.
8527 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8528 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8529 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8530 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8531 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8532 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8533 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8534 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8535
d130a341
UD
8536 * allocatestack.c (allocate_stack): If mprotect() fails free the
8537 TLS memory.
8538
bc6389ad
UD
85392003-03-07 Ulrich Drepper <drepper@redhat.com>
8540
41d4d223
UD
8541 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8542
8543 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8544 lll_wake_tid. This was used only to work around kernel limits in
8545 the early days.
8546 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8547 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8548 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8549 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8550
bc6389ad
UD
8551 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8552 (__pthread_initialize_minimal_internal): Change initialization of
8553 __static_tls_align_m1 appropriately.
8554 * pthreadP.h (__static_tls_align_m1): Renamed from
8555 __static_tls_align.
8556 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8557 instead of __static_tls_align-1.
8558
cc775edf
UD
85592003-03-04 Ulrich Drepper <drepper@redhat.com>
8560
0de28d5c 8561 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8562
518b5308
UD
8563 * pthread_create.c: Define __pthread_keys using nocommon
8564 attribute, not by placing it explicitly in bss.
8565 Remove DEFINE_DEALLOC definition. Not needed anymore.
8566
8567 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8568 Use it in mmap call to allocate stacks.
8569
8570 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8571
cc775edf
UD
8572 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8573 result of the thread function.
8574
4f6f0a8f
UD
85752003-03-03 Ulrich Drepper <drepper@redhat.com>
8576
f04a2721
UD
8577 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8578 version is just fine.
8579
4f6f0a8f
UD
8580 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8581 (__pthread_child_handler): Renamed from pthread_child_handler,
8582 exported, and marked hidden. Change all users.
8583 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8584 free __pthread_child_handler from child list.
8585
7ce5c164
UD
85862003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8587
8588 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8589
8590 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8591 Fix handling of cancellation and failing pthread_mutex_unlock call.
8592 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8593 (__pthread_cond_wait): Likewise.
8594
8595 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8596 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8597 lll_futex_timed_wait call.
8598 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8599 (pthread_rwlock_timedwrlock): Likewise.
8600
8601 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8602 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8603 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8604
8605 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8606 check of lll_futex_wake return value.
8607
ea6a015b
RM
86082003-03-03 Roland McGrath <roland@redhat.com>
8609
8610 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8611
8612 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8613 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8614 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8615
4adacf57
UD
86162003-03-02 Ulrich Drepper <drepper@redhat.com>
8617
1be3d664
UD
8618 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8619 error for CPU clocks.
8620
885bafa1
UD
8621 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8622 _POSIX_MONOTONIC_CLOCK.
8623 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8624
4adacf57
UD
8625 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8626 recent kernels.
8627
86bfff4d
UD
86282003-03-01 Ulrich Drepper <drepper@redhat.com>
8629
8630 * descr.h (struct pthread): Move cleanup field to the front.
8631
d1149385
RM
86322003-03-01 Roland McGrath <roland@redhat.com>
8633
8634 * sem_open.c (sem_open): Braino fix.
8635
bd8bb78b
UD
86362003-03-01 Ulrich Drepper <drepper@redhat.com>
8637
748bec08
UD
8638 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8639 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8640 __pthread_cleanup_pop functionality.
8641 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8642
bd8bb78b
UD
8643 * descr.h (struct pthread): Move tid field to the front now that
8644 it is often used.
8645
8646 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8647 (__lll_mutex_timedlock_wait): Remove.
8648 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8649 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8650 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8651 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8652 (lll_unlock_wake_cb): Don't save and restore %esi.
8653 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8654 %esi.
8655 (__lll_timedwait_tid): Add alignment.
8656 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8657 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8658 %esi.
8659 (__lll_timedwait_tid): Removed.
8660 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8661 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8662 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8663 (pthread_barrier_wait): Don't save, load, and restore %esi for
8664 last thread.
8665 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8666 (__pthread_cond_signal): Don't save, load, and restore %esi.
8667 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8668 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8669 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8670 Don't save, load, and restore %esi.
8671
d2637c70
UD
86722003-02-27 Ulrich Drepper <drepper@redhat.com>
8673
567fb22a
UD
8674 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8675 Release lock before waking up the waiters.
8676
427f5fa1
UD
8677 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8678
a2d83cfb
UD
8679 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8680 (reader_thread): Likewise.
8681
d2637c70
UD
8682 * sysdeps/pthread/pthread_rwlock_unlock.c
8683 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8684 to wake up readers if there are none.
8685
8686 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8687 Release internal lock before wake threads.
8688
b1531183
UD
86892003-02-26 Ulrich Drepper <drepper@redhat.com>
8690
dbf6131c
UD
8691 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8692 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8693 predefined.
8694 * tst-rwlock9.c: Likewise.
8695 * tst-rwlock10.c: New file.
8696 * tst-rwlock11.c: New file.
8697
695799fe
UD
8698 * Makefile (tests): Add tst-dlsym1.
8699 * tst-dlsym1.c: New file.
8700
b1531183
UD
8701 * init.c (__pthread_initialize_minimal_internal): Set
8702 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8703 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8704
3724f268
UD
87052003-02-24 Ulrich Drepper <drepper@redhat.com>
8706
3857ca78
UD
8707 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8708
80d80779
UD
8709 * tst-cond2.c: Fix sychronization with child.
8710
86371308
UD
8711 * tst-rwlock8.c (reader_thread): Remove unused variable.
8712
ffeb4481
UD
8713 * Makefile: Add rules to build and run tst-tls3.
8714 * tst-tls3.c: New file.
8715 * tst-tls3mod.c: New file.
8716
3724f268
UD
8717 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8718 * tst-rwlock8.c: New file.
8719 * tst-rwlock9.c: New file.
8720 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8721 complete broken rwlock implementation.
8722 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8723 Likewise.
8724 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8725 Likewise.
8726 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8727 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8728 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8729 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8730 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8731 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8732 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8733
8915cc40
RM
87342003-02-23 Roland McGrath <roland@redhat.com>
8735
8736 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8737
fd1a0d0c
UD
87382003-02-23 Ulrich Drepper <drepper@redhat.com>
8739
ecf28959
UD
8740 * Makefile (tests): Add tst-context1.
8741 * tst-context1.c: New file.
8742
5e47b76b
UD
8743 * Makefile (tests): Add tst-tls1 and tst-tls2.
8744 * tst-tls1.c: New file.
8745 * tst-tls2.c: New file.
8746
5a6bbb41
UD
8747 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8748 for failed cmpxchg.
8749
fd1a0d0c
UD
8750 * pthread_create.c (start_thread): Set EXITING_BIT early.
8751
8752 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8753 (THREAD_GETMEM_NC): Likewise.
8754
757f9fcb
UD
87552003-02-22 Ulrich Drepper <drepper@redhat.com>
8756
b1b8e747
UD
8757 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8758 off 3 more bytes by using offset-less instructions when possible.
8759
c780aa21 8760 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8761
8762 * eintr.c (eintr_source): Add unnecessary return but the compiler
8763 insists.
8764
8765 * tst-kill3.c: Include <unistd.h>.
8766
5148559c
RM
87672003-02-21 Roland McGrath <roland@redhat.com>
8768
8769 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8770
ab2d98e3
UD
87712003-02-21 Ulrich Drepper <drepper@redhat.com>
8772
71028edd
UD
8773 * Makefile (tests): Add tst-eintr1.
8774 (distribute): Add eintr.c.
8775 * tst-eintr1.c: New file.
8776 * eintr.c: New file.
8777
e814f748
UD
8778 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8779
8780 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8781 Disallow sending SIGCANCEL.
8782
ab2d98e3 8783 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8784 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8785 * tst-kill1.c: New file.
8786 * tst-kill2.c: New file.
8787 * tst-kill3.c: New file.
8788 * tst-kill5.c: New file.
9c03686d 8789 * tst-kill6.c: New file.
e814f748
UD
8790 * tst-basic7.c: Renamed to...
8791 * tst-kill4.c: ...this.
ab2d98e3 8792
59fed0e2
RM
87932003-02-21 Roland McGrath <roland@redhat.com>
8794
8795 * Makefile (install-lib-ldscripts): New variable.
8796
49dc759f
UD
87972003-02-21 Ulrich Drepper <drepper@redhat.com>
8798
8c2e9a29
UD
8799 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8800 * pthread_cancel.c: Use INVALID_TD_P.
8801 * pthread_detach.c: Likewise.
8802 * pthread_getschedparam.c: Likewise.
8803 * pthread_setschedparam.c: Likewise.
8804 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8805 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8806 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8807 * pthread_timedjoin.c: Likewise.
8808
8809 * tst-basic7.c: Include <signal.h>.
8810
49dc759f
UD
8811 * pthread_join.c (pthread_join): Limited checking for invalid
8812 descriptors.
8813 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8814
df5803bf
UD
88152003-02-20 Ulrich Drepper <drepper@redhat.com>
8816
c5acd3d7
UD
8817 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8818 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8819 * Makefile (tests): Add tst-key4.
8820 * tst-key4.c: New file.
8821
729924a0
UD
88222003-02-18 Ulrich Drepper <drepper@redhat.com>
8823
2f7dc594
UD
8824 * Makefile (tests): Add tst-basic7.
8825 * tst-basic7.c: New file.
8826
ba25bb0f
UD
8827 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8828 Add some more __builtin_expect.
8829
12fd3c5f 8830 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8831
5430d926
UD
88322003-02-17 Ulrich Drepper <drepper@redhat.com>
8833
b0db7fbe
UD
8834 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8835 _POSIX_THREAD_PRIORITY_SCHEDULING.
8836 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8837 _XOPEN_REALTIME_THREADS.
8838 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8839
8840 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8841 kernel returns EINVAL for PID <= 0, work around it.
8842
ecfda9bd
UD
8843 * Makefile (tests): Add tst-signal5.
8844 * tst-signal5.c: New file.
8845
7d78ab99
UD
8846 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8847 and LOGIN_NAME_MAX.
8848
371a2972
UD
8849 * tst-cancel1.c (tf): Block all signals.
8850
5430d926
UD
8851 * Makefile (tests): Add tst-basic6.
8852 * tst-basic6.c: New file.
8853
8854 * tst-basic1.c: Add test for process ID.
8855
8856 * Makefile (tests): Add tst-cancel10.
8857 * tst-cancel10.c: New file.
8858
8859 * Makefile (tests): Add tst-signal4.
8860 * tst-signal4.c: New file.
8861
8862 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8863 __sigismember instead of sigismember. Add __builtin_expect.
8864
1564916a
UD
88652003-02-16 Ulrich Drepper <drepper@redhat.com>
8866
179ff175
UD
8867 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8868 pthread_setcancelstate, and pthread_rwlock_setpshared.
8869
e4335f9a
UD
8870 * tst-cancel7.c (do_test): Make sure the pid file exists before
8871 canceling the thread.
8872
0a37669a
UD
8873 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8874 pthread_rwlock_timedrdlock tests.
8875 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8876 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8877 Check for invalid tv_nsec field.
8878 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8879 Likewise.
8880
8881 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8882 recursive mutex of overflow.
8883
8884 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8885
e4335f9a 8886 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8887 going into an endless loop.
8888 * Makefile (tests): Add tst-cancel9.
8889 * tst-cancel9.c: New file.
8890
8891 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8892
b270b548
UD
88932003-02-15 Ulrich Drepper <drepper@redhat.com>
8894
1c82b97f
UD
8895 * tst-mutex5.c (do_test): Add more timedlock tests.
8896
b2f05465 8897 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8898 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8899
e798b60f
UD
8900 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8901 use INLINE_SYSCALL. Error number is returned, not -1.
8902
90491dc4
UD
8903 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8904 and __deallocate_stack with internal_function.
8905 * pthread_create.c: Adjust definitions appropriately.
8906 * allocatestack.c: Likewise.
8907
8908 * pthread_join.c: Add one more __builtin_expect.
8909 * pthread_timedjoin.c: Likewise.
8910
8911 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8912 not data of sequence number does not match.
8913 Add one __builtin_expect.
8914
c6247c9d
UD
8915 * Makefile (tests): Add tst-clock1.
8916 * tst-clock1.c: New file.
8917
b270b548
UD
8918 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8919 negative arguments.
8920 * Makefile (tests): Add tst-basic5.
8921 * tst-basic5.c: New file.
8922
700bf7af
UD
89232003-02-14 Ulrich Drepper <drepper@redhat.com>
8924
757de559
UD
8925 * Makefile (tests): Add tst-basic4.
8926 * tst-basic4.c: New file.
8927
47202270
UD
8928 * pthreadP.h: Add declaraction for __nptl_nthreads.
8929 * pthread_create.c: Define __nptl_nthreads
8930 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8931 after thread is done. If then zero, call exit(0).
47202270
UD
8932 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8933 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8934 * init.c (pthread_functions): Initialize ptr_nthreads.
8935 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8936 (__reclaim_stacks): Decrement __nptl_nthreads.
8937 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
8938 Define.
8939 * Makefile (tests): Add tst-basic3.
8940 * tst-basic3.c: New file.
8941
e320ef46
UD
8942 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
8943 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
8944 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
8945 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
8946 if asynchronous canceling is enabled.
8947 * pthread_join.c (pthread_join): When recognizing circular joins,
8948 take into account the other thread might be already canceled.
8949 * Makefile (tests): Add tst-join5.
8950 * tst-join5.c: New file.
8951
700bf7af
UD
8952 * Makefile (tests): Add tst-join4.
8953 * tst-join4.c: New file.
8954
89552003-02-13 Ulrich Drepper <drepper@redhat.com>
8956
8957 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
8958
dac0f772
UD
89592003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
8960
8961 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
8962 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
8963 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
8964 warning.
8965 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
8966 to avoid warning.
8967 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
8968 error if lll_futex_wake failed.
8969
e8cda341
UD
89702003-02-13 Ulrich Drepper <drepper@redhat.com>
8971
a7720b5e
UD
8972 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
8973 handling of cancellation and failung pthread_mutex_unlock call.
8974 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8975 * Makefile (tests): Add tst-cond8 and tst-cond9.
8976 * tst-cond8.c: New file.
8977 * tst-cond9.c: New file.
8978
a1ea4c06
UD
8979 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
8980
8981 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
8982 non-standard initializers with __USE_GNU.
8983
e8cda341
UD
8984 * Makefile (tests): Add tst-cleanup3.
8985 * tst-cleanup3.c: New file.
8986
2067577c
UD
89872003-02-12 Ulrich Drepper <drepper@redhat.com>
8988
89e78a95
UD
8989 * Makefile (tests): Add tst-attr1 and tst-attr2.
8990 * tst-attr1.c: New file.
8991 * tst-attr2.c: New file.
8992
dfdd294a
UD
8993 * Makefile: Add rules to build and run tst-atfork2 test.
8994 * tst-atfork2.c: New file.
8995 * tst-atfork2mod.c: New file.
8996
8997 * sysdeps/unix/sysv/linux/unregister-atfork.c
8998 (__unregister_atfork): Free the memory allocated for the handlers
8999 after removing them from the lists.
9000
9001 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
9002 cleanup function.
9003
9004 * tst-atfork1.c (do_test): Wait for the child we forked.
9005 Report error in child.
9006
9007 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
9008
2067577c
UD
9009 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
9010
2a8a8a84
UD
90112003-02-10 Ulrich Drepper <drepper@redhat.com>
9012
d9dd121e
UD
9013 * Makefile (tests): Add tst-cancel8.
9014 * tst-cancel8.c: New file.
9015
2a8a8a84
UD
9016 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
9017 clearing of control variable.
defd1870 9018 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 9019 * tst-once3.c: New file.
defd1870 9020 * tst-once4.c: New file.
2a8a8a84 9021
a54e8d33
UD
90222003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
9023
9024 * sysdeps/sh/Makefile: New file.
9025 * sysdeps/sh/bits/atomic.h: New file.
9026 * sysdeps/sh/pthread_spin_init.c: New file.
9027 * sysdeps/sh/pthread_spin_lock.c: New file.
9028 * sysdeps/sh/pthread_spin_trylock.S: New file.
9029 * sysdeps/sh/pthread_spin_unlock.S: New file.
9030 * sysdeps/sh/pthreaddef.h: New file.
9031 * sysdeps/sh/tcb-offsets.sym: New file.
9032 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
9033 * sysdeps/sh/tls.h: New file.
9034 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
9035 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
9036 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
9037 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
9038 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
9039 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
9040 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
9041 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
9042 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
9043 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
9044 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
9045 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
9046 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
9047 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
9048 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
9049 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
9050 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
9051 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
9052 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
9053 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
9054 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
9055 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
9056 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
9057 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
9058 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
9059 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
9060 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
9061 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
9062 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
9063 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
9064
696e556e
UD
90652003-02-08 Ulrich Drepper <drepper@redhat.com>
9066
9067 * tst-cond2.c: Rearrange code to not rely on behavior undefined
9068 according to POSIX.
9069
9070 * tst-basic2.c (do_test): Lock mutex before creating the thread.
9071
fef710d6
UD
90722003-02-07 Ulrich Drepper <drepper@redhat.com>
9073
c6180643
UD
9074 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
9075 (TLS_GET_FS): New #define.
9076 (TLS_SET_FS): New #define.
9077 Correct value of __NR_set_thread_area.
9078
fef710d6
UD
9079 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
9080
11090a99
UD
90812003-02-06 Ulrich Drepper <drepper@redhat.com>
9082
65c68990
UD
9083 * Makefile (tests): Add tst-popen1.
9084 * tst-popen1.c: New file.
9085
11090a99
UD
9086 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
9087 but inactive generalization.
9088 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9089 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9090 Minor optimization, remove one instruction.
9091 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9092
a88c9263
UD
90932003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
9094
9095 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
9096
90972003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
9098
9099 * init.c (__NR_set_tid_address): Add #ifdef for s390.
9100 * sysdeps/pthread/pthread_barrier_wait.c: New file.
9101 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
9102 * sysdeps/pthread/pthread_cond_signal.c: New file.
9103 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
9104 * sysdeps/pthread/pthread_cond_wait.c: New file.
9105 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
9106 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
9107 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
9108 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
9109 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
9110 * sysdeps/s390/Makefile: New file.
9111 * sysdeps/s390/bits/atomic.h: New file.
9112 * sysdeps/s390/pthread_spin_init.c: New file.
9113 * sysdeps/s390/pthread_spin_lock.c: New file.
9114 * sysdeps/s390/pthread_spin_trylock.c: New file.
9115 * sysdeps/s390/pthread_spin_unlock.c: New file.
9116 * sysdeps/s390/pthreaddef.h: New file.
9117 * sysdeps/s390/tcb-offsets.sym: New file.
9118 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
9119 * sysdeps/s390/tls.h: New file.
9120 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
9121 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
9122 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
9123 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
9124 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
9125 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
9126 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9127 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
9128 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
9129 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
9130 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
9131 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
9132 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
9133 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
9134 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
9135 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
9136 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
9137 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
9138 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
9139 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
9140 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
9141 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9142 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
9143
6f1cff95
UD
91442003-02-04 Ulrich Drepper <drepper@redhat.com>
9145
ec609a8e
UD
9146 * atomic.h: Add a couple more default implementations.
9147 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
9148 __arch_compare_and_exchange_32_acq in return value definition. It
9149 always exists.
9150 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 9151 Add missing atomic_ prefixes.
e3ec8904 9152
6f1cff95
UD
9153 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
9154 thread library is available, use correct value to mark initialized
9155 once variable.
9156
4f088329
UD
91572003-02-03 Ulrich Drepper <drepper@redhat.com>
9158
6f1cff95
UD
9159 * allocatestack.c (allocate_stack): Use __getpagesize instead of
9160 __sysconf to determine pagesize.
9161
3e4fc359 9162 * pthread_create.c: Include <atomic.h>.
4f088329
UD
9163 * allocatestack.c (allocate_stack): Implement coloring of the
9164 allocated stack memory. Rename pagesize to pagesize_m1. It's the
9165 size minus one. Adjust users.
3e4fc359 9166 * sysdeps/i386/i686/Makefile: New file.
4f088329 9167
2f42e8be
UD
91682003-02-02 Ulrich Drepper <drepper@redhat.com>
9169
4301f7e2
UD
9170 * allocatestack.c: Improve comment throughout the file.
9171
2f42e8be 9172 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 9173 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
9174 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9175 (__lll_lock_wait): Likewise.
9176 (lll_unlock_wake_cb): Removed.
9177
4a7d6545
UD
91782003-01-31 Ulrich Drepper <drepper@redhat.com>
9179
9180 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
9181 _POSIX_THREAD_PRIORITY_SCHEDULING.
9182
886d5973
UD
91832003-01-30 Jakub Jelinek <jakub@redhat.com>
9184
9185 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9186 Fix return type of ptr___pthread_getspecific.
9187
e474ca78
UD
91882003-01-29 Ulrich Drepper <drepper@redhat.com>
9189
9190 * Makefile (tests): Add tst-umask1.
9191 (tst-umask1-ARGS): Define.
9192 * tst-umask1.c: New file.
9193
e6ebd2e4
UD
91942003-01-28 Ulrich Drepper <drepper@redhat.com>
9195
6cf26f41
UD
9196 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
9197 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
9198 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
9199 pthread_rwlock_unlock.
9200 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
9201 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
9202 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
9203 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
9204 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9205 New file.
9206 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
9207 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9208 New file.
9209 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
9210 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
9211 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
9212 New file.
9213 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
9214 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
9215 New file.
9216 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
9217 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
9218 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
9219 New file.
9220 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
9221 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
9222 New file.
9223 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
9224
1d087a7e
UD
9225 * Makefile (libpthread-routines): Remove lowlevelcond and
9226 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
9227 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
9228 and pthread_cond_broadcast.
4a99d160
UD
9229 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
9230 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
9231 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
9232 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
9233 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
9234 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
9235 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
9236 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
9237 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
9238 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
9239 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
9240 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
9241 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
9242 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
9243 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
9244 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
9245 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
9246 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
9247 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
9248 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
9249 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
9250 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
9251 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
9252 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
9253 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
9254 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
9255 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
9256 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
9257 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
9258 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
9259 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 9260
e6ebd2e4
UD
9261 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
9262 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
9263 of the code is moved to ...
9264 * sysdeps/pthread/createthread.c: ...here. New file.
9265
a15698cb
UD
92662003-01-27 Ulrich Drepper <drepper@redhat.com>
9267
0566b130
UD
9268 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
9269 (__new_sem_post): Clear %eax before returning.
9270 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
9271
e6fb8846
UD
9272 * Makefile (tests): Add tst-cleanup2.
9273 * tst-cleanup2.c: New file.
9274
a15698cb
UD
9275 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9276 Interpret first parameter correctly.
9277
8824b0a1
UD
92782003-01-17 Ulrich Drepper <drepper@redhat.com>
9279
9280 * Makefile (headers): Add bits/semaphore.h.
9281
850dcfca
UD
92822003-01-16 Jakub Jelinek <jakub@redhat.com>
9283
9284 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
9285 if not SHARED.
9286
574b892e
UD
92872003-01-14 Ulrich Drepper <drepper@redhat.com>
9288
a8d87c92
UD
9289 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
9290 must be used and mapping failed.
9291 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
9292
574b892e
UD
9293 * Makefile (CFLAGS-pthread_self.os): Define this, not
9294 CFLAGS-pthread_self.c.
9295
fb48047a
UD
92962003-01-13 Ulrich Drepper <drepper@redhat.com>
9297
47805511
UD
9298 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
9299 lll_unlock_wake_cb.
9300
fb48047a
UD
9301 * Makefile (libpthread-routines): Add version. Add rules to build
9302 version.os and banner.h.
9303 * version.c: New file.
9304
115bb61d
UD
93052003-01-13 Jakub Jelinek <jakub@redhat.com>
9306
9307 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
9308 the alias unconditional.
9309 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
9310
93112003-01-13 Ulrich Drepper <drepper@redhat.com>
9312
9313 * Makefile (CFLAGS-pthread_self.c): New definition.
9314
6aca81bb
UD
93152003-01-06 Jakub Jelinek <jakub@redhat.com>
9316
9317 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
9318 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
9319 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
9320 * init.c (__pthread_initialize_minimal_internal): Likewise.
9321
e9c7764e
UD
93222003-01-07 Jakub Jelinek <jakub@redhat.com>
9323
b5facfda
UD
9324 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
9325
e9c7764e
UD
9326 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9327 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9328 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9329 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9330 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9331 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9332
bef1e42f
UD
93332003-01-06 Jakub Jelinek <jakub@redhat.com>
9334
9335 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
9336 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
9337 * tst-cancel-wrappers.sh: Remove all exceptions.
9338
bbd17455
UD
93392003-01-05 Ulrich Drepper <drepper@redhat.com>
9340
a73ab6df
UD
9341 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
9342 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
9343
bbd17455
UD
9344 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
9345 Use __libc_pthread_functions array if SHARED.
9346
9347 * pthreadP.h: Move pthread_cond_2_0_t definition to...
9348 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
9349
9350 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
9351 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
9352 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
9353 __libc_ptf_call instead of __libc_maybe_call.
9354 (PTF): New #define.
9355 (__libc_cleanup_region_start): Wrap function name with PTF call.
9356 (__libc_cleanup_region_end): Likewise.
9357 (__libc_cleanup_end): Likewise.
9358
9359 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
9360 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
9361 * pthread_key_create.c: Add __pthread_key_create_internal alias.
9362 * pthreadP.h: Add prototypes.
9363
9364 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
9365 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
9366 __pthread_rwlock_unlock aliases.
9367 * pthreadP.h: Add prototypes for new aliases.
9368
9369 * pthreadP.h (struct pthead_functions): Moved to...
9370 * sysdeps/pthread/pthread-functions.h: ...here. New file.
9371 * init.c (pthread_functions): Add initializers for new elements.
9372
9373 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9374 __pthread_cleanup_pop_restore aliases.
9375 * pthreadP.h: Add prototypes.
9376
9377 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9378 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9379 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9380 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9381 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9382 * pthreadP.h: Adjust prototypes and callers.
9383
d27a78be
UD
93842003-01-04 Ulrich Drepper <drepper@redhat.com>
9385
b74121ae
UD
9386 * Makefile (tests): Add tst-cancel7.
9387 (tst-cancel7-ARGS): New variable.
bbd17455 9388 * tst-cancel7.c: New file.
b74121ae 9389
29bc410c
UD
9390 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9391 around gcc defficiencies.
9392 * old_pthread_cond_signal.c: Likewise.
9393 * old_pthread_cond_timedwait.c: Likewise.
9394 * old_pthread_cond_wait.c: Likewise.
9395
d27a78be
UD
9396 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9397
733f25e6
UD
93982003-01-03 Ulrich Drepper <drepper@redhat.com>
9399
7edb2ae3
UD
9400 * Makefile (tests): Add tst-cond7.
9401 * tst-cond7.c: New file.
9402
b1151300
UD
9403 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9404 (condvar_cleanup): Get condvar address from the right place.
9405
733f25e6
UD
9406 * atomic.h: Correct definitions of atomic_full_barrier,
9407 atomic_read_barrier, atomic_write_barrier.
9408
9409 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9410 race-free.
9411 * old_pthread_cond_signal.c: Likewise.
9412 * old_pthread_cond_timedwait.c: Likewise.
9413 * old_pthread_cond_wait.c: Likewise.
9414
686b7223
UD
94152003-01-03 Jakub Jelinek <jakub@redhat.com>
9416
9417 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9418
0e07706e
UD
94192003-01-03 Ulrich Drepper <drepper@redhat.com>
9420
997256dd
UD
9421 * pthreadP.h (pthread_cond_2_0_t): New type.
9422 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9423 Use new type for the 2.0 condvar function prototypes.
9424 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9425 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9426 parameter.
9427 * old_pthread_cond_destroy.c: Likewise.
9428 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9429 * old_pthread_cond_signal.c: Likewise.
9430 * old_pthread_cond_timedwait.c: Likewise.
9431 * old_pthread_cond_wait.c: Likewise.
9432
842d2817
UD
9433 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9434 (__pthread_cond_wait): Don't save cancellation mode and seq value
9435 in same location.
9436
0e07706e
UD
9437 * herrno.c (__h_errno_location): Don't define as weak.
9438
bf293afe
UD
94392003-01-02 Jakub Jelinek <jakub@redhat.com>
9440
9441 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9442 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9443 and pthread_cond_wait.
9444 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9445 Renamed to...
9446 (__pthread_cond_broadcast_2_0): ... this.
9447 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9448 Renamed to...
9449 (__pthread_cond_destroy_2_0): ... this.
9450 * old_pthread_cond_init.c (__old_pthread_cond_init):
9451 Renamed to...
9452 (__pthread_cond_init_2_0): ... this.
9453 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9454 Renamed to...
9455 (__pthread_cond_signal_2_0): ... this.
9456 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9457 Renamed to...
9458 (__pthread_cond_wait_2_0): ... this.
9459 * pthread_cond_destroy.c: Include shlib-compat.h.
9460 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9461 * pthread_cond_init.c: Include shlib-compat.h.
9462 (pthread_cond_init): Change strong_alias into versioned_symbol.
9463 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9464 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9465 fields.
9466 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9467 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9468 __pthread_cond_wait_2_0): New prototypes.
9469 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9470 __old_pthread_cond_init, __old_pthread_cond_signal,
9471 __old_pthread_cond_wait): Removed.
9472 * init.c: Include shlib-compat.h.
9473 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9474 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9475 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9476 ptr___pthread_cond_*_2_0 fields.
9477 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9478 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9479
9480 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9481 LIBC_SIGACTION was not yet defined.
9482 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9483 [!defined LIBC_SIGACTION] (__sigaction): New function and
9484 libc_hidden_weak.
9485 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9486 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9487
94882003-01-02 Jakub Jelinek <jakub@redhat.com>
9489
9490 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9491
05df18c3
UD
94922003-01-02 Ulrich Drepper <drepper@redhat.com>
9493
9494 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9495 New, larger type definition.
9496 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9497 implementation.
9498 * Versions [libpthread]: Add definitions for new pthread_cond_*
9499 interfaces for version GLIBC_2.3.2.
9500 * pthread_cond_init.c: Update initialization for new type definition.
9501 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9502 pthread_cond_timedwait, pthread_cond_signal, and
9503 pthread_cond_broadcast. Add old_pthread_cond_init,
9504 old_pthread_cond_destroy, old_pthread_cond_wait,
9505 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9506 old_pthread_cond_broadcast.
9507 * old_pthread_cond_broadcast.c: New file.
9508 * old_pthread_cond_destroy.c: New file.
9509 * old_pthread_cond_init.c: New file.
9510 * old_pthread_cond_signal.c: New file.
9511 * old_pthread_cond_timedwait.c: New file.
9512 * old_pthread_cond_wait.c: New file.
9513 * pthreadP.h: Add prototypes for the compatibility interfaces.
9514
9515 * pthread_cond_destroy.c: Don't include <errno.h>.
9516
fd8979e4
UD
95172003-01-01 Ulrich Drepper <drepper@redhat.com>
9518
9519 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9520 unnecessary zero offset when addressing MUTEX.
9521
6d6ee629
UD
95222002-12-31 Ulrich Drepper <drepper@redhat.com>
9523
9524 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9525 __register_atfork.
9526 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9527 for __register_atfork.
9528
a4baf360
UD
95292002-12-31 Jakub Jelinek <jakub@redhat.com>
9530
9531 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9532 instead of ASSEMBLER test macro.
9533
9534 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9535 __libc_current_sigrtmax): Add libc_hidden_def.
9536
9537 * sysdeps/pthread/list.h: Remove assert.h include.
9538
e9395a94
UD
95392002-12-31 Ulrich Drepper <drepper@redhat.com>
9540
9541 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9542 __pthread_initialize_minimal_internal not
9543 __pthread_initialize_minimal.
9544
89d6e444
UD
95452002-12-30 Ulrich Drepper <drepper@redhat.com>
9546
416d2de6
UD
9547 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9548 __pthread_initialize_minimal as hidden.
9549
89d6e444
UD
9550 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9551 constructor.
9552
95532002-12-31 Jakub Jelinek <jakub@redhat.com>
9554
9555 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9556 $(common-objpfx)format.lds, include that into the output script.
9557 Fix comment.
9558 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9559
8cac677c
UD
95602002-12-28 Andreas Jaeger <aj@suse.de>
9561
9562 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9563 nsec resolution changes.
9564 (xstat64_conv): Likewise.
9565 (xstat32_conv): Likewise.
9566 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9567 struct kernel_stat.
9568 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9569 structs stat and stat64.
9570 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9571 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9572
49e9f864
UD
95732002-12-30 Jakub Jelinek <jakub@redhat.com>
9574
9575 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9576 argument.
9577 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9578 (pthread_exit): Use strong_alias to avoid warnings.
9579 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9580 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9581 ptr___pthread_attr_init_2_*.
9582 * init.c (pthread_functions): Adjust.
9583
bab09b26
UD
95842002-12-29 Ulrich Drepper <drepper@redhat.com>
9585
598d7a42
UD
9586 * forward.c: Make all functions available by default again. It
9587 caused too much trouble.
9588
bab09b26
UD
9589 * pt-siglongjmp.c: Removed.
9590
3b7ed871
UD
95912002-12-28 Jakub Jelinek <jakub@redhat.com>
9592
9593 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9594 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9595 * sysdeps/i386/Makefile: New file.
9596 * sysdeps/i386/tcb-offsets.sym: New file.
9597 * sysdeps/pthread/tcb-offsets.h: New file.
9598 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9599 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9600
9601 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9602 __register_atfork...
9603 (GLIBC_2.3.2): ...here.
9604
96052002-12-28 Ulrich Drepper <drepper@redhat.com>
9606
9607 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9608 pthread_attr_setstackaddr with __attribute_deprecated__.
9609
270d9d47
UD
96102002-12-27 Jakub Jelinek <jakub@redhat.com>
9611
9612 * pt-system.c (system): Remove cancellation handling.
9613 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9614 cancellation routines.
9615
131fd126
UD
96162002-12-28 Ulrich Drepper <drepper@redhat.com>
9617
afb2e954
UD
9618 * descr.h: Include <dl-sysdep.h>.
9619 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9620 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9621 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9622 (SYSINFO_OFFSEET): Likewise.
9623
96242002-12-27 Jakub Jelinek <jakub@redhat.com>
9625
9626 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9627 Define.
9628 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9629 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9630 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9631 (USE_DL_SYSINFO): Undef.
9632
96332002-12-22 Jakub Jelinek <jakub@redhat.com>
9634
9635 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9636 $(common-objpfx)libc.so.
9637 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9638 it is bigger than pipe buffer size even on arches with bigger
9639 page size.
9640 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9641
a218c9cf
UD
96422002-12-25 Ulrich Drepper <drepper@redhat.com>
9643
9644 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9645 correct errno access for case that USE___THREAD is not defined.
9646
015a2dc9
UD
96472002-12-24 Ulrich Drepper <drepper@redhat.com>
9648
9649 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9650 Patch by Marijn Ros <marijn@mad.scientist.com>.
9651
5220f9ac
RM
96522002-12-22 Roland McGrath <roland@redhat.com>
9653
9654 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9655
1561bf63
UD
96562002-12-20 Ulrich Drepper <drepper@redhat.com>
9657
9658 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9659
3325198e
UD
96602002-12-19 Ulrich Drepper <drepper@redhat.com>
9661
057c823f
UD
9662 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9663 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9664 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9665
097eca29
UD
9666 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9667 of int $0x80.
9668 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9669 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9670 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9671 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9672 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9673 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9674 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9675 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9676
9677 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9678 sysenter.
9679 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9680
9681 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9682
5f5843e3
UD
9683 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9684 in new TCB.
9685 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9686 that sysinfo is properly initialized.
9687 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9688 to 1 only for ld.so.
9689
3325198e
UD
9690 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9691 RTLD_CORRECT_DYNAMIC_WEAK.
9692
74e8f2dc
UD
96932002-12-19 Jakub Jelinek <jakub@redhat.com>
9694
9695 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9696 Use return 0 as 6th argument to FORWARD4.
9697 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9698
df45b31e
UD
96992002-12-18 Ulrich Drepper <drepper@redhat.com>
9700
9701 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9702 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9703 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9704 (INIT_SYSINFO): New #define.
9705 (TLS_TP_INIT): Use INIT_SYSINFO.
9706 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9707 At test to make sure SYSINFO_OFFSET value is correct.
9708 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9709
3d539579
UD
97102002-12-18 Jakub Jelinek <jakub@redhat.com>
9711
9712 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9713 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9714 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9715 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9716 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9717 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9718 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9719
d7913e0e
UD
97202002-12-18 Ulrich Drepper <drepper@redhat.com>
9721
f051627f
UD
9722 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9723 macro instead of using int $0x80 directly.
9724
d7913e0e
UD
9725 * sysdeps/pthread/bits/stdio-lock.h: New file.
9726 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9727 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9728 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9729 * Makefile (routines): Add libc-lowlevelmutex.
9730
9731 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9732 __i686.get_pc_thunk.dx.
9733
f077a4a9
UD
97342002-12-17 Jakub Jelinek <jakub@redhat.com>
9735
9736 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9737 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9738 ($(objpfx)tst-cancel-wrappers.out): New rule.
9739 * tst-cancel-wrappers.sh: New test.
9740 * tst-locale1.c: Include signal.h.
9741 (uselocale): Test static linking of __libc_current_sigrt*.
9742
97432002-12-17 Ulrich Drepper <drepper@redhat.com>
9744
9745 * Makefile (tests): Add tst-cancel6.
9746 * tst-cancel6.c: New file
9747
bd499a3b
UD
97482002-12-17 Jakub Jelinek <jakub@redhat.com>
9749
9750 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9751 Define meaningfully for assembler as well.
9752 * pthreadP.h (struct pthread_functions): Remove
9753 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9754 and ptr_pthread_attr_init_2_1 fields.
9755 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9756 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9757 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9758 (FORWARD3): Define using FORWARD4.
9759 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9760 versions.
9761 * pt-system.c: Remove duplicate stdlib.h include.
9762
0a1063f4
UD
97632002-12-16 Ulrich Drepper <drepper@redhat.com>
9764
87d60668
UD
9765 * sem_init.c: Define sem_init@GLIBC_2.0.
9766 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9767 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9768
0a1063f4
UD
9769 * flockfile.c: Moved to...
9770 * sysdeps/pthread/flockfile.c: ...here. New file.
9771 * funlockfile.c: Moved to...
9772 * sysdeps/pthread/funlockfile.c: ...here. New file.
9773 * ftrylockfile.c: Moved to...
9774 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9775
9634cf9d
UD
97762002-12-16 Jakub Jelinek <jakub@redhat.com>
9777
9778 * libc-cancellation.c: Guard both function with
9779 #if !defined NOT_IN_libc.
9780 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9781 automatically provided pthread wrappers.
9782 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9783 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9784 nor in libpthread.
9785 * pt-open.c: Removed.
9786 * pt-fcntl.c: Removed.
9787 * pt-fsync.c: Removed.
9788 * pt-lseek.c: Removed.
9789 * pt-msgrcv.c: Removed.
9790 * pt-msgsnd.c: Removed.
9791 * pt-msync.c: Removed.
9792 * pt-nanosleep.c: Removed.
9793 * pt-open64.c: Removed.
9794 * pt-pause.c: Removed.
9795 * pt-pread.c: Removed.
9796 * pt-pread64.c: Removed.
9797 * pt-pwrite.c: Removed.
9798 * pt-pwrite64.c: Removed.
9799 * pt-read.c: Removed.
9800 * pt-recv.c: Removed.
9801 * pt-recvfrom.c: Removed.
9802 * pt-recvmsg.c: Removed.
9803 * pt-send.c: Removed.
9804 * pt-sendto.c: Removed.
9805 * pt-sigtimedwait.c: Removed.
9806 * pt-sigwait.c: Removed.
9807 * pt-wait.c: Removed.
9808 * pt-waitpid.c: Removed.
9809 * pt-write.c: Removed.
9810 * pt-accept.c: Removed.
9811 * pt-close.c: Removed.
9812 * pt-connect.c: Removed.
9813 * pt-lseek64.c: Removed.
9814 * pt-sendmsg.c: Removed.
9815 * pt-tcdrain.c: Removed.
9816
6ee8d334
UD
98172002-12-15 Ulrich Drepper <drepper@redhat.com>
9818
81fa9371
UD
9819 * init.c (__pthread_initialize_minimal_internal): Renamed from
9820 __pthread_initialize_minimal. Make old name an alias. This
9821 converts a normal relocation into a relative relocation.
9822
f3015aa5
UD
9823 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9824
4cbc1950
UD
9825 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9826 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9827 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9828 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9829 pt-sigwaitinfo, pt-waitid, and pt-writev.
9830 * pt-creat.c: Removed.
9831 * pt-poll.c: Removed.
9832 * pt-pselect.c: Removed.
9833 * pt-readv.c: Removed.
9834 * pt-select.c: Removed.
9835 * pt-sigpause.c: Removed.
9836 * pt-sigsuspend.c: Removed.
9837 * pt-sigwaitinfo.c: Removed.
9838 * pt-waitid.c: Removed.
9839 * pt-writev.c: Removed.
9840
8454830b
UD
9841 * init.c (pthread_functions): New variable.
9842 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9843 (or NULL) to __libc_pthread_init.
9844 * forward.c: Rewrite to use __libc:pthread_functions array to get
9845 function addresses.
9846 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9847 prototype.
9848 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9849 Take new parameter. Copy content of variable pointed to by it
9850 to __libc_pthread_init.
9851
9852 * pthreadP.h (struct pthread_functions): New type.
9853 (__libc_pthread_init): Declare.
9854
9855 * pthread_attr_destroy.c: Add namespace protected alias.
9856 * pthread_attr_getdetachstate.c: Likewise.
9857 * pthread_attr_getinheritsched.c: Likewise.
9858 * pthread_attr_getschedparam.c: Likewise.
9859 * pthread_attr_getschedpolicy.c: Likewise.
9860 * pthread_attr_getscope.c: Likewise.
9861 * pthread_attr_setdetachstate.c: Likewise.
9862 * pthread_attr_setinheritsched.c: Likewise.
9863 * pthread_attr_setschedparam.c: Likewise.
9864 * pthread_attr_setschedpolicy.c: Likewise.
9865 * pthread_attr_setscope.c: Likewise.
9866 * pthread_cond_broadcast.c: Likewise.
9867 * pthread_cond_destroy.c: Likewise.
9868 * pthread_cond_init.c: Likewise.
9869 * pthread_cond_signal.c: Likewise.
9870 * pthread_cond_wait.c: Likewise.
9871 * pthread_condattr_destroy.c: Likewise.
9872 * pthread_condattr_init.c: Likewise.
9873 * pthread_equal.c: Likewise.
9874 * pthread_exit.c: Likewise.
9875 * pthread_getschedparam.c: Likewise.
9876 * pthread_self.c: Likewise.
9877 * pthread_setcancelstate.c: Likewise.
9878 * pthread_setschedparam.c: Likewise.
9879 * pthread_mutex_destroy.c: Likewise.
9880 * pthread_mutex_init.c: Likewise.
9881 * pthreadP.h: Add prototypes for the aliases.
9882
0d5f4929
UD
9883 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9884 multiple_threads member in correct TCB to 1.
9885
6ee8d334
UD
9886 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9887 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9888 member of thread decriptor, otherwise return unconditionally 1.
9889
2fb6444d
UD
98902002-12-14 Ulrich Drepper <drepper@redhat.com>
9891
9892 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9893 regular Linux version. Remove file.
9894 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9895 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9896 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9897 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9898 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9899 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9900 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9901 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9902 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9903 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9904 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9905 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9906 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9907 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9908 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9909 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9910 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9911 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9912 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9913 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9914 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9915 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9916 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9917 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9918 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9919 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9920 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9921 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9922 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9923 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9924
86b2dc40
UD
99252002-12-14 Jakub Jelinek <jakub@redhat.com>
9926
9927 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9928 * sysdeps/unix/sysv/linux/open.c: Removed.
9929 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9930 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9931 * sysdeps/unix/sysv/linux/msync.c: Removed.
9932 * sysdeps/unix/sysv/linux/read.c: Removed.
9933 * sysdeps/unix/sysv/linux/close.c: Removed.
9934 * sysdeps/unix/sysv/linux/creat.c: Removed.
9935 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9936 * sysdeps/unix/sysv/linux/pause.c: Removed.
9937 * sysdeps/unix/sysv/linux/select.c: Removed.
9938 * sysdeps/unix/sysv/linux/write.c: Removed.
9939
9d263d72
UD
99402002-12-14 Ulrich Drepper <drepper@redhat.com>
9941
9942 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
9943 element in TCB to see whether locking is needed.
9944
9945 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
9946 MULTIPLE_THREADS_OFFSET value is correct.
9947
9948 * sysdeps/unix/sysv/linux/close.c: New file.
9949 * sysdeps/unix/sysv/linux/connect.S: New file.
9950 * sysdeps/unix/sysv/linux/creat.c: New file.
9951 * sysdeps/unix/sysv/linux/fsync.c: New file.
9952 * sysdeps/unix/sysv/linux/llseek.c: New file.
9953 * sysdeps/unix/sysv/linux/lseek.c: New file.
9954 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
9955 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
9956 * sysdeps/unix/sysv/linux/msync.c: New file.
9957 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
9958 * sysdeps/unix/sysv/linux/open.c: New file.
9959 * sysdeps/unix/sysv/linux/open64.c: New file.
9960 * sysdeps/unix/sysv/linux/pause.c: New file.
9961 * sysdeps/unix/sysv/linux/poll.c: New file.
9962 * sysdeps/unix/sysv/linux/pread.c: New file.
9963 * sysdeps/unix/sysv/linux/pread64.c: New file.
9964 * sysdeps/unix/sysv/linux/pselect.c: New file.
9965 * sysdeps/unix/sysv/linux/pwrite.c: New file.
9966 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
9967 * sysdeps/unix/sysv/linux/readv.c: New file.
9968 * sysdeps/unix/sysv/linux/recv.S: New file.
9969 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
9970 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
9971 * sysdeps/unix/sysv/linux/select.c: New file.
9972 * sysdeps/unix/sysv/linux/send.S: New file.
9973 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
9974 * sysdeps/unix/sysv/linux/sendto.S: New file.
9975 * sysdeps/unix/sysv/linux/sigpause.c: New file.
9976 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
9977 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9978 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9979 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9980 * sysdeps/unix/sysv/linux/system.c: New file.
9981 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
9982 * sysdeps/unix/sysv/linux/wait.c: New file.
9983 * sysdeps/unix/sysv/linux/waitid.c: New file.
9984 * sysdeps/unix/sysv/linux/waitpid.c: New file.
9985 * sysdeps/unix/sysv/linux/writev.c: New file.
9986 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
9987
9988 * pt-readv.c: Fix comment.
9989
99902002-12-14 Jakub Jelinek <jakub@redhat.com>
9991
9992 * tst-cleanup1.c: Include stdlib.h.
9993
9994 * tst-cancel5.c: New test.
9995 * Makefile (tests): Add tst-cancel5.
9996 (tst-cancel5): Link against libc.so libpthread.so in that order.
9997
9ae0909b
UD
99982002-12-13 Ulrich Drepper <drepper@redhat.com>
9999
b7bdd9c4
UD
10000 * forward.c (test_loaded): Prevent recursive calls.
10001
9ae0909b
UD
10002 * Makefile (routines): Add libc-cancellation.
10003 * libc-cancellation.c: New file.
10004 * descr.h (struct pthread): Add multiple_threads field.
10005 * allocatestack.c (allocate_stack): Initialize multiple_header field of
10006 new thread descriptor to 1.
10007 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
10008 Initialize multiple_thread field after successful thread creation.
10009 * cancellation.c (__do_cancel): Move to pthreadP.h.
10010 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
10011 (__pthread_disable_asynccancel): Add internal_function attribute.
10012 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
10013 * pthread_setcancelstate.c: Likewise.
10014 * pthread_setcanceltype.c: Likewise.
10015 * pthread_exit.c: Likewise.
10016 * pthreadP.h (CANCELLATION_P): Likewise.
10017 (__do_cancel): Define as static inline.
10018 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
10019 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
10020 declarations.
10021 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
10022 fields. Define MULTIPLE_THREADS_OFFSET.
10023 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
10024 declaration.
10025 * sysdeps/unix/sysv/linux/accept.S: New file.
10026 * sysdeps/unix/sysv/linux/read.c: New file.
10027 * sysdeps/unix/sysv/linux/write.c: New file.
10028 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
10029 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
10030 initialization of __libc_locking_needed.
10031 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
10032 __libc_locking_needed, use multiple_threads field in TCB.
10033 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10034
22f20674
UD
100352002-12-12 Ulrich Drepper <drepper@redhat.com>
10036
2ad2e1e7
UD
10037 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
10038 version.
10039 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
10040
22f20674
UD
10041 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
10042 access to __libc_locking_needed for PIC.
10043
aa80bf86
UD
100442002-12-12 Jakub Jelinek <jakub@redhat.com>
10045
10046 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
10047 declare for libc.so.
10048 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
10049 expression.
10050 (__libc_lock_lock): Put into statement expression.
10051 (__libc_lock_unlock): Remove trailing semicolon.
10052 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
10053
24021373
RM
100542002-12-12 Roland McGrath <roland@redhat.com>
10055
10056 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
10057 "m" constraint to refer to __libc_locking_needed. Declare it here.
10058
14e7aece
UD
100592002-12-12 Ulrich Drepper <drepper@redhat.com>
10060
10061 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
10062 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
10063 Initialize __libc_locking_needed.
10064 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
10065 instead of __register_pthread_fork_handler.
10066 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
10067 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
10068 fork-gen with libc_pthread_init.
10069 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
10070 of __register_pthread_fork_handler.
10071 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
10072 of __register_pthread_fork_handler.
10073 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
10074 __libc_locking_needed to determine whether lock prefix can be avoided.
10075 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10076
85631c8e
UD
100772002-12-11 Ulrich Drepper <drepper@redhat.com>
10078
da63009e
UD
10079 * Makefile (tests): Add tst-cleanup1.
10080 * tst-cleanup1.c: New file.
10081 * cancellation.c (__cleanup_thread): Removed.
10082 (__do_cancel): Remove call to __cleanup_thread.
10083 * pthreadP.h: Remove __cleanup_thread prorotype.
10084
000160a2
UD
10085 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
10086 Remember function and argument even if cancellation handler
10087 function is not available.
10088 (__libc_cleanup_region_end): Execute registered function directly if
10089 pthread functions are not available.
10090 (__libc_cleanup_end): Likewise.
10091
85631c8e
UD
10092 * init.c (__pthread_initialize_minimal): Fix initialization in
10093 static lib by preventing gcc from being too clever.
10094
dce8f2b6
UD
100952002-12-10 Ulrich Drepper <drepper@redhat.com>
10096
34a075be
UD
10097 * init.c (__pthread_initialize_minimal): Remove unneccesary
10098 sigaddset call.
10099
dce8f2b6
UD
10100 * Makefile (tests): We can run tst-locale2 now.
10101
e5e45b53
UD
101022002-12-09 Ulrich Drepper <drepper@redhat.com>
10103
10104 * Versions: Remove duplicated sigwait entry.
10105
bdb04f92
UD
101062002-12-08 Ulrich Drepper <drepper@redhat.com>
10107
1e506629
UD
10108 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
10109 inside libpthread.
10110
a3957dd5
UD
10111 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
10112
bdb04f92
UD
10113 * pthreadP.h: Declare __pthread_enable_asynccancel and
10114 __pthread_disable_asynccancel.
10115 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
10116 (CANCEL_RESET): Use __pthread_disable_asynccancel.
10117 * cancellation.c (__pthread_enable_asynccancel): New function.
10118 (__pthread_disable_asynccancel): New function.
10119 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
10120 * pt-close.c: Likewise.
10121 * pt-connect.c: Likewise.
10122 * pt-creat.c: Likewise.
10123 * pt-fcntl.c: Likewise.
10124 * pt-fsync.c: Likewise.
10125 * pt-lseek.c: Likewise.
10126 * pt-lseek64.c: Likewise.
10127 * pt-msgrcv.c: Likewise.
10128 * pt-msgsnd.c: Likewise.
10129 * pt-msync.c: Likewise.
10130 * pt-nanosleep.c: Likewise.
10131 * pt-open.c: Likewise.
10132 * pt-open64.c: Likewise.
10133 * pt-pause.c: Likewise.
10134 * pt-poll.c: Likewise.
10135 * pt-pread.c: Likewise.
10136 * pt-pread64.c: Likewise.
10137 * pt-pselect.c: Likewise.
10138 * pt-pwrite.c: Likewise.
10139 * pt-pwrite64.c: Likewise.
10140 * pt-read.c: Likewise.
10141 * pt-readv.c: Likewise.
10142 * pt-recv.c: Likewise.
10143 * pt-recvfrom.c: Likewise.
10144 * pt-recvmsg.c: Likewise.
10145 * pt-select.c: Likewise.
10146 * pt-send.c: Likewise.
10147 * pt-sendmsg.c: Likewise.
10148 * pt-sendto.c: Likewise.
10149 * pt-sigpause.c: Likewise.
10150 * pt-sigsuspend.c: Likewise.
10151 * pt-sigtimedwait.c: Likewise.
10152 * pt-sigwait.c: Likewise.
10153 * pt-sigwaitinfo.c: Likewise.
10154 * pt-system.c: Likewise.
10155 * pt-tcdrain.c: Likewise.
10156 * pt-wait.c: Likewise.
10157 * pt-waitid.c: Likewise.
10158 * pt-waitpid.c: Likewise.
10159 * pt-write.c: Likewise.
10160 * pt-writev.c: Likewise.
a3957dd5
UD
10161 * pthread_join.c: Likewise.
10162 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
10163
10164 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
10165 (__xpg_sigpause): New function.
10166 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
10167
6ccb3834
UD
101682002-12-07 Ulrich Drepper <drepper@redhat.com>
10169
09efc3ba
UD
10170 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
10171
10172 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
10173 _GI_pthread_cleanup_pop to pthreadP.h.
10174
10175 * ftrylockfile.c: Use _IO_lock_trylock instead of
10176 pthread_mutex_trylock.
10177
10178 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
10179 (CANCEL_RESET): Likewise.
10180 (__pthread_setcanceltype_): Declare.
10181 (__pthread_mutex_lock_internal): Declare.
10182 (__pthread_mutex_unlock_internal): Declare.
10183 (__pthread_once_internal): Declare.
10184 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
10185 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
10186
10187 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
10188 and pthread_mutex_unlock.
10189 * pthread_cond_wait.c: Likewise.
10190 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
10191 * pthread_mutex_unlock.c: Likewise.
10192
10193 * pthread_setcanceltype.c: Add additional alias
10194 __pthread_setcanceltype.
10195
10196 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
10197 * sem_open.c (sem_open): Likewise.
10198 Use __libc_open, __libc_write, and __libc_close instead of
10199 open, write, and close respectively.
10200
10201 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
10202 Rewrite as statement expression since it must return a value.
10203
10204 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
10205 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
10206 __pthread_kill.
10207
10208 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
10209 alias __pthread_once_internal.
10210
6ccb3834
UD
10211 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
10212
d3c9f895
UD
102132002-12-06 Ulrich Drepper <drepper@redhat.com>
10214
4614167a
UD
10215 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
10216 * tst-stdio1.c: New file.
10217 * tst-stdio2.c: New file.
10218
a4548cea
UD
10219 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
10220
d3c9f895
UD
10221 * Makefile (tests): Comment out tst-locale2 for now.
10222 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
10223
10224 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
10225 -D_IO_MTSAFE_IO.
10226 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
10227 Use _IO_lock_init instead of explicit assignment.
10228
10229 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
10230 Define __libc_lock_* and __libc_lock_recursive macros with
10231 lowlevellock macros, not pthread mutexes.
10232
10233 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
10234 of pthread_mutex_lock.
10235 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
10236 instead of pthread_mutex_unlock.
10237
fde89ad0
RM
102382002-12-06 Roland McGrath <roland@redhat.com>
10239
10240 * allocatestack.c (__stack_user): Use uninitialized defn.
10241 * init.c (__pthread_initialize_minimal): Initialize it here.
10242
11767d47
RM
102432002-12-05 Roland McGrath <roland@redhat.com>
10244
fde89ad0
RM
10245 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
10246 string.
10247 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
10248
11767d47
RM
10249 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
10250 missing & here too.
10251
440d8bc2
UD
102522002-12-05 Ulrich Drepper <drepper@redhat.com>
10253
10254 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10255 lowlevellock.
10256 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
10257 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
10258 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
10259 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
10260 for __libc_lock_* macros.
10261 * Makefile (routines): Add libc-lowlevellock.
10262
102632002-10-09 Roland McGrath <roland@redhat.com>
10264
10265 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
10266 Under [__PIC__], call the function via the pointer fetched for
10267 comparison rather than a call by name that uses the PLT.
10268 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
10269 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
10270 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
10271 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
10272 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
10273
d5ed0118
RM
102742002-12-04 Roland McGrath <roland@redhat.com>
10275
10276 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
10277
10278 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
10279 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
10280
10281 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
10282
eaa4099f
UD
102832002-12-04 Ulrich Drepper <drepper@redhat.com>
10284
10285 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
10286 a completely opaque, non-integer type.
10287 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
10288
33b5d0cc
UD
102892002-12-05 Jakub Jelinek <jakub@redhat.com>
10290
10291 * sysdeps/i386/tls.h: Include stdlib.h.
10292 * sysdeps/x86_64/tls.h: Likewise.
10293
7a5cdb30
UD
102942002-12-04 Ulrich Drepper <drepper@redhat.com>
10295
c4a6d859
UD
10296 * Makefile (tests): Add tst-locale2.
10297 (tests-static): Likewise.
10298 * tst-locale2.c: New file.
10299
7a5cdb30
UD
10300 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
10301 volatile and add memory clobbers to lock operations.
10302
d82d5d12
UD
103032002-12-03 Ulrich Drepper <drepper@redhat.com>
10304
69cae3cf
UD
10305 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
10306 * sysdeps/i386/i486/bits/atomic.h: New file.
10307 * sysdeps/i386/i586/bits/atomic.h: New file.
10308 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
10309 include i486 version.
10310 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
10311 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 10312 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 10313
e4044c01
UD
10314 * allocatestack.c (get_cached_stack): Don't crash if we first
10315 found a stack with a larger size then needed.
10316 Reported by Hui Huang <hui.huang@sun.com>.
10317
d82d5d12
UD
10318 * Makefile (tests): Add tst-sysconf.
10319 * tst-sysconf.c: New file.
10320
10321 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
10322 PTHREAD_THREADS_MAX.
10323
fa9a4ff0
RM
103242002-12-02 Roland McGrath <roland@redhat.com>
10325
10326 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
10327 Declare using hidden_proto instead of attribute_hidden, so there are
10328 non-.hidden static symbols for gdb to find.
10329 (__pthread_keys): Likewise.
10330 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
10331 * allocatestack.c (__stack_user): Likewise.
10332 * pthread_create.c (__pthread_keys): Likewise.
10333 (__nptl_threads_events, __nptl_last_event): Make these static instead
10334 of hidden.
10335 * pthread_key_create.c (__pthread_pthread_keys_max,
10336 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
10337
91949a33
UD
103382002-12-02 Ulrich Drepper <drepper@redhat.com>
10339
c22b52fa
UD
10340 * Makefile (tests): Add tst-locale1. If buid-static is yes link
10341 statically.
10342 * tst-locale1.c: New file.
10343
beb6aa41
UD
10344 * pthread_cond_timedwait.c: Include <stdlib.h>.
10345
91949a33
UD
10346 * Makefile (tests): Add tst-fork2 and tst-fork3.
10347 * tst-fork2.c: New file.
10348 * tst-fork3.c: New file.
10349
654dff90
UD
103502002-11-28 Ulrich Drepper <drepper@redhat.com>
10351
cb0e76b4
UD
10352 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
10353
10354 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
10355 require it to 200112L.
10356
10357 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
10358 instruction only if HAVE_CMOV is defined.
10359 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
10360
975aa229
UD
10361 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
10362
654dff90
UD
10363 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
10364
10365 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
10366
10367 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
10368
a3931336
UD
103692002-11-27 Ulrich Drepper <drepper@redhat.com>
10370
c10c099c
UD
10371 * sysdeps/x86_64/bits/atomic.h: New file.
10372
10373 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10374 16-bit operations.
10375
dca99d27
UD
10376 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10377 possible since gettid cannot fail.
10378
f78deea6
UD
10379 * sysdeps/x86_64/pthreaddef.h: New file.
10380
10381 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10382
10383 * sysdeps/x86_64/pthread_spin_init.c: New file.
10384 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10385 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10386 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10387
10388 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10389 Add missing lock prefix. Minute optimization.
10390
10391 * tst-spin2.c (main): Also check successful trylock call.
10392
10393 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10394 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10395
10396 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10397 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10398
10399 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10400 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10401 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10402
10403 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10404 value in case of an error.
10405
a3931336
UD
10406 * sysdeps/x86_64/tls.h: New file.
10407
76a50749
UD
104082002-11-26 Ulrich Drepper <drepper@redhat.com>
10409
117c452c
UD
10410 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10411 takes the array member name and the index as parameters.
10412 (THREAD_SETMEM_NC): Likewise.
10413 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10414 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10415 interfaces.
10416
10417 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10418 to decide which code to use.
10419 (THREAD_SETMEM_NC): Likewise.
10420
76a50749
UD
10421 * allocatestack.c (queue_stack): Don't remove stack from list here.
10422 Do it in the caller. Correct condition to prematurely terminate
10423 loop to free stacks.
10424 (__deallocate_stack): Remove stack from list here.
10425
104262002-11-26 Ulrich Drepper <drepper@redhat.com>
10427
10428 * Makefile (tests): Add tst-stack1.
10429 * tst-stack1.c: New file.
10430
10431 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10432 provided stack.
10433
10434 * pthread_attr_getstack.c: Return bottom of the thread area.
10435
104362002-11-25 Ulrich Drepper <drepper@redhat.com>
10437
10438 * Makefile (libpthread-routines): Add pt-allocrtsig and
10439 pthread_kill_other_threads.
10440 * pt-allocrtsig.c: New file.
10441 * pthread_kill_other_threads.c: New file.
10442 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10443 all three functions.
10444 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10445 allocrtsig.
10446 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10447 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10448 and __libc_allocate_rtsig_private.
10449 * Versions (libpthread): Export pthread_kill_other_threads_np,
10450 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10451
104522002-11-24 Ulrich Drepper <drepper@redhat.com>
10453
10454 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10455 the end of the stack. Adjust computations.
10456 When mprotect call fails dequeue stack and free it.
10457 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10458 attribute.
10459 * pthread_getattr_np.c: Likewise.
10460
10461 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10462 surprises.
10463
104642002-11-23 Ulrich Drepper <drepper@redhat.com>
10465
10466 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10467 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10468
104692002-11-22 Ulrich Drepper <drepper@redhat.com>
10470
10471 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10472 * pthread_setspecific.c: Likewise.
10473
104742002-11-21 Ulrich Drepper <drepper@redhat.com>
10475
10476 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10477 definitions. Get them from the official place.
10478 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10479
10480 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10481 Use new CLONE_ flags in clone() calls.
10482
10483 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10484 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10485
10486 * Versions: Add pthread_* functions for libc.
10487 * forward.c: New file.
10488
10489 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10490 errno-loc.
10491 * herrno.c: New file.
10492 * res.c: New file.
10493
10494 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10495 sem_trywait, and sem_timedwait. Add herrno and res.
10496 * sem_init.c: Don't initialize lock and waiters members.
10497 * sem_open.c: Likewise.
10498 * sem_post.c: Removed.
10499 * sem_wait.c: Removed.
10500 * sem_trywait.c: Removed.
10501 * sem_timedwait.c: Removed.
10502 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10503 Includes full implementations of sem_post, sem_wait, sem_trywait,
10504 and sem_timedwait.
10505 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10506 for new implementation.
10507 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10508 and waiters fields.
10509
10510 * tst-sem3.c: Improve error message.
10511 * tst-signal3.c: Likewise.
10512
10513 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10514 to tell the kernel about the termination futex and to initialize tid
10515 member. Don't initialize main_thread.
10516 * descr.h (struct pthread): Remove main_thread member.
10517 * cancelllation.c (__do_cancel): Remove code handling main thread.
10518 The main thread is not special anymore.
10519
10520 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10521 size of the stacks to stack_cache_actsize.
10522
10523 * pt-readv.c: Add missing "defined".
10524 * pt-sigwait.c: Likewise.
10525 * pt-writev.c: Likewise.
10526
105272002-11-09 Ulrich Drepper <drepper@redhat.com>
10528
10529 * Versions: Export __connect from libpthread.
10530 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10531
10532 * Makefile (libpthread-routines): Add pt-raise.
10533 * sysdeps/unix/sysv/linux/raise.c: New file.
10534 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10535 * sysdeps/generic/pt-raise.c: New file.
10536
10537 * pthread_cond_init.c: Initialize all data elements of the condvar
10538 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10539
10540 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10541 * pthread_create.c: Likewise.
10542
10543 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10544 * tst-key1.c: New file.
10545 * tst-key2.c: New file.
10546 * tst-key3.c: New file.
10547
10548 * Versions: Export pthread_detach for version GLIBC_2.0.
10549 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10550
105512002-11-08 Ulrich Drepper <drepper@redhat.com>
10552
10553 * pthread_key_create.c: Terminate search after an unused key was found.
10554 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10555
10556 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10557 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10558
105592002-10-10 Ulrich Drepper <drepper@redhat.com>
10560
10561 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10562 dynamic lookup for errno in PIC.
10563
10564 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10565 release the stack lock as soon as possible.
10566 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10567 the static TLS block.
10568 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10569
10570 * cancellation.c: Renamed from cancelation.c.
10571 * Makefile: Adjust accordingly.
10572 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10573 * cleanup_defer.c: Use CANCELLATION_P.
10574 * pthread_testcancel.c: Likewise.
10575 * descr.h: Fix spelling in comments.
10576 * init.c: Likewise.
10577 * pthread_getattr_np.c: Likewise.
10578 * pthread_getschedparam.c: Likewise.
10579 * pthread_setschedparam.c: Likewise.
10580 * Versions: Likewise.
10581
10582 * pt-pselect.c: New file.
10583 * Makefile (libpthread-routines): Add pt-pselect.
10584 * Versions: Add pselect.
10585
10586 * tst-cancel4.c: New file.
10587 * Makefile (tests): Add tst-cancel4.
10588
105892002-10-09 Ulrich Drepper <drepper@redhat.com>
10590
10591 * pthread_mutex_lock.c: Always record lock ownership.
10592 * pthread_mutex_timedlock.c: Likewise.
10593 * pthread_mutex_trylock.c: Likewise.
10594
10595 * pt-readv.c: New file.
10596 * pt-writev.c: New file.
10597 * pt-creat.c: New file.
10598 * pt-msgrcv.c: New file.
10599 * pt-msgsnd.c: New file.
10600 * pt-poll.c: New file.
10601 * pt-select.c: New file.
10602 * pt-sigpause.c: New file.
10603 * pt-sigsuspend.c: New file.
10604 * pt-sigwait.c: New file.
10605 * pt-sigwaitinfo.c: New file.
10606 * pt-waitid.c: New file.
10607 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10608 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10609 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10610 * Versions: Add all the new functions.
10611
10612 * tst-exit1.c: New file.
10613 * Makefile (tests): Add tst-exit1.
10614
10615 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10616
106172002-10-08 Ulrich Drepper <drepper@redhat.com>
10618
10619 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10620
10621 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10622 call. pthread_join is an official cancellation point.
10623 * pthread_timedjoin.c: Likewise.
10624
10625 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10626 and the condvar's mutex are retrieved.
10627 * pthread_cond_timedwait.c: Likewise.
10628 Reported by dice@saros.East.Sun.COM.
10629
106302002-10-07 Ulrich Drepper <drepper@redhat.com>
10631
10632 * pthreadP.h: Cut out all type definitions and move them...
10633 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10634 * pthreadP.h: Include <internaltypes.h>.
10635
10636 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10637 performance tweaks.
10638
10639 * sem_trywait.c: Shuffle #includes around to get right order.
10640 * sem_timedwait.c: Likewise.
10641 * sem_post.c: Likewise.
10642 * sem_wait.c: Likewise.
10643
10644 * nptl 0.3 released.
10645
10646 * Makefile (tests): Add tst-signal3.
10647 * tst-signal3.c: New file.
10648
106492002-10-05 Ulrich Drepper <drepper@redhat.com>
10650
10651 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10652 the asms modify the sem object.
10653 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10654
10655 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10656 the actual members.
10657 * pthreadP.h (struct sem): New type. Actual semaphore type.
10658 * semaphoreP.h: Include pthreadP.h.
10659 * sem_getvalue.c: Adjust to sem_t change.
10660 * sem_init.c: Likewise.
10661 * sem_open.c: Likewise.
10662 * sem_post.c: Likewise.
10663 * sem_timedwait.c: Likewise.
10664 * sem_trywait.c: Likewise.
10665 * sem_wait.c: Likewise.
10666
106672002-10-04 Ulrich Drepper <drepper@redhat.com>
10668
10669 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10670 * tst-basic2.c: New file.
10671 * tst-exec1.c: New file.
10672 * tst-exec2.c: New file.
10673 * tst-exec3.c: New file.
10674
10675 * tst-fork1.c: Remove extra */.
10676
10677 * nptl 0.2 released. The API for IA-32 is complete.