]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* sysdeps/unix/sysv/linux/ifaddrs.c: Revert unintended 2008-08-12 comment change.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
d5c157a9
UD
12009-04-27 Ulrich Drepper <drepper@redhat.com>
2
3 * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
4 is available.
5 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
6 * sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
7 * sysdeps/i386/tls.h: Likewise.
8 (tcbhead_t): Add __private_tm member.
9
f521be31
UD
102009-04-26 Ulrich Drepper <drepper@redhat.com>
11
5efe8650
UD
12 * sem_open.c (sem_open): Rewrite initialization of initsem to
13 avoid warnings.
14
f521be31
UD
15 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
16 Avoid warning by using may_alias attribute on ptrhack.
17
d301a6e1
UD
182009-04-22 Ulrich Drepper <drepper@redhat.com>
19
5497de87 20 [BZ #10090]
d301a6e1
UD
21 * pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
22 Check policy and priority for validity.
23 Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
24
71a5bd3e
UD
252009-03-15 Ulrich Drepper <drepper@redhat.com>
26
27 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
28 (__pthread_cond_timedwait): Change to use cfi directives instead of
29 hand-coded unwind sections.
30
30991b8b
UD
312009-03-10 Ulrich Drepper <drepper@redhat.com>
32
33 * init.c (nptl_freeres): Compile only for SHARED.
34
9920a6b8
JJ
352009-03-09 Jakub Jelinek <jakub@redhat.com>
36
37 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
38 FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
39 FUTEX_BITSET_MATCH_ANY.
40
e965d514
RM
412009-02-27 Roland McGrath <roland@redhat.com>
42
43 * init.c (__nptl_initial_report_events): Mark __attribute_used__.
44 * pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
45
6cbe890a
UD
462009-02-26 Ulrich Drepper <drepper@redhat.com>
47
48 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
49 _POSIX_THREAD_ROBUST_PRIO_INHERIT and
50 _POSIX_THREAD_ROBUST_PRIO_PROTECT. Reset value of macros from
51 200112L to 200809L.
52
77db439e
UD
532009-02-25 Ulrich Drepper <drepper@redhat.com>
54
55 * sysdeps/pthread/pthread.h: The robust mutex functions are in
56 POSIX 2008.
57
5be0a688
UD
582009-02-24 Ulrich Drepper <drepper@redhat.com>
59
60 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
61 Unify name of include protector macro.
62
4c869eb6
UD
632009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
64
65 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
66 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
67
cca50323
UD
682009-01-29 Ulrich Drepper <drepper@redhat.com>
69
7f901dd7
UD
70 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
71 pointer variables.
72
cca50323
UD
73 * allocatestack.c (__free_stacks): Renamed from free_stacks.
74 (__free_stack_cache): Removed. Change callers to call __free_stacks.
75 * init.c (nptl_freeres): New function.
76 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
77 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
78 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
79 variable.
80 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
81 load DSO. Assign last.
82 (__unwind_freeres): New function.
83
84 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
85 for better debugging. No need to use stack_list_add here.
86
a7bd183f
UD
872009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
88
89 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
90 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
91 instead of computing relative timeout.
92 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
93 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
94
563ee1cb
UD
952009-01-25 Ulrich Drepper <drepper@redhat.com>
96
97 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
98
f25c7b08
UD
992009-01-08 Ulrich Drepper <drepper@redhat.com>
100
101 * sysdeps/pthread/list.h (list_add): Initialize new element first.
102 (list_add_tail): Removed.
103
3c612057
UD
1042009-01-04 Ulrich Drepper <drepper@redhat.com>
105
106 * init.c (__pthread_initialize_minimal_internal): Optimize test
107 FUTEX_CLOCK_REALTIME a bit.
108
19834b42
UD
1092009-01-03 Ulrich Drepper <drepper@redhat.com>
110
111 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
112 only passing five parameters to FUTEX_WAIT_BITSET call.
113
114 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 115 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
116 instead of computing relative timeout.
117
7dd650d7
UD
1182009-01-02 Ulrich Drepper <drepper@redhat.com>
119
cbd8aeb8
UD
120 * init.c (__pthread_initialize_minimal_internal): Check for
121 FUTEX_CLOCK_REALTIME flag.
122 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 123 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
124 relative timeout.
125
7dd650d7
UD
126 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
127 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
128 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
129 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
130 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
131 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
132
217d45cd
UD
1332008-12-09 Ulrich Drepper <drepper@redhat.com>
134
135 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
136 loop body instead of ; to avoid gcc warnings.
137 (pthread_cleanup_pop_restore_np): Likewise.
138 Patch by Caolán McNamara <caolanm@redhat.com>.
139
6de79a49
UD
1402008-12-09 Jakub Jelinek <jakub@redhat.com>
141
142 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
143 fast path here, for robust/PI/PP mutexes call
144 __pthread_mutex_lock_full. Don't use switch, instead use a series
145 of ifs according to their probability.
146 (__pthread_mutex_lock_full): New function.
147 * pthread_mutex_unlock.c: Include assert.h.
148 (__pthread_mutex_unlock_usercnt): Handle only the
149 fast path here, for robust/PI/PP mutexes call
150 __pthread_mutex_unlock_full. Don't use switch, instead use a series
151 of ifs according to their probability.
152 (__pthread_mutex_unlock_full): New function.
153 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
154 (__pthread_mutex_lock_full): Define.
155
71bb2639
UD
1562008-12-08 Ulrich Drepper <drepper@redhat.com>
157
158 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
159 implementation. Add necessary padding and.
160 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
161 words.
162
247626f3
UD
1632008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
164
165 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
166 and FUTEX_WAKE_BITSET.
167
da5ac135
UD
1682008-12-02 Ulrich Drepper <drepper@redhat.com>
169
170 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
171 and FUTEX_WAKE_BITSET.
172 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
173 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
174 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
175 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
176
c0439b95
RM
1772008-11-25 Roland McGrath <roland@redhat.com>
178
179 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
180 Subdirectories moved to ports repository as
181 sysdeps/.../nptl subdirectories.
182
0e54a725
UD
1832008-11-12 Jakub Jelinek <jakub@redhat.com>
184
185 [BZ #7008]
186 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
187 of old value.
188 * pthread_cond_init.c (__pthread_cond_init): Fix
189 cond->__data.__nwaiters initialization.
190 * Makefile (tests): Add tst-cond23.
191 * tst-cond23.c: New test.
192
4b23f9bd
JJ
1932008-11-07 Jakub Jelinek <jakub@redhat.com>
194
195 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
196 arguments.
197 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
198 arguments.
199
efac1fce
UD
2002008-11-01 Ulrich Drepper <drepper@redhat.com>
201
202 [BZ #6955]
203 * pthread_mutex_lock.c: Add support for private PI mutexes.
204 * pthread_mutex_timedlock.c: Likewise.
205 * pthread_mutex_trylock.c: Likewise.
206 * pthread_mutex_unlock.c: Likewise.
207 Patch mostly by Ben Jackson <ben@ben.com>.
208
bf837fa3
UD
2092008-10-31 Ulrich Drepper <drepper@redhat.com>
210
211 [BZ #6843]
212 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
213 Increase stack size for helper thread.
214
208bc836
UD
2152008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
216
217 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
218 assembly with a clobber list for access registers a0 and a1.
219
17f8b4a9
UD
2202008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
221
222 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
223 to force runp->refcntr to be read from memory.
224
2458c748
AJ
2252008-09-08 Richard Guenther <rguenther@suse.de>
226
227 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
228 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
229 lll_timedlock, lll_robust_timedlock, lll_unlock,
230 lll_robust_unlock): Promote private to int.
231
965805e8
UD
2322008-08-15 Ulrich Drepper <drepper@redhat.com>
233
234 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
235 ARCH_RETRY_MMAP definitions.
236 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
237 Define MAP_STACK when not defined.
238 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
239 handling of ARCH_RETRY_MMAP.
240
bd7f4857
UD
2412008-07-30 Ulrich Drepper <drepper@redhat.com>
242
243 * tst-align2.c (f): Print message that f is reached.
244
619cc2f6
UD
2452008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
246
247 [BZ #6740]
248 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
249 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
250
8ccf22f9
UD
2512008-07-25 Ulrich Drepper <drepper@redhat.com>
252
253 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
254 SOCK_CLOEXEC if possible.
255
2562008-05-29 Ulrich Drepper <drepper@redhat.com>
257
258 * Makefile (tests): Add tst-rwlock2a.
259 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
260 * tst-rwlock2a.c: New file.
261
5a337776
UD
2622008-06-12 Ulrich Drepper <drepper@redhat.com>
263
264 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
265
e4d6e7f5
UD
2662008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
267
268 * sysdeps/pthread/pthread.h: Fix typo in comment.
269
d6296e88
UD
2702008-05-28 Ulrich Drepper <drepper@redhat.com>
271
272 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
273 of CPU set to the kernel.
274
62605cbf
UD
2752008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
276
277 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
278 cfi directives.
279 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
280 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
281 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
282 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
283 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
284 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
285
2862008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
287
288 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
289 cfi directives.
290 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
291 Likewise.
292 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
293 Likewise.
294 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
295 Likewise.
296
4b2c85c0
UD
2972008-05-26 Ulrich Drepper <drepper@redhat.com>
298
299 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
300
b72f5692 3012008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
302
303 David S. Miller <davem@davemloft.net>
3b15b590 304
b72f5692 305 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 306
cdffaaa6
UD
3072008-05-10 Ulrich Drepper <drepper@redhat.com>
308
309 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
310 __pshared correctly.
311 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
312 Likewise.
313 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
314 Likewise.
315 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
316 Likewise.
317 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
318 Likewise.
319 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
320
2313c48f
JJ
3212008-04-14 David S. Miller <davem@davemloft.net>
322
323 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
324 (__old_sem_wait): Fix argument to lll_futex_wait().
325
2f611ada
UD
3262007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
327
328 * pthread_create.c: Require pthread_mutex_trylock and
329 pthread_key_delete for libgcc.
330
d24be489
JJ
3312008-04-08 Jakub Jelinek <jakub@redhat.com>
332
333 [BZ #6020]
334 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
335 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
336 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
337
f96853be
UD
3382008-03-27 Ulrich Drepper <drepper@redhat.com>
339
8ccf22f9 340 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
341 <linux/limits.h> has defined it.
342 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
343 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
344 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
345 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
346
354b7527
JJ
3472008-03-18 Jakub Jelinek <jakub@redhat.com>
348
349 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
350 of ASSEMBLER.
351 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
352 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
353
702ae329
UD
3542008-03-14 Ulrich Drepper <drepper@redhat.com>
355
356 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
357 HAVE_DL_DISCOVER_OSVERSION.
358 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
359 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
360
443db178
UD
3612008-03-07 Ulrich Drepper <drepper@redhat.com>
362
363 [BZ #5778]
364 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
365 _POSIX_CHOWN_RESTRICTED value to zero.
366
67fbfa5c
RM
3672008-01-31 Roland McGrath <roland@redhat.com>
368
369 * Makefile (omit-deps): Variable removed.
370
dd3113da
UD
3712008-01-30 Ulrich Drepper <drepper@redhat.com>
372
373 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
374 unnecessary addr32 prefix.
375
16cd816f
RM
3762008-01-29 Roland McGrath <roland@redhat.com>
377
378 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
379
b4b166af
UD
3802008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
381
382 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
383
3842008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
385
386 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
387 a scratch register.
388 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
389 (__lll_lock_wait_private): Fix typo.
390 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
391 (pthread_barrier_wait): Likewise. Adjust XADD use.
392 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
393 Adjust XADD use.
394 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
395 (pthread_rwlock_timedrdlock): Return correct return value.
396 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 397 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 398
eaf95a26
UD
3992008-01-15 Ulrich Drepper <drepper@redhat.com>
400
401 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
402 thread returns the program exits with an error code.
403
ab355d9a
UD
4042008-01-10 Ulrich Drepper <drepper@redhat.com>
405
406 * pthread-errnos.sym: Add EOVERFLOW.
407 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
408 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
409 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
410 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
411
b8cca206
UD
4122007-12-14 Ulrich Drepper <drepper@redhat.com>
413
414 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
415 parameter. Passed it as permission to mmap.
416 * allocatestack.c (allocate_stack): Pass prot as second parameter
417 to ARCH_RETRY_MMAP.
418
189dce4f
UD
4192007-12-12 Ulrich Drepper <drepper@redhat.com>
420
3eb0e1c6
UD
421 * tst-basic7.c: Allocate memory for the stack.
422
189dce4f
UD
423 [BZ #5465]
424 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
425 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 426 Patch by Michal Januszewski.
189dce4f 427
26e21e75
UD
4282007-12-07 Ulrich Drepper <drepper@redhat.com>
429
430 [BZ #5455]
431 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
432 Allow label before pthread_cleanup_pop.
433 (pthread_cleanup_pop_restore_np): Likewise.
434
191ec77f
UD
4352007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
436
437 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
438 Store 2 before returning ETIMEDOUT.
439
c012be6f
UD
4402007-11-23 Ulrich Drepper <drepper@redhat.com>
441
442 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
443 Store 2 before returning ETIMEDOUT.
444 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
445 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
446 (__lll_lock_wait_private): Optimize.
447 (__lll_lock_wait): Likewise.
448
77f1e09a
UD
4492007-11-20 Jakub Jelinek <jakub@redhat.com>
450
451 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
452 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
453 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
454
0f7e0ee5
UD
4552007-11-08 Ulrich Drepper <drepper@redhat.com>
456
cbed6a60
UD
457 [BZ #5240]
458 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
459 If we time out, try one last time to lock the futex to avoid
460 losing a wakeup signal.
461 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
462 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
463
0f7e0ee5
UD
464 [BZ #5245]
465 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
466 if necessary.
467
f6ed654c
UD
4682007-11-07 Ulrich Drepper <drepper@redhat.com>
469
470 [BZ #5245]
471 * allocatestack.c (allocate_stack): Change ENOMEM error in case
472 mmap failed to EAGAIN.
473 * Makefile (tests): Add tst-basic7.
474 * tst-basic7.c: New file.
475
b92e3780
UD
4762007-11-05 Ulrich Drepper <drepper@redhat.com>
477
478 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
479 Use __linkin_atfork.
480
94a749f6
UD
4812007-11-03 Mike Frysinger <vapier@gentoo.org>
482
483 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
484 missing line continuations.
485 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
486 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
487
f160a450
UD
4882007-10-28 Ulrich Drepper <drepper@redhat.com>
489
490 [BZ #5220]
491 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
492 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
493 (struct timer): Add next element.
494 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
495 enqueue timer structure into __active_timer_sigev_thread list.
496 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
497 remove timer struct from __active_timer_sigev_thread.
498 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
499 Before using timer structure make sure it is still on the
500 __active_timer_sigev_thread list. Keep lock until done.
501 Define __active_timer_sigev_thread and
502 __active_timer_sigev_thread_lock.
503
94833f11
UD
5042007-10-27 Ulrich Drepper <drepper@redhat.com>
505
506 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
507 Redefine thread_atfork for use of ATFORK_MEM.
508 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
509 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
510 function.
511 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
512 Use atomic operation when removing first element of list.
513
96c06e08
JJ
5142007-10-17 Jakub Jelinek <jakub@redhat.com>
515
516 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
517 routine instead of an alias to __new_sem_post.
518
e807818b
JJ
5192007-10-15 Jakub Jelinek <jakub@redhat.com>
520
521 * init.c (__pthread_initialize_minimal): Initialize word to appease
522 valgrind.
523
59d430c6
UD
5242007-10-10 Jakub Jelinek <jakub@redhat.com>
525
526 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
527 libc.so just clear NAME.
528 (__libc_rwlock_fini): Nop inside of libc.so.
529 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
530 all zeros.
531
221d9d8e
UD
5322007-09-02 Ulrich Drepper <drepper@redhat.com>
533
534 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
535 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
536 unlocking failed.
537 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
538
2a01ce56
UD
5392007-08-21 Ulrich Drepper <drepper@redhat.com>
540
541 [BZ #4938]
542 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
543 reclaimed stack if necessary.
544 * Makefile (tests): Add tst-tsd6.
545 * tst-tsd6.c: New file.
546
c273641b
JJ
5472007-08-21 Jakub Jelinek <jakub@redhat.com>
548
549 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
550 Add private argument.
551
fb84593c
UD
5522007-08-20 Ulrich Drepper <drepper@redhat.com>
553
554 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
555 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
556
3e8d1eab
JJ
5572007-08-16 Jakub Jelinek <jakub@redhat.com>
558
559 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
560 (__lll_robust_timedlock): Pass private as last argument to
561 __lll_robust_timedlock_wait.
562 (__lll_unlock): Fix a pasto.
563
e4720b0e
JJ
5642007-08-15 Jakub Jelinek <jakub@redhat.com>
565
566 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
567 sparc_old_sem): New structs.
568 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
569 (__sem_wait_cleanup): New function.
570 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
571 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
572 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
573 lll_futex_wait.
574 (__old_sem_wait): New function.
575 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
576 nptl/sysdeps/unix/sysv/linux/sparc version.
577 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
578 Likewise.
579 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
580 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
581 (__new_sem_trywait): Use sparc_old_sem structure.
582 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
583 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
584 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
585 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
586 lll_futex_timed_wait.
587 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
588 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
589 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
590 lll_futex_wake.
591 (__old_sem_post): New function.
592 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
593 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
594 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
595 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
596 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
597 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
598
d13f4a43
UD
5992007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
600
601 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
602 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
603 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
604 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
605 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
606 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
607 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
608 Use FUTEX_WAKE_OP.
609 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
610 kernel-features.h and tcb-offsets.h.
611 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
612 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
613 process private.
614 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
615 tcb-offsets.h.
616 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
617 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
618 process private.
619 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
620 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
621 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
622 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
623 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
624 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
625 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
626
702a9414
JJ
6272007-08-14 Jakub Jelinek <jakub@redhat.com>
628
467d1345
JJ
629 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
630 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
631 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
632 lll_futex_timed_wait.
633
702a9414
JJ
634 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
635 __lll_robust_unlock): Rewrite as macros instead of inline functions.
636 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
637 __lll_robust_unlock, __lll_wait_tid): Likewise.
638
22502ea2
UD
6392007-08-13 Jakub Jelinek <jakub@redhat.com>
640
641 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
642 Fix a pasto.
643 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
644 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
645 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
646 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
647 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
648 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
649 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
650 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
651 kernel-features.h.
652 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
653 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
654 process private. Switch DW_CFA_advance_loc1 and some
655 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
656 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
657 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
658 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
659 process private. Switch DW_CFA_advance_loc{1,2} and some
660 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
661 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
662 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
663 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
664 Likewise.
665 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
666 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
667 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
668 Likewise.
669 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
670 (__pthread_cond_broadcast): Compare %r8 instead of
671 dep_mutex-cond_*(%rdi) with $-1.
672 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
673 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
674 of oring.
675
4baf59ad
UD
6762007-08-13 Ulrich Drepper <drepper@redhat.com>
677
678 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
679
9c6f6953
UD
6802007-08-13 Jakub Jelinek <jakub@redhat.com>
681
682 * allocatestack.c: Include kernel-features.h.
683 * pthread_create.c: Likewise.
684 * pthread_mutex_init.c: Likewise.
685 * init.c: Likewise.
686 * pthread_cond_timedwait.c: Likewise.
687 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
688 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
689 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
690 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
691 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
692 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
693 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
694 Likewise.
695 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
696 Likewise.
697 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
698 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
699 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
700 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
701
974a1f0f
UD
7022007-08-12 Jakub Jelinek <jakub@redhat.com>
703
704 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
705 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
706 byte elements. One of them is the new __shared element.
707 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
708 adjust names of other padding elements.
709 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
710 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
711 byte elements. One of them is the new __shared element.
712 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
713 adjust names of other padding elements.
714 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
715 Renamed __pad1 element to __shared, adjust names of other padding
716 elements.
717 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
718 (pthread_rwlock_t): Likewise.
719 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
720 typo.
721
7222007-08-09 Anton Blanchard <anton@samba.org>
723
724 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
725
f47e2626
UD
7262007-08-12 Ulrich Drepper <drepper@redhat.com>
727
728 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
729 <kernel-features.h>.
730 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
731
5bd8a249
UD
7322007-08-11 Ulrich Drepper <drepper@redhat.com>
733
734 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
735 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
736 dealing with robust mutexes.
737 * pthread_mutex_timedlock.c: Likewise.
738 * pthread_mutex_trylock.c: Likewise.
739 * pthread_mutex_unlock.c: Likewise.
740 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
741
7422007-08-06 Jakub Jelinek <jakub@redhat.com>
743
744 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
745 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
746 (PTHREAD_MUTEX_PSHARED): Define.
747 * pthread_mutex_init.c (__pthread_mutex_init): Set
748 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
749 mutexes.
750 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
751 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
752 as second argument to lll_lock.
753 (LLL_MUTEX_TRYLOCK): Take mutex as argument
754 instead of its __data.__lock field.
755 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
756 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
757 to lll_robust_lock.
758 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
759 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
760 instead of mutex->__data.__kind directly, pass
761 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
762 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
763 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
764 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
765 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
766 to lll_timedlock, lll_robust_timedlock, lll_unlock and
767 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
768 of mutex->__data.__kind directly.
769 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
770 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
771 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
772 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
773 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
774 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
775 and lll_futex_wake.
776 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
777 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
778 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
779 directly.
780 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
781 Take mutex as argument instead of its __data.__lock field, pass
782 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
783 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
784 __data.__lock field.
785 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
786 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
787 to lll_robust_cond_lock.
788 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
789 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
790 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
791 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
792 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
793 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
794 lll_futex_wait.
795 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
796 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
797 lll_futex_wake.
798 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
799 pshared variable, pass it to lll_lock, lll_unlock,
800 lll_futex_timedwait and lll_futex_wake.
801 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
802 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
803 and lll_futex_wake.
804 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
805 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
806 macro.
807 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
808 lll_futex_wake_unlock): Likewise.
809 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
810 Likewise.
811 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
812 lll_futex_wake_unlock): Likewise.
813 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
814 Likewise.
815 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
816 lll_futex_wake_unlock): Likewise.
817 (lll_futex_wake): Fix a typo.
818 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
819 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
820 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
821 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
822 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
823 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
824 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
825 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
826 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
827 (__pthread_cond_timedwait): Likewise.
828 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
829 (__condvar_cleanup, __pthread_cond_wait): Likewise.
830
0470fa46
JJ
8312007-08-05 Jakub Jelinek <jakub@redhat.com>
832
833 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
834 Don't use CGOTSETUP and CGOTRESTORE macros.
835 (CGOTSETUP, CGOTRESTORE): Remove.
836 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
837 @local symbol.
838
64f6281c
UD
8392007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
840
841 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
842 definitions for private futexes.
843 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
844 kernel-features.h and lowlevellock.h. Use private futexes if
845 they are available.
846 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
847 (__lll_mutex_lock_wait): Rename to
848 (__lll_lock_wait): ... this. Don't compile in for libc.so.
849 (__lll_mutex_timedlock_wait): Rename to ...
850 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
851 Don't compile in for libc.so.
852 (__lll_mutex_unlock_wake): Rename to ...
853 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
854 (__lll_timedwait_tid): Use __NR_gettimeofday.
855 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
856 the header from assembler. Renamed all lll_mutex_* resp.
857 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
858 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
859 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
860 Define.
861 (__lll_lock_wait_private): Add prototype.
862 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
863 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
864 __lll_unlock_wake): Likewise.
865 (lll_lock): Add private argument. Call __lll_lock_wait_private
866 if private is constant LLL_PRIVATE.
867 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
868 lll_timedlock, lll_robust_timedlock): Add private argument.
869 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
870 if private is constant LLL_PRIVATE.
871 (lll_robust_unlock, lll_robust_dead): Add private argument.
872 (lll_lock_t): Remove.
873 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
874 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
875 lll_cond_wake, lll_cond_broadcast): Remove.
876 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
877 kernel-features.h and lowlevellock.h.
878 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
879 (LOAD_FUTEX_WAIT): Define.
880 (__lll_robust_mutex_lock_wait): Rename to ...
881 (__lll_robust_lock_wait): ... this. Add private argument.
882 Use LOAD_FUTEX_WAIT macro.
883 (__lll_robust_mutex_timedlock_wait): Rename to ...
884 (__lll_robust_timedlock_wait): ... this. Add private argument.
885 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
886 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
887 lowlevellock.h.
888 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
889 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
890 __lll_mutex_{lock,unlock}_*.
891 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
892 lowlevellock.h and pthread-errnos.h.
893 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
894 FUTEX_CMP_REQUEUE, EINVAL): Remove.
895 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
896 __lll_mutex_{lock,unlock}_*.
897 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
898 lowlevellock.h and pthread-errnos.h.
899 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
900 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
901 __lll_mutex_{lock,unlock}_*.
902 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
903 lowlevellock.h.
904 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
905 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
906 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
907 (__condvar_tw_cleanup): Likewise.
908 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
909 lowlevellock.h.
910 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
911 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
912 __lll_mutex_{lock,unlock}_*.
913 ( __condvar_w_cleanup): Likewise.
914 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
915 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
916 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
917 lowlevellock.h.
918 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
919 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
920 __lll_mutex_{lock,unlock}_*.
921 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
922 lowlevellock.h.
923 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
924 FUTEX_PRIVATE_FLAG): Remove.
925 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
926 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
927 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
928 lowlevellock.h.
929 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
930 FUTEX_PRIVATE_FLAG): Remove.
931 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
932 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
933 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
934 lowlevellock.h.
935 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
936 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
937 __lll_mutex_{lock,unlock}_*.
938 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
939 lowlevellock.h.
940 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
941 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
942 __lll_mutex_{lock,unlock}_*.
943 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
944 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
945 (__new_sem_post): Use standard initial exec code sequences.
946 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
947 lowlevellock.h.
948 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
949 FUTEX_PRIVATE_FLAG): Remove.
950 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
951 exec code sequences.
952 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
953 (__new_sem_trywait): Use standard initial exec code sequences.
954 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
955 (__new_sem_wait): Use standard initial exec code sequences.
956
e51deae7
UD
9572007-07-31 Anton Blanchard <anton@samba.org>
958
959 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
960 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
961 atomic_full_barrier.
962
9632007-07-31 Jakub Jelinek <jakub@redhat.com>
964
965 * allocatestack.c (stack_cache_lock): Change type to int.
966 (get_cached_stack, allocate_stack, __deallocate_stack,
967 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
968 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
969 as second argument to lll_lock and lll_unlock macros on
970 stack_cache_lock.
971 * pthread_create.c (__find_in_stack_list): Likewise.
972 (start_thread): Similarly with pd->lock. Use lll_robust_dead
973 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
974 as second argument.
975 * descr.h (struct pthread): Change lock and setxid_futex field
976 type to int.
977 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
978 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
979 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
980 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
981 Likewise.
982 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
983 * pthread_cond_init.c (__pthread_cond_init): Likewise.
984 * pthreadP.h (__attr_list_lock): Change type to int.
985 * pthread_attr_init.c (__attr_list_lock): Likewise.
986 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
987 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
988 lll_{,un}lock.
989 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
990 also for lll_futex_{wake,wait}.
991 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
992 a pointer to const.
993 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
994 LLL_SHARED as second argument to lll_{,un}lock.
995 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
996 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
997 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
998 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
999 Likewise.
1000 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
1001 as second argument to lll_{,un}lock macros on pd->lock.
1002 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
1003 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
1004 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
1005 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
1006 Likewise.
1007 * sysdeps/pthread/createthread.c (do_clone, create_thread):
1008 Likewise.
1009 * pthread_once.c (once_lock): Change type to int.
1010 (__pthread_once): Pass LLL_PRIVATE as second argument to
1011 lll_{,un}lock macros on once_lock.
1012 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
1013 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
1014 rwlock->__data.__shared as second argument to them and similarly
1015 for lll_futex_w*.
1016 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
1017 Likewise.
1018 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
1019 Likewise.
1020 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
1021 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
1022 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
1023 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1024 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
1025 to lll_{,un}lock macros on __sem_mappings_lock.
1026 * sem_open.c (check_add_mapping): Likewise.
1027 (__sem_mappings_lock): Change type to int.
1028 * semaphoreP.h (__sem_mappings_lock): Likewise.
1029 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
1030 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
1031 instead of lll_*mutex_*, pass LLL_SHARED as last
1032 argument.
1033 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
1034 pass LLL_SHARED as last argument.
1035 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
1036 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
1037 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
1038 pass LLL_SHARED as last argument.
1039 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
1040 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
1041 LLL_SHARED as last argument.
1042 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
1043 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
1044 Similarly.
1045 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
1046 __libc_lock_lock_recursive, __libc_lock_unlock,
1047 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
1048 argument to lll_{,un}lock.
1049 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
1050 _IO_lock_unlock): Likewise.
1051 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
1052 compound literal.
1053 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1054 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
1055 __fork_lock.
1056 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
1057 free_mem): Likewise.
1058 (__fork_lock): Change type to int.
1059 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
1060 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
1061 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
1062 lll_futex_wake.
1063 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
1064 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
1065 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
1066 New function.
1067 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
1068 pass it through to lll_futex_*wait, only compile in when
1069 IS_IN_libpthread.
1070 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
1071 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
1072 argument and pass it through to lll_futex_*wait.
1073 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
1074 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
1075 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
1076 inline functions to __lll_* resp. __lll_robust_*.
1077 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
1078 (lll_mutex_dead): Add private argument.
1079 (__lll_lock_wait_private): New prototype.
1080 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
1081 __lll_robust_lock_timedwait): Add private argument to prototypes.
1082 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
1083 call __lll_lock_wait_private, otherwise pass private to
1084 __lll_lock_wait.
1085 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
1086 __lll_robust_timedlock): Add private argument, pass it to
1087 __lll_*wait functions.
1088 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
1089 call __lll_unlock_wake_private, otherwise pass private to
1090 __lll_unlock_wake.
1091 (__lll_robust_unlock): Add private argument, pass it to
1092 __lll_robust_unlock_wake.
1093 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
1094 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
1095 argument, pass it through to __lll_* inline function.
1096 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
1097 (lll_lock_t): Remove.
1098 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1099 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1100 lll_cond_wake, lll_cond_broadcast): Remove.
1101 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1102 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1103 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1104 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1105 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
1106 the header from assembler. Renamed all lll_mutex_* resp.
1107 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
1108 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
1109 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
1110 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
1111 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
1112 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
1113 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
1114 Remove prototype.
1115 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
1116 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
1117 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
1118 (lll_trylock): Likewise, use __lll_trylock_asm, pass
1119 MULTIPLE_THREADS_OFFSET as another asm operand.
1120 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
1121 MULTIPLE_THREADS_OFFSET as last asm operand, call
1122 __lll_lock_wait_private if private is constant LLL_PRIVATE,
1123 otherwise pass private as another argument to __lll_lock_wait.
1124 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
1125 lll_timedlock, lll_robust_timedlock): Add private argument, pass
1126 private as another argument to __lll_*lock_wait call.
1127 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
1128 MULTIPLE_THREADS_OFFSET as another asm operand, call
1129 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
1130 otherwise pass private as another argument to __lll_unlock_wake.
1131 (lll_robust_unlock): Add private argument, pass private as another
1132 argument to __lll_unlock_wake.
1133 (lll_robust_dead): Add private argument, use __lll_private_flag
1134 macro.
1135 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
1136 LLL_MUTEX_LOCK_INITIALIZER.
1137 (lll_lock_t): Remove.
1138 (LLL_LOCK_INITIALIZER_WAITERS): Define.
1139 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
1140 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
1141 lll_cond_wake, lll_cond_broadcast): Remove.
1142 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1143 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
1144 2007-05-2{3,9} changes.
1145 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
1146 kernel-features.h and lowlevellock.h.
1147 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1148 (LOAD_FUTEX_WAIT): Rewritten.
1149 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1150 define.
1151 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1152 (__lll_mutex_lock_wait): Rename to ...
1153 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
1154 %ecx, %ecx is now private argument. Don't compile in for libc.so.
1155 (__lll_mutex_timedlock_wait): Rename to ...
1156 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
1157 contains private argument. Don't compile in for libc.so.
1158 (__lll_mutex_unlock_wake): Rename to ...
1159 (__lll_unlock_wake): ... this. %ecx contains private argument.
1160 Don't compile in for libc.so.
1161 (__lll_timedwait_tid): Use __NR_gettimeofday.
1162 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
1163 kernel-features.h and lowlevellock.h.
1164 (LOAD_FUTEX_WAIT): Define.
1165 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
1166 define.
1167 (__lll_robust_mutex_lock_wait): Rename to ...
1168 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
1169 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
1170 macro.
1171 (__lll_robust_mutex_timedlock_wait): Rename to ...
1172 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
1173 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
1174 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
1175 lowlevellock.h.
1176 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1177 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1178 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
1179 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
1180 to __lll_lock_wait in %edx.
1181 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
1182 Include lowlevellock.h and pthread-errnos.h.
1183 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1184 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1185 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
1186 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1187 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1188 __lll_unlock_wake.
1189 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
1190 Include lowlevellock.h and pthread-errnos.h.
1191 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1192 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1193 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
1194 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1195 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1196 __lll_unlock_wake.
1197 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1198 Include lowlevellock.h.
1199 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1200 Don't define.
1201 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
1202 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
1203 pass LLL_SHARED in %ecx to both __lll_lock_wait and
1204 __lll_unlock_wake. Use __NR_gettimeofday.
1205 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1206 Include lowlevellock.h.
1207 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1208 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
1209 to __lll_*, pass cond_lock address in %edx rather than %ecx to
1210 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
1211 and __lll_unlock_wake.
1212 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1213 Include lowlevellock.h.
1214 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1215 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
1216 MUTEX(%ebx) address in %edx rather than %ecx to
1217 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1218 and __lll_unlock_wake. Move return value from %ecx to %edx
1219 register.
1220 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1221 Include lowlevellock.h.
1222 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1223 Don't define.
1224 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1225 MUTEX(%ebp) address in %edx rather than %ecx to
1226 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1227 and __lll_unlock_wake. Move return value from %ecx to %edx
1228 register. Use __NR_gettimeofday.
1229 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1230 Include lowlevellock.h.
1231 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
1232 Don't define.
1233 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1234 MUTEX(%ebp) address in %edx rather than %ecx to
1235 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
1236 and __lll_unlock_wake. Move return value from %ecx to %edx
1237 register. Use __NR_gettimeofday.
1238 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1239 Include lowlevellock.h.
1240 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1241 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
1242 MUTEX(%edi) address in %edx rather than %ecx to
1243 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
1244 and __lll_unlock_wake.
1245 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1246 Include lowlevellock.h.
1247 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1248 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
1249 MUTEX(%ebx) address in %edx rather than %ecx to
1250 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
1251 and __lll_unlock_wake. Move return value from %ecx to %edx
1252 register.
1253 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
1254 lowlevellock.h.
1255 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1256 define.
1257 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
1258 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1259 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
1260 lowlevellock.h.
1261 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
1262 (sem_timedwait): Use __NR_gettimeofday.
1263 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
1264 lowlevellock.h.
1265 (LOCK): Don't define.
1266 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
1267 lowlevellock.h.
1268 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1269 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
1270 are waiters.
1271 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
1272 2007-05-2{3,9} changes.
1273 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
1274 kernel-features.h and lowlevellock.h.
1275 (LOAD_PRIVATE_FUTEX_WAIT): Define.
1276 (LOAD_FUTEX_WAIT): Rewritten.
1277 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1278 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
1279 (__lll_mutex_lock_wait): Rename to ...
1280 (__lll_lock_wait): ... this. %esi is now private argument.
1281 Don't compile in for libc.so.
1282 (__lll_mutex_timedlock_wait): Rename to ...
1283 (__lll_timedlock_wait): ... this. %esi contains private argument.
1284 Don't compile in for libc.so.
1285 (__lll_mutex_unlock_wake): Rename to ...
1286 (__lll_unlock_wake): ... this. %esi contains private argument.
1287 Don't compile in for libc.so.
1288 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
1289 kernel-features.h and lowlevellock.h.
1290 (LOAD_FUTEX_WAIT): Define.
1291 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
1292 (__lll_robust_mutex_lock_wait): Rename to ...
1293 (__lll_robust_lock_wait): ... this. %esi argument contains private.
1294 Use LOAD_FUTEX_WAIT macro.
1295 (__lll_robust_mutex_timedlock_wait): Rename to ...
1296 (__lll_robust_timedlock_wait): ... this. %esi argument contains
1297 private, use LOAD_FUTEX_WAIT macro.
1298 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
1299 lowlevellock.h.
1300 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1301 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
1302 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
1303 __lll_lock_wait and __lll_unlock_wake.
1304 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
1305 Include lowlevellock.h and pthread-errnos.h.
1306 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
1307 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
1308 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
1309 pass LLL_SHARED in %esi to both __lll_lock_wait and
1310 __lll_unlock_wake.
1311 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
1312 Include lowlevellock.h and pthread-errnos.h.
1313 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
1314 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
1315 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
1316 pass LLL_SHARED in %esi to both __lll_lock_wait and
1317 __lll_unlock_wake.
1318 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
1319 Include lowlevellock.h.
1320 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1321 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
1322 pass LLL_SHARED in %esi to both __lll_lock_wait and
1323 __lll_unlock_wake.
1324 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
1325 Include lowlevellock.h.
1326 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
1327 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
1328 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
1329 and __lll_unlock_wake.
1330 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1331 Include lowlevellock.h.
1332 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1333 Don't define.
1334 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
1335 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1336 and __lll_unlock_wake.
1337 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1338 Include lowlevellock.h.
1339 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1340 Don't define.
1341 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1342 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1343 and __lll_unlock_wake.
1344 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1345 Include lowlevellock.h.
1346 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1347 Don't define.
1348 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1349 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1350 and __lll_unlock_wake.
1351 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1352 Include lowlevellock.h.
1353 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1354 Don't define.
1355 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
1356 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
1357 and __lll_unlock_wake.
1358 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1359 Include lowlevellock.h.
1360 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
1361 Don't define.
1362 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
1363 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
1364 and __lll_unlock_wake.
1365 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
1366 lowlevellock.h.
1367 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
1368 define.
1369 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
1370 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
1371 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
1372 lowlevellock.h.
1373 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1374 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
1375 lowlevellock.h.
1376 (LOCK): Don't define.
1377 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
1378 lowlevellock.h.
1379 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
1380 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
1381 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
1382 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
1383 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
1384 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
1385 (__lll_lock_wait_private): New function.
1386 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
1387 it to lll_futex_*wait. Don't compile in for libc.so.
1388 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
1389 Remove.
1390 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
1391 (struct sparc_pthread_barrier): Remove.
1392 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
1393 struct sparc_pthread_barrier. Pass
1394 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
1395 and lll_futex_wait macros.
1396 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
1397 Remove.
1398 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
1399 Include sparc pthread_barrier_wait.c instead of generic one.
1400
6f59d56e
UD
14012007-07-30 Jakub Jelinek <jakub@redhat.com>
1402
1475e201
UD
1403 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
1404
6f59d56e
UD
1405 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
1406 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
1407 %ecx.
1408 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
1409 (pthread_rwlock_timedwrlock): Likewise.
1410 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
1411 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
1412
558f0300
JJ
14132007-07-31 Jakub Jelinek <jakub@redhat.com>
1414
1415 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
1416
cedb4109
UD
14172007-07-26 Jakub Jelinek <jakub@redhat.com>
1418
1419 * tst-locale2.c (useless): Add return statement.
1420
085a4412
UD
14212007-07-24 Jakub Jelinek <jakub@redhat.com>
1422
1423 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
1424 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
1425 * pthread_create.c (start_thread): Likewise.
1426 * init.c (sighandler_setxid): Likewise.
1427 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1428 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1429 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1430 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1431 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1432 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1433 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1434 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
1435 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
1436 Likewise.
1437 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
1438 Likewise.
1439 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
1440 Likewise.
1441 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
1442 __rtld_notify): Likewise.
1443 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
1444 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
1445 __pthread_once): Likewise.
1446 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
1447 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1448 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1449 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1450 (lll_futex_wait): Add private argument, define as wrapper around
1451 lll_futex_timed_wait.
1452 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1453 use __lll_private_flag macro.
1454 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1455 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1456 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
1457 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1458 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1459 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1460 (lll_futex_wait): Add private argument, define as wrapper around
1461 lll_futex_timed_wait.
1462 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1463 use __lll_private_flag macro.
1464 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
1465 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
1466 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
1467 Define.
1468 (lll_futex_timed_wait, lll_futex_wake): Use it.
1469 (lll_private_futex_wait, lll_private_futex_timed_wait,
1470 lll_private_futex_wake): Removed.
1471 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
1472 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1473 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1474 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1475 (lll_futex_wait): Add private argument, define as wrapper around
1476 lll_futex_timed_wait.
1477 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1478 use __lll_private_flag macro.
1479 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1480 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1481 to lll_futex_*.
1482 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1483 (lll_private_futex_wait, lll_private_futex_timed_wait,
1484 lll_private_futex_wake): Removed.
1485 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
1486 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
1487 (lll_private_futex_wait, lll_private_futex_timed_wait,
1488 lll_private_futex_wake): Removed.
1489 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
1490 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
1491 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
1492 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
1493 (lll_futex_wait): Add private argument, define as wrapper around
1494 lll_futex_timed_wait.
1495 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
1496 use __lll_private_flag macro.
1497 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
1498 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
1499 to lll_futex_*.
1500 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
1501 Define.
1502 (lll_futex_timed_wait, lll_futex_wake): Use it.
1503 (lll_private_futex_wait, lll_private_futex_timed_wait,
1504 lll_private_futex_wake): Removed.
1505
ef0af159
JJ
15062007-07-27 Jakub Jelinek <jakub@redhat.com>
1507
1508 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
1509 of the structure for sparc32.
1510
15112007-07-26 Aurelien Jarno <aurelien@aurel32.net>
1512
1513 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
1514
eb4f5909
UD
15152007-07-23 Ulrich Drepper <drepper@redhat.com>
1516
1517 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1518 code used when private futexes are assumed.
1519 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1520 Likewise.
1521
b5f13526
UD
15222007-07-23 Jakub Jelinek <jakub@redhat.com>
1523
1524 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1525 (__lll_private_flag): Define.
1526 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
1527 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
1528 __lll_private_flag.
1529 (lll_private_futex_wait, lll_private_futex_timedwait,
1530 lll_private_futex_wake): Define as wrapper around non-_private
1531 macros.
1532 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1533 (__lll_private_flag): Define.
1534 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
1535 (lll_private_futex_wait, lll_private_futex_timedwait,
1536 lll_private_futex_wake): Define as wrapper around non-_private
1537 macros.
1538
eb7721f2
UD
15392007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
1540
1541 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
1542 parameter to lll_futex_wait call.
1543 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1544
1545 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
1546 Replace lll_futex_wait with lll_private_futex_wait.
1547 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
1548 Add LLL_SHARED parameter to lll_futex_wake().
1549
1550 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
1551 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
1552 lll_private_futex_wake.
1553 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
1554 bit from private parm before syscall.
1555 (lll_futex_timed_wait): Likewise.
1556 (lll_futex_wake): Likewise.
1557 (lll_futex_wake_unlock): Likewise.
1558 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
1559 (lll_robust_mutex_unlock): Likewise.
1560 (lll_mutex_unlock_force): Likewise.
1561 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
1562
defc45f2
UD
15632007-07-23 Ulrich Drepper <drepper@redhat.com>
1564
1565 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
1566 compilation when unconditionally using private futexes.
1567 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1568 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1569 Likewise.
1570 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1571 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1572
087722b8
UD
15732007-07-17 Jakub Jelinek <jakub@redhat.com>
1574
1575 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
1576 Define.
1577
765c6b0c
UD
15782007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1579
1580 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
1581 kernel-features.h.
1582
7d9d8bd1
RM
15832007-05-16 Roland McGrath <roland@redhat.com>
1584
1585 * init.c (__nptl_initial_report_events): New variable.
1586 (__pthread_initialize_minimal_internal): Initialize pd->report_events
1587 to that.
1588
a4915df2
UD
15892007-06-22 Jakub Jelinek <jakub@redhat.com>
1590
1591 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
1592 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
1593
e4eb675d
UD
15942007-06-19 Ulrich Drepper <drepper@redhat.com>
1595
1596 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
1597 implementation.
1598
ae1ad3ae
UD
15992007-06-18 Ulrich Drepper <drepper@redhat.com>
1600
1601 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
1602 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
1603 * pthread_mutex_timedlock.c: Likewise.
1604 * pthread_mutex_trylock.c: Likewise.
1605 * pthread_mutex_unlock.c: Likewise.
1606
89074592
UD
16072007-06-17 Andreas Schwab <schwab@suse.de>
1608
1609 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
1610 sections.
1611
d4201cc4
UD
16122007-06-17 Ulrich Drepper <drepper@redhat.com>
1613
1614 * allocatestack.c (allocate_stack): Make code compile if
1615 __ASSUME_PRIVATE_FUTEX is set.
1616
339dbf0e
UD
16172007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1618
1619 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
1620 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
1621 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
1622 (__pthread_rwlock_wrlock): Likewise.
1623 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
1624 (pthread_rwlock_timedrdlock): Likewise.
1625 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
1626 (pthread_rwlock_timedwrlock): Likewise.
1627 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
1628 (__pthread_rwlock_unlock): Likewise.
1629
16302007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1631
1632 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
1633 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
1634 Split __flags into __flags, __shared, __pad1 and __pad2.
1635 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
1636 futexes if they are available.
1637 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
1638 in libc-lowlevellock.S allow using private futexes.
1639 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
1640 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
1641 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
1642 to call lll_futex_timed_wait. Add lll_private_futex_wait,
1643 lll_private_futex_timed_wait and lll_private_futex_wake.
1644 (lll_robust_mutex_unlock): Fix typo.
1645 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
1646 field in futex command setup.
1647 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
1648 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
1649 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
1650 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
1651 if they are available. Remove clear_once_control.
1652 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
1653 futexes if they are available.
1654 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
1655 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
1656 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1657 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1658 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
1659 Wake only when there are waiters.
1660 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
1661 support. Indicate that there are waiters. Remove unnecessary
1662 extra cancellation test.
1663 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
1664 left-over duplication of __sem_wait_cleanup.
1665
26f56c1c
UD
16662007-06-07 Ulrich Drepper <drepper@redhat.com>
1667
1668 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
1669 parameter to lll_futex_wait, lll_futex_timed_wait, and
1670 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
1671 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
1672 lll_private_futex_wake.
1673 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1674 * allocatestack.c: Adjust use of lll_futex_* macros.
1675 * init.c: Likewise.
1676 * lowlevellock.h: Likewise.
1677 * pthread_barrier_wait.c: Likewise.
1678 * pthread_cond_broadcast.c: Likewise.
1679 * pthread_cond_destroy.c: Likewise.
1680 * pthread_cond_signal.c: Likewise.
1681 * pthread_cond_timedwait.c: Likewise.
1682 * pthread_cond_wait.c: Likewise.
1683 * pthread_create.c: Likewise.
1684 * pthread_mutex_lock.c: Likewise.
1685 * pthread_mutex_setprioceiling.c: Likewise.
1686 * pthread_mutex_timedlock.c: Likewise.
1687 * pthread_mutex_unlock.c: Likewise.
1688 * pthread_rwlock_timedrdlock.c: Likewise.
1689 * pthread_rwlock_timedwrlock.c: Likewise.
1690 * pthread_rwlock_unlock.c: Likewise.
1691 * sysdeps/alpha/tls.h: Likewise.
1692 * sysdeps/i386/tls.h: Likewise.
1693 * sysdeps/ia64/tls.h: Likewise.
1694 * sysdeps/powerpc/tls.h: Likewise.
1695 * sysdeps/pthread/aio_misc.h: Likewise.
1696 * sysdeps/pthread/gai_misc.h: Likewise.
1697 * sysdeps/s390/tls.h: Likewise.
1698 * sysdeps/sh/tls.h: Likewise.
1699 * sysdeps/sparc/tls.h: Likewise.
1700 * sysdeps/unix/sysv/linux/fork.c: Likewise.
1701 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
1702 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
1703 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
1704 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
1705 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1706 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
1707 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
1708 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1709 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
1710 Likewise.
1711 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
1712 * sysdeps/x86_64/tls.h: Likewise.
1713
ee5d5755
UD
17142007-05-29 Ulrich Drepper <drepper@redhat.com>
1715
b03b0c29
UD
1716 * pthread_getattr_np.c: No need to install a cancellation handler,
1717 this is no cancellation point.
1718 * pthread_getschedparam.c: Likewise.
1719 * pthread_setschedparam.c: Likewise.
1720 * pthread_setschedprio.c: Likewise.
1721 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
1722 lll_unlock_wake_cb.
1723 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
1724 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1725 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1726 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
1727 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
1728 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
1729 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
1730 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
1731 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
1732 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
1733 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1734 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 1735
0154658d
UD
1736 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
1737 whether there are more than one thread makes no sense here since
1738 we only call the slow path if the locks are taken.
1739 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
1740
ee5d5755
UD
1741 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
1742 COND_NWAITERS_SHIFT.
1743 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
1744 COND_CLOCK_BITS.
1745 * pthread_cond_init.c: Likewise.
1746 * pthread_cond_timedwait.c: Likewise.
1747 * pthread_cond_wait.c: Likewise.
1748 * pthread_condattr_getclock.c: Likewise.
1749 * pthread_condattr_setclock.c: Likewise.
1750 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
1751 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1752 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1753 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1754 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1755
991fa82b
UD
17562007-05-28 Jakub Jelinek <jakub@redhat.com>
1757
40f57573
UD
1758 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
1759 unistd.h.
1760
991fa82b
UD
1761 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
1762 insn suffix.
1763 (THREAD_GSCOPE_GET_FLAG): Remove.
1764 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
1765 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
1766 changes.
1767 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
1768 (THREAD_GSCOPE_GET_FLAG): Remove.
1769 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
1770 instead of THREAD_GSCOPE_GET_FLAG.
1771 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
1772 it.
1773 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1774 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1775 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1776 THREAD_GSCOPE_WAIT): Define.
1777 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1778 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1779 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1780 THREAD_GSCOPE_WAIT): Define.
1781 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1782 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1783 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1784 THREAD_GSCOPE_WAIT): Define.
1785 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1786 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1787 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1788 THREAD_GSCOPE_WAIT): Define.
1789
17902007-05-24 Richard Henderson <rth@redhat.com>
1791
1792 * descr.h (struct pthread): Add header.gscope_flag.
1793 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
1794 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
1795 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
1796 THREAD_GSCOPE_WAIT): Define.
1797
e59660bc
UD
17982007-05-27 Ulrich Drepper <drepper@redhat.com>
1799
1800 * init.c: Make it compile with older kernel headers.
1801
1802 * tst-initializers1.c: Show through exit code which test failed.
1803
1804 * pthread_rwlock_init.c: Also initialize __shared field.
1805 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
1806 element in rwlock structure into four byte elements. One of them is
1807 the new __shared element.
1808 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
1809 Likewise.
cd0dbd89 1810 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
1811 __shared, adjust names of other padding elements.
1812 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1813 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
1814 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
1815 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
1816 FUTEX_PRIVATE_FLAG.
1817 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
1818 futex to use private operations if possible.
1819 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1820 Likewise.
1821 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1822 Likewise.
1823 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
1824 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
1825 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1826 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
1827 Likewise.
1828 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
1829 Likewise.
1830 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
1831 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 1832
d8ff3792
UD
18332007-05-26 Ulrich Drepper <drepper@redhat.com>
1834
546346b6
UD
1835 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
1836 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
1837 * pthread_rwlock_timedrdlock.c: Likewise.
1838 * pthread_rwlock_tryrdlock.c: Likewise.
1839
a2dd3360
UD
1840 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
1841 optimization.
1842
6df7ffad
UD
1843 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
1844 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
1845 duplication of __sem_wait_cleanup.
1846
1847 * allocatestack.c: Revert last change.
1848 * init.c: Likewise.
1849 * sysdeps/i386/tls.h: Likewise.
1850 * sysdeps/x86_64/tls.h: Likewise.
1851 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
1852 header structure.
1853 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
1854
d8ff3792
UD
1855 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
1856 Add private field.
1857 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
1858 * pthread_barrier_init.c: Set private flag if pshared and private
1859 futexes are supported.
1860 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
1861 private field in futex command setup.
1862 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
1863
3d2dd6ca
UD
18642007-05-25 Ulrich Drepper <drepper@redhat.com>
1865
42e6c665
UD
1866 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
1867 support.
1868 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1869 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1870 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1871 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1872 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1873
3d2dd6ca
UD
1874 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
1875 * sem_init.c (__new_sem_init): Rewrite to initialize all three
1876 fields in the structure.
1877 (__old_sem_init): New function.
1878 * sem_open.c: Initialize all fields of the structure.
1879 * sem_getvalue.c: Adjust for renamed element.
1880 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
1881 (gen-as-const-headers): Add structsem.sym.
1882 * sysdeps/unix/sysv/linux/structsem.sym: New file.
1883 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
1884 struct new_sem. Add struct old_sem.
1885 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
1886 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1887 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1888 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
1889 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1890 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1891 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
1892 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1893 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1894 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
1895 * tst-sem10.c: New file.
1896 * tst-sem11.c: New file.
1897 * tst-sem12.c: New file.
1898 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
1899 of struct sem.
1900
20a4d722
JJ
19012007-05-25 Ulrich Drepper <drepper@redhat.com>
1902 Jakub Jelinek <jakub@redhat.com>
1903
1904 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1905 Move __pthread_enable_asynccancel right before futex syscall.
1906 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1907 Likewise.
1908
19092007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
1910
1911 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
1912 THREAD_COPY_PRIVATE_FUTEX): Define.
1913 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
1914 THREAD_COPY_PRIVATE_FUTEX): Define.
1915 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
1916 * init.c (__pthread_initialize_minimal_internal): Use
1917 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
1918
1919 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
1920 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
1921 THREAD_GSCOPE_FLAG_WAIT): Define.
1922 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
1923 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
1924 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
1925 PTR_DEMANGLE.
1926 (THREAD_GSCOPE_GET_FLAG): Define.
1927 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
1928 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
1929 instead of ->header.gscope_flag directly.
1930
5a8075b1
UD
19312007-05-23 Ulrich Drepper <drepper@redhat.com>
1932
1933 * init.c (__pthread_initialize_minimal_internal): Check whether
1934 private futexes are available.
1935 * allocatestack.c (allocate_stack): Copy private_futex field from
1936 current thread into the new stack.
1937 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
1938 futexes if they are available.
1939 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
1940 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
1941 in libc-lowlevellock.S allow using private futexes.
1942 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1943 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
1944 FUTEX_PRIVATE_FLAG.
1945 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
1946 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
1947 if they are available.
1948 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1949 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
1950 * sysdeps/i386/tcb-offsets.sym: Likewise.
1951 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
1952 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
1953
6d59823c
UD
19542007-05-21 Ulrich Drepper <drepper@redhat.com>
1955
1956 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1957 Remove ptr_wait_lookup_done again.
1958 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
1959 (__pthread_initialize_minimal_internal): Initialize
1960 _dl_wait_lookup_done pointer in _rtld_global directly.
1961 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1962 Remove code to code _dl_wait_lookup_done.
1963 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
1964 encrypted for now.
1965
2c9718f3
JJ
19662007-05-21 Jakub Jelinek <jakub@redhat.com>
1967
1968 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
1969 pthread_mutex_init failed with ENOTSUP.
1970
df94b641
UD
19712007-05-19 Ulrich Drepper <drepper@redhat.com>
1972
1973 * allocatestack.c (__wait_lookup_done): New function.
1974 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
1975 Add ptr_wait_lookup_done.
1976 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
1977 * pthreadP.h: Declare __wait_lookup_done.
1978 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
1979 Define macros to implement reference handling of global scope.
1980 * sysdeps/x86_64/tls.h: Likewise.
1981 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
1982 Initialize GL(dl_wait_lookup_done).
1983
bec51a30
UD
19842007-05-17 Ulrich Drepper <drepper@redhat.com>
1985
113ad5fc
UD
1986 [BZ #4512]
1987 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
1988 is detected.
1989 * pthread_mutex_timedlock.c: Likewise.
1990 * pthread_mutex_trylock.c: Likewise.
1991 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
1992
1993 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
1994 * tst-robust9.c: New file.
1995 * tst-robustpi9.c: New file.
1996
bec51a30
UD
1997 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
1998 unnecessary extra cancellation test.
1999
83d87915
UD
20002007-05-14 Ulrich Drepper <drepper@redhat.com>
2001
83d87915
UD
2002 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
2003 extra cancellation test.
2004 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
2005
3771196d
UD
20062007-05-10 Ulrich Drepper <drepper@redhat.com>
2007
341c566f
UD
2008 * descr.h (struct pthread): Rearrange members to fill hole in
2009 64-bit layout.
2010
3771196d
UD
2011 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2012 (__pthread_setaffinity_new): If syscall was successful and
2013 RESET_VGETCPU_CACHE is defined, use it before returning.
2014 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
2015
7d29b542
JJ
20162007-05-10 Jakub Jelinek <jakub@redhat.com>
2017
2018 [BZ #4455]
2019 * tst-align2.c: Include stackinfo.h.
2020 * tst-getpid1.c: Likewise.
2021
16105fe0
UD
20222007-05-02 Carlos O'Donell <carlos@systemhalted.org>
2023
29c113f0
UD
2024 [BZ #4455]
2025 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
2026 * tst-getpid1.c (do_test): Likewise.
2027
16105fe0
UD
2028 [BZ #4456]
2029 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
2030 (allocate_stack): Likewise.
2031
6780bc44
UD
20322007-05-07 Ulrich Drepper <drepper@redhat.com>
2033
2034 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2035 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
2036 (__lll_robust_timedlock_wait): Likewise.
2037 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
2038
aa75f64c
UD
20392007-05-06 Mike Frysinger <vapier@gentoo.org>
2040
15eca720 2041 [BZ #4465]
aa75f64c
UD
2042 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
2043 * tst-cancel4.c (tf_fdatasync): New test.
2044
f672076e
UD
20452007-04-27 Ulrich Drepper <drepper@redhat.com>
2046
1bb5f5a1
UD
2047 [BZ #4392]
2048 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
2049 check mutexes like normal mutexes.
2050
f672076e
UD
2051 [BZ #4306]
2052 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
2053 Initialize the whole sigevent structure to appease valgrind.
2054
bce20b9a
UD
20552007-04-25 Ulrich Drepper <drepper@redhat.com>
2056
2057 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
2058 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
2059
0c786eac
UD
20602007-04-06 Ulrich Drepper <drepper@redhat.com>
2061
2062 * tst-locale1.c: Avoid warnings.
2063 * tst-locale2.c: Likewise.
2064
e1f0c5bc
UD
20652007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
2066
2067 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2068 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
2069
965cba04
UD
20702007-03-16 Jakub Jelinek <jakub@redhat.com>
2071
2072 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
2073 __extern_always_inline where appropriate.
2074 * sysdeps/pthread/pthread.h: Likewise.
2075
a5ea509b
RH
20762007-03-13 Richard Henderson <rth@redhat.com>
2077
2078 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
2079 separate cfi regions for the two subsections.
2080
00a1430e
UD
20812007-02-25 Ulrich Drepper <drepper@redhat.com>
2082
2083 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
2084 new thread, don't just decrement it.
2085 Patch by Suzuki K P <suzuki@in.ibm.com>.
2086
63a2f305
UD
20872007-02-21 Ulrich Drepper <drepper@redhat.com>
2088
2089 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
2090 PTHFCT_CALL definition.
2091
2484468b
UD
20922007-02-18 Ulrich Drepper <drepper@redhat.com>
2093
2094 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
2095 available, don't use it.
2096
5ed61e0f
UD
20972007-02-09 Jakub Jelinek <jakub@redhat.com>
2098
2099 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2100 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
2101 call into the kernel to delay.
2102
10ccaa5c
UD
21032007-01-18 Ulrich Drepper <drepper@redhat.com>
2104
f8a17855
UD
2105 * tst-initializers1.c: We want to test the initializers as seen
2106 outside of libc, so undefined _LIBC.
2107
10ccaa5c
UD
2108 * pthread_join.c (cleanup): Avoid warning.
2109
ea1533e0
UD
21102007-01-17 Ulrich Drepper <drepper@redhat.com>
2111
1476bce6
UD
2112 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
2113 (__lll_timedwait_tid): Add unwind info.
2114
ea1533e0
UD
2115 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
2116 function table, mangle the pointers.
2117 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
2118 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
2119 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
2120 demangle pointers before use.
2121 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
2122 demangle pointer.
2123 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
2124 * sysdeps/pthread/setxid.h: Likewise.
2125
8980796b
UD
21262007-01-12 Ulrich Drepper <drepper@redhat.com>
2127
2128 * tst-rwlock7.c: Show some more information in case of correct
2129 behavior.
2130
a1d87b5d
UD
21312007-01-11 Ulrich Drepper <drepper@redhat.com>
2132
2133 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2134 (lll_futex_timed_wait): Undo part of last change, don't negate
2135 return value.
2136
11bf311e 21372007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 2138
11bf311e
UD
2139 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
2140 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 2141
11bf311e 21422006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 2143
11bf311e 2144 * shlib-versions: Fix sparc64 linux target specification.
a744da90 2145
11bf311e 21462007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 2147
11bf311e
UD
2148 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
2149 Adjust include path for pthread_barrier_wait.c move.
fc242bef 2150
11bf311e 21512006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 2152
11bf311e
UD
2153 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
2154 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 2155
11bf311e
UD
21562006-12-06 Jakub Jelinek <jakub@redhat.com>
2157
2158 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
2159 6 argument cancellable syscalls.
2160 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
2161 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
2162 6 argument cancellable syscalls.
2163 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 2164
66f17705
UD
21652006-12-09 Ulrich Drepper <drepper@redhat.com>
2166
2167 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
2168 (__rtld_mrlock_initialize): Add missing closing parenthesis.
2169
11bf311e
UD
21702006-10-30 Jakub Jelinek <jakub@redhat.com>
2171
2172 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
2173 __sync_lock_release instead of __sync_lock_release_si.
2174
536e40e2
UD
21752006-10-29 Jakub Jelinek <jakub@redhat.com>
2176
2177 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
2178 Define.
2179 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
2180 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
2181 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
2182 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
2183 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
2184 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
2185 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
2186 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
2187 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2188 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2189 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
2190
11bf311e
UD
21912006-10-27 Ulrich Drepper <drepper@redhat.com>
2192
2193 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
2194 * pthread_barrier_wait.c: ...here.
2195 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
2196 * pthread_cond_broadcast.c: ...here.
2197 * sysdeps/pthread/pthread_cond_signal.c: Move to...
2198 * pthread_cond_signal.c: ...here.
2199 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
2200 * pthread_cond_timedwait.c: ...here.
2201 * sysdeps/pthread/pthread_cond_wait.c: Move to...
2202 * pthread_cond_wait.c: ...here.
2203 * sysdeps/pthread/pthread_once.c: Move to...
2204 * pthread_once.c: ...here.
2205 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
2206 * pthread_rwlock_rdlock.c: ...here.
2207 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
2208 * pthread_rwlock_timedrdlock.c: ...here.
2209 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
2210 * pthread_rwlock_timedwrlock.c: ...here.
2211 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
2212 * pthread_rwlock_unlock.c: ...here.
2213 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
2214 * pthread_rwlock_wrlock.c: ...here.
2215 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
2216 * pthread_spin_destroy.c: ...here.
2217 * sysdeps/pthread/pthread_spin_init.c: Move to...
2218 * pthread_spin_init.c: ...here.
2219 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
2220 * pthread_spin_unlock.c: ...here.
2221 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
2222 * pthread_getcpuclockid.c: ...here.
2223
2224 * init.c: USE_TLS support is now always enabled.
2225 * tst-tls5.h: Likewise.
2226 * sysdeps/alpha/tls.h: Likewise.
2227 * sysdeps/i386/tls.h: Likewise.
2228 * sysdeps/ia64/tls.h: Likewise.
2229 * sysdeps/powerpc/tls.h: Likewise.
2230 * sysdeps/s390/tls.h: Likewise.
2231 * sysdeps/sh/tls.h: Likewise.
2232 * sysdeps/sparc/tls.h: Likewise.
2233 * sysdeps/x86_64/tls.h: Likewise.
2234
006a8f6f 22352006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
2236
2237 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2238 __rtld_mrlock_change): Update oldval if atomic compare and exchange
2239 failed.
2240
2241 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
2242 Define to THREAD_SELF->header.multiple_threads.
2243 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
2244 Likewise.
2245 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
2246 Likewise.
2247 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
2248 (SINGLE_THREAD_P): Likewise.
2249 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
2250 (SINGLE_THREAD_P): Likewise.
2251 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2252 (SINGLE_THREAD_P): Likewise.
2253 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
2254 (SINGLE_THREAD_P): Likewise.
2255 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
2256 Likewise.
2257 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
2258 (SINGLE_THREAD_P): Likewise.
2259 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
2260 (SINGLE_THREAD_P): Likewise.
2261 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
2262 Likewise.
2263
11bf311e 22642006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 2265
11bf311e
UD
2266 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
2267 by default rather than 2_3_3.
32c075e1 2268
11bf311e 22692006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 2270
11bf311e
UD
2271 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
2272 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
2273 atomic_* instead of catomic_* macros.
2274
22752006-10-12 Ulrich Drepper <drepper@redhat.com>
2276
2277 [BZ #3285]
2278 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
2279 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2280 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2281 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2282 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2283 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
2284 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
2285 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
2286 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
2287 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
2288 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
2289 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
2290 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
2291
22922006-10-11 Ulrich Drepper <drepper@redhat.com>
2293
2294 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
2295 cancelable syscalls with six parameters.
2296
2297 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
2298 operations instead of atomic_*.
32c075e1 2299
11bf311e 23002006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 2301
11bf311e 2302 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 2303
11bf311e 23042006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 2305
11bf311e
UD
2306 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
2307 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
2308 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
2309 New file.
2310 * pthread_attr_setstack.c: Allow overwriting the version number of the
2311 new symbol.
2312 * pthread_attr_setstacksize.c: Likewise.
2313 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
2314 it.
2315 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
2316 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 2317
457b559e
UD
23182006-09-24 Ulrich Drepper <drepper@redhat.com>
2319
2320 [BZ #3251]
2321 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
2322 Patch by Petr Baudis.
2323
0466106e
UD
23242006-09-18 Jakub Jelinek <jakub@redhat.com>
2325
2326 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
2327
2328 * tst-cancel2.c (tf): Loop as long as something was written.
2329
bd6d3b7d
UD
23302006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2331
2332 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
2333 mutexes wake all mutexes.
2334 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
2335 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2336 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2337
30aa5785
UD
23382006-09-12 Ulrich Drepper <drepper@redhat.com>
2339
2340 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
2341 to guarantee the thread is always canceled.
2342
2b6a801e
UD
23432006-09-08 Jakub Jelinek <jakub@redhat.com>
2344
2345 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
2346 Include stdlib.h.
2347 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
2348 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
2349 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2350 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2351 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 2352
346e6ad4
UD
23532006-09-08 Ulrich Drepper <drepper@redhat.com>
2354
2355 [BZ #3123]
2356 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
2357 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
2358 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2359 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2360 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
2361 * Makefile (tests): Add tst-cond22.
2362 * tst-cond22.c: New file.
2363
b051fc44
UD
23642006-09-05 Ulrich Drepper <drepper@redhat.com>
2365
2366 [BZ #3124]
2367 * descr.h (struct pthread): Add parent_cancelhandling.
2368 * sysdeps/pthread/createthread.c (create_thread): Pass parent
2369 cancelhandling value to child.
2370 * pthread_create.c (start_thread): If parent thread was canceled
2371 reset the SIGCANCEL mask.
2372 * Makefile (tests): Add tst-cancel25.
2373 * tst-cancel25.c: New file.
2374
d052233c
UD
23752006-09-05 Jakub Jelinek <jakub@redhat.com>
2376 Ulrich Drepper <drepper@redhat.com>
2377
2378 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
2379 counterp if it is already zero.
2380 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
2381
cd248c3f
UD
23822006-03-04 Jakub Jelinek <jakub@redhat.com>
2383 Roland McGrath <roland@redhat.com>
2384
2385 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2386 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2387 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
2388 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2389 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2390 lll_robust_mutex_timedlock, lll_mutex_unlock,
2391 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2392 Add _L_*_ symbols around the subsection.
2393 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
2394 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
2395
23962006-03-03 Jakub Jelinek <jakub@redhat.com>
2397 Roland McGrath <roland@redhat.com>
2398
2399 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2400 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
2401 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
2402 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
2403 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
2404 lll_robust_mutex_timedlock, lll_mutex_unlock,
2405 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
2406 Add _L_*_ symbols around the subsection.
2407 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
2408 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
2409
b80770b2
UD
24102006-08-31 Ulrich Drepper <drepper@redhat.com>
2411
2412 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
2413 change because it can disturb too much existing code. If real hard
2414 reader preference is needed we'll introduce another type.
2415 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2416 (pthread_rwlock_timedwrlock): Likewise.
2417 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2418 Likewise.
2419
bee2df0b
UD
24202006-08-30 Ulrich Drepper <drepper@redhat.com>
2421
2422 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
2423 reader preference.
2424 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
2425 (pthread_rwlock_timedwrlock): Likewise.
2426 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
2427 Likewise.
2428
d678ebc1
UD
24292006-08-25 Jakub Jelinek <jakub@redhat.com>
2430
2431 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
2432 Only define ifdef SHARED.
2433
ba408f84
UD
24342006-08-23 Ulrich Drepper <drepper@redhat.com>
2435
2436 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
2437 (free_stacks): ...here.
2438 (__free_stack_cache): New function.
2439 * pthreadP.h: Declare __free_stack_cache.
2440 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
2441 ptr_freeres.
2442 * init.c (pthread_functions): Initialize ptr_freeres.
2443 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
2444 New freeres function.
2445
376e973a
UD
24462006-07-30 Joseph S. Myers <joseph@codesourcery.com>
2447
2448 [BZ #3018]
2449 * Makefile (extra-objs): Add modules to extra-test-objs instead.
2450
2b34af01
UD
24512006-08-20 Ulrich Drepper <drepper@redhat.com>
2452
2453 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2454 _XOPEN_REALTIME_THREADS.
2455
89c85f87
UD
24562006-08-15 Jakub Jelinek <jakub@redhat.com>
2457
2458 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
2459 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
2460 HAVE_CLOCK_GETTIME_VSYSCALL.
2461 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
2462
f17efcb4
UD
24632006-08-14 Jakub Jelinek <jakub@redhat.com>
2464
2465 * sysdeps/unix/sysv/linux/bits/posix_opt.h
2466 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
2467 * descr.h (struct priority_protection_data): New type.
2468 (struct pthread): Add tpp field.
2469 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
2470 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
2471 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
2472 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
2473 TPP mutexes.
2474 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
2475 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
2476 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
2477 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
2478 * tpp.c: New file.
2479 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
2480 boosted by TPP.
2481 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
2482 * pthread_mutexattr_getprioceiling.c
2483 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
2484 in the SCHED_FIFO priority range.
2485 * pthread_mutexattr_setprioceiling.c
2486 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
2487 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
2488 if mutex is not TPP. Ceiling is now in __data.__lock.
2489 * pthread_mutex_setprioceiling.c: Include stdbool.h.
2490 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
2491 is now in __data.__lock. Add locking.
2492 * pthread_create.c (__free_tcb): Free pd->tpp structure.
2493 * Makefile (libpthread-routines): Add tpp.
2494 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
2495 * tst-tpp.h: New file.
2496 * tst-mutexpp1.c: New file.
2497 * tst-mutexpp6.c: New file.
2498 * tst-mutexpp10.c: New file.
2499 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
2500 * tst-mutex6.c (TEST_FUNCTION): Likewise.
2501
22bb134c
UD
25022006-08-12 Ulrich Drepper <drepper@redhat.com>
2503
2504 [BZ #2843]
2505 * pthread_join.c (pthread_join): Account for self being canceled
2506 when checking for deadlocks.
2507 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
2508 (tf1): Don't print anything after pthread_join returns, this would be
2509 another cancellation point.
2510 (tf2): Likewise.
2511 * tst-join6.c: New file.
2512 * Makefile (tests): Add tst-join6.
2513
f1762c0c
UD
25142006-08-03 Ulrich Drepper <drepper@redhat.com>
2515
9c06eb66
UD
2516 [BZ #2892]
2517 * pthread_setspecific.c (__pthread_setspecific): Check
2518 out-of-range index before checking for unused key.
2519
f1762c0c
UD
2520 * sysdeps/pthread/gai_misc.h: New file.
2521
7bb1b2c9
UD
25222006-08-01 Ulrich Drepper <drepper@redhat.com>
2523
2524 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
2525 file. Don't use sysctl.
2526 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
2527 overwrite the file if this is likely not true.
2528
b06e7e9a
UD
25292006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
2530
2531 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
2532 * Makefile (tests): Add tst-getpid3.
2533 * tst-getpid3.c: New file.
2534
b894c2ea
RM
25352006-07-30 Roland McGrath <roland@redhat.com>
2536
2537 * Makefile (libpthread-routines): Add ptw-sigsuspend.
2538
2539 * sysdeps/unix/sysv/linux/i386/not-cancel.h
2540 (pause_not_cancel): New macro.
2541 (nanosleep_not_cancel): New macro.
2542 (sigsuspend_not_cancel): New macro.
2543 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
2544 nanosleep_not_cancel macro from <not-cancel.h>.
2545 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
2546 macro from <not-cancel.h>.
2547
df47504c
UD
25482006-07-28 Ulrich Drepper <drepper@redhat.com>
2549 Jakub Jelinek <jakub@redhat.com>
2550
2551 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
2552 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
2553 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
2554 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
2555 * pthread_mutex_init.c: Add support for priority inheritance mutex.
2556 * pthread_mutex_lock.c: Likewise.
2557 * pthread_mutex_timedlock.c: Likewise.
2558 * pthread_mutex_trylock.c: Likewise.
2559 * pthread_mutex_unlock.c: Likewise.
2560 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
2561 all mutexes.
2562 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
2563 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
2564 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
2565 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
2566 pthread-pi-defines.sym.
2567 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
2568 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
2569 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
2570 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
2571 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2572 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2573 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2574 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
2575 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
2576 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2577 _POSIX_THREAD_PRIO_INHERIT to 200112L.
2578 * tst-mutex1.c: Adjust to allow use in PI mutex test.
2579 * tst-mutex2.c: Likewise.
2580 * tst-mutex3.c: Likewise.
2581 * tst-mutex4.c: Likewise.
2582 * tst-mutex5.c: Likewise.
2583 * tst-mutex6.c: Likewise.
2584 * tst-mutex7.c: Likewise.
2585 * tst-mutex7a.c: Likewise.
2586 * tst-mutex8.c: Likewise.
2587 * tst-mutex9.c: Likewise.
2588 * tst-robust1.c: Likewise.
2589 * tst-robust7.c: Likewise.
2590 * tst-robust8.c: Likewise.
2591 * tst-mutexpi1.c: New file.
2592 * tst-mutexpi2.c: New file.
2593 * tst-mutexpi3.c: New file.
2594 * tst-mutexpi4.c: New file.
2595 * tst-mutexpi5.c: New file.
2596 * tst-mutexpi6.c: New file.
2597 * tst-mutexpi7.c: New file.
2598 * tst-mutexpi7a.c: New file.
2599 * tst-mutexpi8.c: New file.
2600 * tst-mutexpi9.c: New file.
2601 * tst-robust1.c: New file.
2602 * tst-robust2.c: New file.
2603 * tst-robust3.c: New file.
2604 * tst-robust4.c: New file.
2605 * tst-robust5.c: New file.
2606 * tst-robust6.c: New file.
2607 * tst-robust7.c: New file.
2608 * tst-robust8.c: New file.
2609 * Makefile (tests): Add the new tests.
2610
2611 * pthread_create.c (start_thread): Add some casts to avoid warnings.
2612 * pthread_mutex_destroy.c: Remove unneeded label.
2613
f3be81a9
UD
26142006-07-01 Ulrich Drepper <drepper@redhat.com>
2615
2616 * pthread_mutex_init.c (__pthread_mutex_init): Move some
2617 computations to compile time.
2618
c26ca5e1
UD
26192006-06-04 Ulrich Drepper <drepper@redhat.com>
2620
2621 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
2622
6f8a7dff
UD
26232006-05-15 Ulrich Drepper <drepper@redhat.com>
2624
c26ca5e1 2625 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 2626
3d237e42
UD
26272006-05-11 Ulrich Drepper <drepper@redhat.com>
2628
04974d63
UD
2629 * pthread_key_create.c (__pthread_key_create): Do away with
2630 __pthread_keys_lock.
2631
2632 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
2633 (__kernel_cpumask_size): Mark as hidden.
2634 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
2635
3d237e42
UD
2636 * sem_open.c (__sem_mappings_lock): Mark as hidden.
2637 * semaphoreP.h (__sem_mappings_lock): Likewise.
2638
790fc6e4
UD
26392006-05-10 Ulrich Drepper <drepper@redhat.com>
2640
2641 * pthread_atfork.c: Mark __dso_handle as hidden.
2642
be434a72
UD
26432006-05-09 Ulrich Drepper <drepper@redhat.com>
2644
2645 [BZ #2644]
2646 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
2647 the reload problem. Change the one path in pthread_cancel_init
2648 which causes the problem. Force gcc to reload. Simplify callers.
2649 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
2650 (_Unwind_GetBSP): Undo last patch.
2651
3142b1ac
UD
26522006-05-07 Ulrich Drepper <drepper@redhat.com>
2653
bf3635d3
UD
2654 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
2655 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
2656
2657 [BZ #2644]
2658 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
2659 pointers are reloaded after pthread_cancel_init calls.
2660
27488789
UD
26612006-05-01 Ulrich Drepper <drepper@redhat.com>
2662
2663 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
2664 __always_inline.
2665
a6375d11
UD
26662006-04-27 Ulrich Drepper <drepper@redhat.com>
2667
2668 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2669 Allocate new object which is passed to timer_sigev_thread so that
2670 the timer can be deleted before the new thread is scheduled.
2671
16a1d952
RM
26722006-04-26 Roland McGrath <roland@redhat.com>
2673
2674 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
2675
7960f2a7
UD
26762006-04-08 Ulrich Drepper <drepper@redhat.com>
2677
ab9a9ff8
UD
2678 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
2679 suffix for conditional jumps.
2680 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
2681 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2682 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
2683 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
2684 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
2685 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
2686
7960f2a7
UD
2687 * init.c (sigcancel_handler): Compare with correct PID even if the
2688 thread is in the middle of a fork call.
2689 (sighandler_setxid): Likewise.
2690 Reported by Suzuki K P <suzuki@in.ibm.com> .
2691
2035d91c
UD
26922006-04-07 Jakub Jelinek <jakub@redhat.com>
2693
2694 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
2695
0292b0dd
UD
26962006-04-06 Ulrich Drepper <drepper@redhat.com>
2697
2698 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
2699 fails [Coverity CID 105].
2700
6738b3c0
UD
27012006-04-05 Ulrich Drepper <drepper@redhat.com>
2702
2703 * sysdeps/pthread/pthread.h: Add nonnull attributes.
2704
359157a5
RM
27052006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
2706
2707 [BZ #2505]
2708 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
2709 Define __lll_rel_instr using lwsync.
2710
cd277b2d
UD
27112006-03-27 Ulrich Drepper <drepper@redhat.com>
2712
2713 * allocatestack.c (allocate_stack): Always initialize robust_head.
2714 * descr.h: Define struct robust_list_head.
2715 (struct pthread): Use robust_list_head in robust mutex list definition.
2716 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
2717 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
2718 (__pthread_initialize_minimal_internal): Register robust_list with
2719 the kernel.
2720 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
2721 Declare __set_robust_list_avail.
2722 * pthread_create.c (start_thread): Register robust_list of new thread.
2723 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
2724 waiters.
2725 * pthread_mutex_destroy.c: For robust mutexes don't look at the
2726 number of users, it's unreliable.
2727 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
2728 set_robust_list syscall is available.
2729 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
2730 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
2731 Set robust_head.list_op_pending before trying to lock a robust mutex.
2732 * pthread_mutex_timedlock.c: Likewise.
2733 * pthread_mutex_trylock.c: Likewise.
2734 * pthread_mutex_unlock.c: Likewise for unlocking.
2735 * Makefile (tests): Add tst-robust8.
2736 * tst-robust8.c: New file.
2737
facac085
UD
27382006-03-08 Andreas Schwab <schwab@suse.de>
2739
2740 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
2741 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
2742
7ccbe1a1
RM
27432006-03-05 Roland McGrath <roland@redhat.com>
2744
2745 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
2746 and $config_os doesn't match *linux*.
2747
043cee37
RM
27482006-03-05 David S. Miller <davem@sunset.davemloft.net>
2749
2750 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
2751 Use __syscall_error.
2752 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
2753 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
2754 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
2755 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
2756 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
2757 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
2758
88bce79e
UD
27592006-03-02 Ulrich Drepper <drepper@redhat.com>
2760
2761 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
2762
672ec465
UD
27632006-03-01 Ulrich Drepper <drepper@redhat.com>
2764
2765 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2766 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
2767 mutex.
2768 (__lll_robust_timedlock_wait): Likewise.
2769 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
2770 (__lll_robust_lock_wait): Likewise.
2771 (__lll_robust_timedlock_wait): Likewise.
2772 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
2773 (__lll_robust_lock_wait): Likewise.
2774 (__lll_robust_timedlock_wait): Likewise.
2775
c4a4875d
RM
27762006-03-01 Jakub Jelinek <jakub@redhat.com>
2777
2778 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
2779 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2780 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2781 lll_robust_mutex_unlock): Define.
2782 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2783
3192fd8e
RM
27842006-02-28 H.J. Lu <hongjiu.lu@intel.com>
2785
2786 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
2787 instead of <clone.S>.
2788
14d44b19
RM
27892006-02-27 Jakub Jelinek <jakub@redhat.com>
2790
2791 * Makefile (libpthread-routines): Add
2792 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
2793 and pthread_mutex_[sg]etprioceiling.
2794 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
2795 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
2796 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
2797 pthread_mutex_setprioceiling.
2798 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
2799 PTHREAD_PRIO_PROTECT): New enum values.
2800 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
2801 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
2802 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
2803 prototypes.
2804 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
2805 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
2806 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
2807 Define.
2808 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
2809 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
2810 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
2811 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
2812 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
2813 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
2814 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
2815 protocol mutexes.
2816 * pthread_mutex_getprioceiling.c: New file.
2817 * pthread_mutex_setprioceiling.c: New file.
2818 * pthread_mutexattr_getprioceiling.c: New file.
2819 * pthread_mutexattr_setprioceiling.c: New file.
2820 * pthread_mutexattr_getprotocol.c: New file.
2821 * pthread_mutexattr_setprotocol.c: New file.
2822
62f6b9b2
RM
28232006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
2824
2825 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
2826
e0a3ed4f
RM
28272006-02-27 Roland McGrath <roland@redhat.com>
2828
2829 * sysdeps/pthread/Subdirs: List nptl here too.
2830 * configure (libc_add_on_canonical): New variable.
2831
2832 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
2833
2834 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
2835 self to get main source tree's file.
2836 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
2837 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
2838 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
2839 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
2840 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
2841 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
2842 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
2843 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
2844 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
2845 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
2846 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
2847 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
2848 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
2849
2850 * Makefile: Use $(sysdirs) in vpath directive.
2851
2852 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
2853 (CPPFLAGS-timer_routines.c): Likewise.
2854
2855 * Makeconfig (includes): Variable removed.
2856
84cfa284
RM
28572006-02-26 Roland McGrath <roland@redhat.com>
2858
2859 * sysdeps/generic/pt-raise.c: Moved to ...
2860 * pt-raise.c: ... here.
2861 * sysdeps/generic/lowlevellock.h: Moved to ...
2862 * lowlevellock.h: ... here.
2863
c5132ca1
RM
28642006-02-23 Roland McGrath <roland@redhat.com>
2865
2866 * descr.h (struct pthread): Add final member `end_padding'.
2867 (PTHREAD_STRUCT_END_PADDING): Use it.
2868
28692006-02-20 Roland McGrath <roland@redhat.com>
2870
2871 * sysdeps/mips: Directory removed, saved in ports repository.
2872 * sysdeps/unix/sysv/linux/mips: Likewise.
2873
a93317a1
UD
28742006-02-18 Ulrich Drepper <drepper@redhat.com>
2875
2876 * tst-robust1.c: Add second mutex to check that the mutex list is
2877 handled correctly.
2878
f1740bc4
UD
28792006-02-17 Jakub Jelinek <jakub@redhat.com>
2880
2881 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
2882 lll_robust_mutex_trylock, lll_robust_mutex_lock,
2883 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
2884 lll_robust_mutex_unlock): New macros.
2885 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
2886 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2887 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2888 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2889 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
2890
a7245bf5
UD
28912006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2892
2893 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
2894 definitions.
2895 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
2896
49bfc1fe
UD
28972006-02-17 Ulrich Drepper <drepper@redhat.com>
2898
2899 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
2900 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
2901 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
2902 (lll_robust_mutex_unlock): Likewise.
2903
56e987ac
UD
29042006-02-13 Jakub Jelinek <jakub@redhat.com>
2905
2906 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
2907 Set robust_list.__next rather than robust_list.
2908 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
2909 (__pthread_list_t): New typedef.
2910 (pthread_mutex_t): Replace __next and __prev fields with __list.
2911 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
2912 (__pthread_list_t): New typedef.
2913 (pthread_mutex_t): Replace __next and __prev fields with __list.
2914 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
2915 (__pthread_list_t, __pthread_slist_t): New typedefs.
2916 (pthread_mutex_t): Replace __next and __prev fields with __list.
2917 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
2918 (__pthread_list_t, __pthread_slist_t): New typedefs.
2919 (pthread_mutex_t): Replace __next and __prev fields with __list.
2920 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
2921 (__pthread_list_t, __pthread_slist_t): New typedefs.
2922 (pthread_mutex_t): Replace __next and __prev fields with __list.
2923 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
2924 (__pthread_slist_t): New typedef.
2925 (pthread_mutex_t): Replace __next field with __list.
2926
683040c3
UD
29272006-02-15 Ulrich Drepper <drepper@redhat.com>
2928
25bc77e6 2929 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
2930 PTHREAD_MUTEX_OWNERDEAD.
2931 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
2932 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
2933 * Makefile (libpthread-routines): Add lowlevelrobustlock.
2934 * pthread_create.c (start_thread): Very much simplify robust_list loop.
2935 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
2936 to PTHREAD_MUTEX_INCONSISTENT.
2937 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
2938 * pthread_mutex_lock.c: Reimplement robust mutex handling.
2939 * pthread_mutex_trylock.c: Likewise.
2940 * pthread_mutex_timedlock.c: Likewise.
2941 * pthread_mutex_unlock.c: Likewise.
2942 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
2943 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
2944 lowlevelrobustlock.sym.
2945 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
2946 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
2947 definitions.
2948 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2949 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
2950 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
2951 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
2952 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
2953
bbf209a4
UD
29542006-02-12 Ulrich Drepper <drepper@redhat.com>
2955
b007ce7c
UD
2956 * allocatestack.c (allocate_stack): Initialize robust_list.
2957 * init.c (__pthread_initialize_minimal_internal): Likewise.
2958 * descr.h (struct xid_command): Pretty printing.
2959 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
2960 robust_list. Adjust macros.
2961 * pthread_create.c (start_thread): Adjust robust_list handling.
2962 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
2963 but the owner for all robust mutex types.
2964 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
2965 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 2966 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
2967 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
2968
bbf209a4
UD
2969 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
2970 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
2971
b576fca1
UD
29722006-02-08 Jakub Jelinek <jakub@redhat.com>
2973
2974 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
2975 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
2976
a6df7387
UD
29772006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2978
2979 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
2980 Return status.
2981 (lll_futex_timed_wait): Define.
2982
7c65e900
UD
29832006-01-19 Ulrich Drepper <drepper@redhat.com>
2984
2985 * tst-cancel4.c: Test ppoll.
2986
5f9f21e8
AJ
29872006-01-18 Andreas Jaeger <aj@suse.de>
2988
cf407dfb 2989 [BZ #2167]
5f9f21e8
AJ
2990 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
2991 (pthread_mutex_t): Follow changes for other archs. Based on patch
2992 by Jim Gifford <patches@jg555.com>.
2993
251278c6
UD
29942006-01-13 Richard Henderson <rth@redhat.com>
2995
2996 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
2997
de59a291
RM
29982006-01-10 Roland McGrath <roland@redhat.com>
2999
3000 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
3001 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3002 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3003 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3004 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3005 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3006 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3007 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3008 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 3009 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 3010
931786ee
RM
30112006-01-09 Roland McGrath <roland@redhat.com>
3012
5d42c8c3
RM
3013 * tst-initializers1-c89.c: New file.
3014 * tst-initializers1-c99.c: New file.
3015 * tst-initializers1-gnu89.c: New file.
3016 * tst-initializers1-gnu99.c: New file.
3017 * Makefile (tests): Add them.
3018 (CFLAGS-tst-initializers1-c89.c): New variable.
3019 (CFLAGS-tst-initializers1-c99.c): New variable.
3020 (CFLAGS-tst-initializers1-gnu89.c): New variable.
3021 (CFLAGS-tst-initializers1-gnu99.c): New variable.
3022
931786ee
RM
3023 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3024 Use __extension__ on anonymous union definition.
3025 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3026 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3027 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3028 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 3029 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 3030
8dd18431
RM
30312006-01-08 Jakub Jelinek <jakub@redhat.com>
3032
3033 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
3034 Don't give the union a name because it changes the mangled name.
3035 Instead name the struct for __data.
3036 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
3037 Likewise.
3038 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
3039 Likewise.
3040
ae11e412
UD
30412006-01-09 Jakub Jelinek <jakub@redhat.com>
3042
3043 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
3044 stack bias to mc_ftp field.
3045
c6885aa1
UD
30462006-01-07 Ulrich Drepper <drepper@redhat.com>
3047
3048 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 3049 being too clever and reloading the futex value where it shouldn't.
c6885aa1 3050
ae4ad00a
UD
30512006-01-06 Ulrich Drepper <drepper@redhat.com>
3052
3053 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
3054 correct type.
3055
ced368f7
UD
30562006-01-06 Jakub Jelinek <jakub@redhat.com>
3057
3058 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
3059 Add cfi directives.
3060
d804f5df
UD
30612006-01-06 Ulrich Drepper <drepper@redhat.com>
3062
cbbbb188 3063 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
3064 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
3065 rename in tcbhead_t.
3066
d804f5df
UD
3067 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3068 Don't give the union a name because it changes the mangled name.
3069 Instead name the struct for __data.
3070 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3071 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3072 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3073 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3074 * pthread_create.c (start_thread): Adjust robust mutex free loop.
3075 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
3076
679d83ba
UD
30772006-01-05 Ulrich Drepper <drepper@redhat.com>
3078
3079 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
3080 Return status.
3081 (lll_futex_timed_wait): Define.
3082 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3083 * sysdeps/pthread/aio_misc.h: New file.
3084
06dc5bf3
RM
30852006-01-03 Joseph S. Myers <joseph@codesourcery.com>
3086
3087 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
3088
9759bbf1
UD
30892006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
3090
3091 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3092 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
3093 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3094
db59b28b
UD
30952006-01-04 Ulrich Drepper <drepper@redhat.com>
3096
3097 * tst-cancel24.cc: Use C headers instead of C++ headers.
3098
b01fe5f7
UD
30992006-01-03 Jakub Jelinek <jakub@redhat.com>
3100
3101 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
3102 sparc-linux configured glibc.
3103 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
3104 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
3105 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
3106 atomic_compare_and_exchange_val_24_acq instead of
3107 atomic_compare_and_exchange_val_acq.
3108 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
3109 instead of atomic_exchange_rel.
3110 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
3111 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
3112 file.
3113 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
3114 file.
3115 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
3116 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
3117 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
3118 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
3119 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
3120 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3121 New file.
3122 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3123 New file.
3124 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
3125 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
3126 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
3127 file.
3128 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
3129 file.
3130 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
3131
35c2fd59
UD
31322006-01-03 Ulrich Drepper <drepper@redhat.com>
3133
3134 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
3135 mutex initializers.
3136
305bb37e
UD
31372006-01-02 Jakub Jelinek <jakub@redhat.com>
3138
3139 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
3140 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3141 THREAD_COPY_POINTER_GUARD): Define.
3142 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
3143 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
3144
cc792128
UD
31452006-01-01 Ulrich Drepper <drepper@redhat.com>
3146
3147 * version.c: Update copyright year.
3148
db0a00d3
UD
31492005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3150
3151 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
3152 .eh_frame section, use cfi_* directives.
3153 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
3154
b36205c4
UD
31552005-12-30 Ulrich Drepper <drepper@redhat.com>
3156
3157 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
3158 now.
3159
8b4f1598
UD
31602005-12-29 Ulrich Drepper <drepper@redhat.com>
3161
3162 * sysdeps/pthread/sigaction.c: Removed.
3163 * sigaction.c: New file.
3164 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
3165
fec5592d
UD
31662005-12-28 Ulrich Drepper <drepper@redhat.com>
3167
3168 * Makefile (tests): Add tst-signal7.
3169 * tst-signal7.c: New file.
3170
db169ed5
RM
31712005-12-27 Roland McGrath <roland@redhat.com>
3172
3173 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
3174 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
3175 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
3176 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
3177 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
3178 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
3179 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
3180 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
3181 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
3182 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
3183 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
3184
bfffffae
UD
31852005-12-27 Jakub Jelinek <jakub@redhat.com>
3186
3187 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
3188 and __prev field to pthread_mutex_t.
3189 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3190 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3191 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3192 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
3193 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
3194 to pthread_mutex_t.
3195
1bcfb5a5
UD
31962005-12-26 Ulrich Drepper <drepper@redhat.com>
3197
3198 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
3199 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
3200 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
3201 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
3202 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
3203 and PTHREAD_MUTEXATTR_FLAG_BITS.
3204 * descr.h (struct pthread): Add robust_list field and define
3205 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
3206 * pthread_mutexattr_getrobust.c: New file.
3207 * pthread_mutexattr_setrobust.c: New file.
3208 * pthread_mutex_consistent.c: New file.
3209 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
3210 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3211 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
3212 Adjust pthread_mutex_t initializers.
3213 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
3214 field to pthread_mutex_t.
3215 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
3216 and __prev field to pthread_mutex_t.
3217 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
3218 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
3219 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
3220 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
3221 * pthread_mutexattr_gettype.c: Likewise.
3222 * pthread_mutexattr_setpshared.c: Likewise.
3223 * pthread_mutexattr_settype.c: Likewise.
3224 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
3225 Initialize mutex kind according to robust flag.
3226 * pthread_mutex_lock.c: Implement local robust mutex.
3227 * pthread_mutex_timedlock.c: Likewise.
3228 * pthread_mutex_trylock.c: Likewise.
3229 * pthread_mutex_unlock.c: Likewise.
3230 * pthread_create.c (start_thread): Mark robust mutexes which remained
3231 locked as dead.
3232 * tst-robust1.c: New file.
3233 * tst-robust2.c: New file.
3234 * tst-robust3.c: New file.
3235 * tst-robust4.c: New file.
3236 * tst-robust5.c: New file.
3237 * tst-robust6.c: New file.
3238 * tst-robust7.c: New file.
3239 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
3240 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
3241 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
3242 tst-robust5, tst-robust6, and tst-robust7.
3243
3244 * tst-typesizes.c: New file.
3245 * Makefile (tests): Add tst-typesizes.
3246
3247 * tst-once3.c: More debug output.
3248
9333ed0d
UD
32492005-12-24 Ulrich Drepper <drepper@redhat.com>
3250
d4d138a4
UD
3251 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
3252 missing after last change.
3253
bfffffae 3254 * version.c: Update copyright year.
9333ed0d 3255
dcc73a8d
UD
32562005-12-23 Ulrich Drepper <drepper@redhat.com>
3257
3258 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
3259 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
3260 * pthread_mutex_trylock.c: Likewise.
3261 * pthread_mutex_timedlock.c: Likewise.
3262 * pthread_mutex_unlock.c: Likewise.
3263
879f3ca6
RM
32642005-12-22 Roland McGrath <roland@redhat.com>
3265
3266 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
3267 so that #include_next's search location is not reset to the -I..
3268 directory where <nptl/...> can be found.
3269
077a0da7
UD
32702005-12-22 Ulrich Drepper <drepper@redhat.com>
3271
3272 [BZ #1913]
3273 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3274 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
3275 * tst-cancel24.cc: New file.
3276 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 3277
8dea90aa
RM
32782005-12-21 Roland McGrath <roland@redhat.com>
3279
3280 * libc-cancellation.c: Use <> rather than "" #includes.
3281 * pt-cleanup.c: Likewise.
3282 * pthread_create.c: Likewise.
3283 * pthread_join.c: Likewise.
3284 * pthread_timedjoin.c: Likewise.
3285 * pthread_tryjoin.c: Likewise.
3286 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
3287 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3288 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3289 * unwind.c: Likewise.
3290
8da21f96
UD
32912005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3292
3293 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
3294 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
3295 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3296 THREAD_COPY_POINTER_GUARD): Define.
3297
00c2b3b9
UD
32982005-12-19 Jakub Jelinek <jakub@redhat.com>
3299
3300 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
3301 rather than one.
3302 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3303 THREAD_COPY_POINTER_GUARD): Define.
3304 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
3305 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
3306 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
3307 THREAD_COPY_POINTER_GUARD): Define.
3308 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
3309 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
3310 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
3311 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
3312 Use PTR_DEMANGLE for B0 if defined.
3313
827b7087
UD
33142005-12-17 Ulrich Drepper <drepper@redhat.com>
3315
3316 * pthread_create.c (__pthread_create_2_1): Use
3317 THREAD_COPY_POINTER_GUARD if available.
3318 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
3319 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3320 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
3321 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
3322 * sysdeps/x86_64/tls.h: Likewise.
3323
2826ac7e
RM
33242005-12-15 Roland McGrath <roland@redhat.com>
3325
3326 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
3327
b6ab06ce
UD
33282005-12-13 Ulrich Drepper <drepper@redhat.com>
3329
3330 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
3331 sysdeps/generic.
3332 * errno-loc.c: New file.
3333
f0d1a3b5
RM
33342005-12-12 Roland McGrath <roland@redhat.com>
3335
3336 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
3337 adjustments before choosing stack size. Update minimum stack size
3338 calculation to match allocate_stack change.
3339
db13ddbc
UD
33402005-12-12 Ulrich Drepper <drepper@redhat.com>
3341
3342 * allocatestack.c (allocate_stack): Don't demand that there is an
3343 additional full page available on the stack beside guard, TLS, the
3344 minimum stack.
3345
088f460f
UD
33462005-11-24 Ulrich Drepper <drepper@redhat.com>
3347
3348 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3349 (__cleanup_fct_attribute): Use __regparm__ not regparm.
3350
3351 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
3352 compiling 32-bit code we must define __cleanup_fct_attribute.
3353
16feadf2
UD
3354005-11-24 Jakub Jelinek <jakub@redhat.com>
3355
3356 [BZ #1920]
3357 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
3358 __attribute__ instead of __attribute.
3359 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
3360 (__cleanup_fct_attribute): Likewise.
3361
e6e493bb
UD
33622005-11-17 Jakub Jelinek <jakub@redhat.com>
3363
3364 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
3365 a write barrier before writing libgcc_s_getcfa.
3366
8e635611
UD
33672005-11-06 Ulrich Drepper <drepper@redhat.com>
3368
3369 * sysdeps/unix/sysv/linux/configure: Removed.
3370
ce33ee7c
UD
33712005-11-05 Ulrich Drepper <drepper@redhat.com>
3372
3373 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
3374 optional init_array/fini_array support.
3375
20d511e0
RM
33762005-10-24 Roland McGrath <roland@redhat.com>
3377
3378 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
3379 versioned_symbol use.
3380
fe60d146
RM
33812005-10-16 Roland McGrath <roland@redhat.com>
3382
3383 * init.c (__pthread_initialize_minimal_internal): Even when using a
3384 compile-time default stack size, apply the minimum that allocate_stack
3385 will require, and round up to page size.
3386
0faa1cf5
RM
33872005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
3388
3389 * Makefile ($(test-modules)): Remove static pattern rule.
3390
f9126cc2
UD
33912005-10-14 Jakub Jelinek <jakub@redhat.com>
3392 Ulrich Drepper <drepper@redhat.com>
3393
3394 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
3395 alignment in callback function.
3396 * Makefile: Add rules to build and run tst-align3.
3397 * tst-align3.c: New file.
3398
015a5d22
RM
33992005-10-03 Jakub Jelinek <jakub@redhat.com>
3400
3401 * allocatestack.c (setxid_signal_thread): Add
3402 INTERNAL_SYSCALL_DECL (err).
3403
b71ce910
UD
34042005-10-02 Jakub Jelinek <jakub@redhat.com>
3405
3406 * allocatestack.c (setxid_signal_thread): Need to use
3407 atomic_compare_and_exchange_bool_acq.
3408
dff9a7a1
UD
34092005-10-01 Ulrich Drepper <drepper@redhat.com>
3410 Jakub Jelinek <jakub@redhat.com>
3411
3412 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
3413 CANCEL_RESTMASK.
3414 (struct pthread): Move specific_used field to avoid padding.
3415 Add setxid_futex field.
3416 * init.c (sighandler_setxid): Reset setxid flag and release the
3417 setxid futex.
3418 * allocatestack.c (setxid_signal_thread): New function. Broken
3419 out of the bodies of the two loops in __nptl_setxid. For undetached
3420 threads check whether they are exiting and if yes, don't send a signal.
3421 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
3422 * pthread_create.c (start_thread): For undetached threads, check
3423 whether setxid bit is set. If yes, wait until signal has been
3424 processed.
3425
3426 * allocatestack.c (STACK_VARIABLES): Initialize them.
3427 * pthread_create.c (__pthread_create_2_1): Initialize pd.
3428
560b4709
UD
34292004-09-02 Jakub Jelinek <jakub@redhat.com>
3430
3431 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
3432 waiters, awake all waiters on the associated mutex.
3433
5eac4760
RM
34342005-09-22 Roland McGrath <roland@redhat.com>
3435
3436 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
3437 ../sysdeps/x86_64/hp-timing.h).
3438
a3615024
UD
34392005-08-29 Jakub Jelinek <jakub@redhat.com>
3440
3441 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
3442 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3443 (lll_futex_wake_unlock): Define.
3444 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
3445 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3446 (lll_futex_wake_unlock): Define.
3447 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
3448 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3449 (lll_futex_wake_unlock): Define.
3450 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
3451 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3452 (lll_futex_wake_unlock): Define.
3453 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
3454 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3455 (lll_futex_wake_unlock): Define.
3456 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
3457 lll_futex_wake_unlock.
3458 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3459 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3460 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3461 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3462 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3463 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
3464
bf017034
UD
34652005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3466
3467 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
3468 Fix typo in register name.
3469
fd4af664
UD
34702005-08-23 Ulrich Drepper <drepper@redhat.com>
3471
8558d715
UD
3472 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3473 Use __sigfillset. Document that sigfillset does the right thing wrt
3474 to SIGSETXID.
fd4af664 3475
3fd1bc67
UD
34762005-07-11 Jakub Jelinek <jakub@redhat.com>
3477
44d75caf 3478 [BZ #1102]
3fd1bc67
UD
3479 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
3480 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
3481 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
3482 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
3483 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
3484 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
3485 in the structure.
3486 * Makefile (tests): Add tst-initializers1.
3487 (CFLAGS-tst-initializers1.c): Set.
3488 * tst-initializers1.c: New test.
3489
553185e2
UD
34902005-07-11 Jakub Jelinek <jakub@redhat.com>
3491
3492 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
3493 Make sure __flags are located at offset 48 from the start of the
3494 structure.
3495
8df08cb2
RM
34962005-07-02 Roland McGrath <roland@redhat.com>
3497
3498 * Makeconfig: Comment fix.
3499
253eb3a0
UD
35002005-07-05 Jakub Jelinek <jakub@redhat.com>
3501
3502 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
3503 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
3504 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
3505 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
3506 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3507 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3508 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
3509 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
3510 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
3511 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
3512
bb6e8ca3
UD
35132005-06-25 Jakub Jelinek <jakub@redhat.com>
3514
3515 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
3516 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3517 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
3518 fields.
3519 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3520 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
3521 field. Put in sysinfo field unconditionally.
3522 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3523 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
3524 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3525 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
3526 fields.
3527 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
3528 * pthread_create.c (__pthread_create_2_1): Use
3529 THREAD_COPY_STACK_GUARD macro.
3530 * Makefile: Add rules to build and run tst-stackguard1{,-static}
3531 tests.
3532 * tst-stackguard1.c: New file.
3533 * tst-stackguard1-static.c: New file.
3534
99c7f870
UD
35352005-06-14 Alan Modra <amodra@bigpond.net.au>
3536
3537 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3538 Invoke CGOTSETUP and CGOTRESTORE.
3539 (CGOTSETUP, CGOTRESTORE): Define.
3540
8074c5c5
RM
35412005-05-29 Richard Henderson <rth@redhat.com>
3542
3543 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
3544 (tf_write, tf_writev): Use it.
3545 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
3546 the system minimum.
3547
c179df4e
UD
35482005-05-23 Jakub Jelinek <jakub@redhat.com>
3549
3550 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
3551 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
3552 __librt_*_asynccancel@local.
3553
b0e196a4
UD
35542005-05-17 Alan Modra <amodra@bigpond.net.au>
3555
3556 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
3557 all occurrences of JUMPTARGET. Instead append @local to labels.
3558
f7d78e18
UD
35592005-05-20 Jakub Jelinek <jakub@redhat.com>
3560
3561 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
3562 size/alignment of struct pthread rather than tcbhead_t.
3563 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3564 Likewise.
3565 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3566 Likewise.
3567 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
3568 Likewise.
3569
363dd976
UD
35702005-05-19 Richard Henderson <rth@redhat.com>
3571
3572 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
3573 __sync_val_compare_and_swap, not explicit _si variant.
3574 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
3575
1ad9da69
UD
35762005-05-03 Ulrich Drepper <drepper@redhat.com>
3577
3578 [BZ #915]
3579 * sysdeps/pthread/pthread.h: Avoid empty initializers.
3580
5085cd1f
UD
35812005-05-03 Jakub Jelinek <jakub@redhat.com>
3582
3583 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
3584 .eh_frame section, use cfi_* directives.
3585
ad529081
UD
35862005-04-27 Jakub Jelinek <jakub@redhat.com>
3587
3588 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
3589 of "" includes.
3590
dea99685
UD
35912005-04-27 Ulrich Drepper <drepper@redhat.com>
3592
c06aad09 3593 [BZ #1075]
dea99685
UD
3594 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
3595 aio_write blocks.
3596
84060bad
RM
35972005-04-27 Roland McGrath <roland@redhat.com>
3598
5e2d8ac8
RM
3599 * Makefile (tests): Remove tst-clock2.
3600
84060bad
RM
3601 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
3602 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
3603 translating to the kernel clockid_t for our own process/thread clock.
3604
3605 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
3606
4a035b9d
RM
36072005-04-15 Jakub Jelinek <jakub@redhat.com>
3608
3609 * old_pthread_cond_init.c: Include <errno.h>.
3610 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
3611 process shared or uses clock other than CLOCK_REALTIME.
3612 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
3613
edac0e8f
UD
36142005-04-13 David S. Miller <davem@davemloft.net>
3615
3616 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
3617 * sysdeps/sparc/sparc64/clone.S: New file.
3618
613d8d52
RM
36192005-04-05 Jakub Jelinek <jakub@redhat.com>
3620
44d75caf 3621 [BZ #1102]
613d8d52
RM
3622 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
3623 __inline instead of inline.
3624 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
3625
ee618985
UD
36262005-03-31 Jakub Jelinek <jakub@redhat.com>
3627
3628 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
3629 functionally equivalent, but shorter instructions.
3630 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3631 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3632 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3633 Likewise.
3634 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
3635 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3636 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3637 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3638 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3639 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
3640 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3641 Likewise.
3642 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3643 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
3644 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3645 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
3646 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3647
f850220b
AJ
36482005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
3649
3650 * sysdeps/mips/Makefile: New file.
3651 * sysdeps/mips/nptl-sysdep.S: New file.
3652 * sysdeps/mips/tcb-offsets.sym: New file.
3653 * sysdeps/mips/pthread_spin_lock.S: New file.
3654 * sysdeps/mips/pthread_spin_trylock.S: New file.
3655 * sysdeps/mips/pthreaddef.h: New file.
3656 * sysdeps/mips/tls.h: New file.
3657 * sysdeps/mips/jmpbuf-unwind.h: New file.
3658 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
3659 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
3660 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
3661 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
3662 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
3663 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
3664 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
3665 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
3666 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
3667 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
3668
1e6da2b0
UD
36692005-03-23 Ulrich Drepper <drepper@redhat.com>
3670
c06aad09 3671 [BZ #1112]
1e6da2b0
UD
3672 * pthread_create.c (__pthread_create_2_1): Rename syscall error
3673 variable to scerr.
3674
5233d576
RM
36752005-03-10 Jakub Jelinek <jakub@redhat.com>
3676
3677 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
3678
3053ff11
RM
36792005-02-25 Roland McGrath <roland@redhat.com>
3680
3681 * alloca_cutoff.c: Correct license text.
3682 * tst-unload.c: Likewise.
3683 * sysdeps/pthread/allocalim.h: Likewise.
3684 * sysdeps/pthread/pt-initfini.c: Likewise.
3685 * sysdeps/pthread/bits/libc-lock.h: Likewise.
3686 * sysdeps/pthread/bits/sigthread.h: Likewise.
3687 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
3688 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
3689
9cfe5381
RM
36902005-02-16 Roland McGrath <roland@redhat.com>
3691
3692 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
3693 Use unsigned int * for ptr_nthreads.
3694
7de00121
RM
36952005-02-14 Alan Modra <amodra@bigpond.net.au>
3696
20d511e0 3697 [BZ #721]
7de00121
RM
3698 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
3699 gcc4.
3700
4bae262d
UD
37012005-02-07 Richard Henderson <rth@redhat.com>
3702
613d8d52 3703 [BZ #787]
4bae262d
UD
3704 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
3705 argument.
3706
75df54b7
RM
37072004-11-03 Marcus Brinkmann <marcus@gnu.org>
3708
3709 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
3710 order of arguments in invocation of atomic_add_zero.
3711
ea9c93cc
UD
37122005-01-26 Jakub Jelinek <jakub@redhat.com>
3713
9cfe5381 3714 [BZ #737]
ea9c93cc
UD
3715 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
3716 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
3717 at least gotntpoff relocation and addition.
3718 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3719 Likewise.
3720 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
3721 Likewise.
3722 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3723 Likewise.
3724
9dcafc55
UD
37252005-01-06 Ulrich Drepper <drepper@redhat.com>
3726
3727 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
3728 entry for static tls deallocation fix.
3729 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
3730 also contains information whether the memory pointed to is static
3731 TLS or not.
3732 * sysdeps/i386/tls.h: Likewise.
3733 * sysdeps/ia64/tls.h: Likewise.
3734 * sysdeps/powerpc/tls.h: Likewise.
3735 * sysdeps/s390/tls.h: Likewise.
3736 * sysdeps/sh/tls.h: Likewise.
3737 * sysdeps/sparc/tls.h: Likewise.
3738 * sysdeps/x86_64/tls.h: Likewise.
3739
a71c152c
UD
37402004-12-27 Ulrich Drepper <drepper@redhat.com>
3741
3742 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
3743
d143c49e
UD
37442004-12-21 Jakub Jelinek <jakub@redhat.com>
3745
3746 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
3747 %esp.
3748 * Makefile (tests): Add tst-align2.
3749 * tst-align2.c: New test.
3750 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
3751 -mpreferred-stack-boundary=4.
3752
50130ded
RM
37532004-12-18 Roland McGrath <roland@redhat.com>
3754
3755 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
3756 New file removed withdrawn for the moment.
3757
cbc53df0
RH
37582004-12-17 Richard Henderson <rth@redhat.com>
3759
3760 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
3761 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 3762
fb9d5c73
UD
37632004-12-16 Ulrich Drepper <drepper@redhat.com>
3764
03332aa6
UD
3765 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
3766 Increased PTHREAD_STACK_MIN.
3767
fb9d5c73
UD
3768 * tst-context1.c (stacks): Use bigger stack size.
3769
e853ea00
UD
37702004-12-16 Jakub Jelinek <jakub@redhat.com>
3771
3772 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
3773 * sysdeps/sparc/tcb-offsets.sym: Add TID.
3774
f23673fc
UD
37752004-12-15 Jakub Jelinek <jakub@redhat.com>
3776
3777 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
3778 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
3779 * sysdeps/s390/tcb-offsets.sym (TID): Add.
3780
917fbe70
UD
37812004-12-15 Ulrich Drepper <drepper@redhat.com>
3782
3783 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
3784
1f9d7c27
UD
37852004-12-14 Ulrich Drepper <drepper@redhat.com>
3786
3787 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
3788 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
3789
3790 * tst-getpid1.c: If child crashes, report this first. Print which
3791 signal.
3792
bf7c04cd
UD
37932004-12-09 Ulrich Drepper <drepper@redhat.com>
3794
3795 * init.c (__pthread_initialize_minimal_internal): Also unblock
3796 SIGSETXID.
3797
37982004-12-01 Jakub Jelinek <jakub@redhat.com>
3799
3800 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
3801 _POSIX_THREAD_CPUTIME): Define to 0.
3802 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
3803 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
3804 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
3805 __timer_signal_thread_tclk): Remove.
3806 (init_module): Remove their initialization.
3807 (thread_cleanup): Remove their cleanup assertions.
3808 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
3809 __timer_signal_thread_tclk): Remove.
3810 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 3811 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
3812 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
3813
484cc801
UD
38142004-12-07 Jakub Jelinek <jakub@redhat.com>
3815
3816 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
3817 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
3818
3819 * Makefile (tests): Add tst-getpid2.
3820 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
3821 (do_test): Use it. Use __clone2 instead of clone on ia64.
3822 * tst-getpid2.c: New test.
3823
2da9a6a1
UD
38242004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3825
3826 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
3827
1ff241b8
UD
38282004-12-04 Ulrich Drepper <drepper@redhat.com>
3829
3830 * Makefile (tests): Add tst-getpid1.
3831 * tst-getpid1.c: New file.
3832 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
3833 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
3834
3f488b9c
RM
38352004-12-02 Roland McGrath <roland@redhat.com>
3836
3837 * Makefile (libpthread-nonshared): Variable removed.
3838 ($(objpfx)libpthread_nonshared.a): Target removed.
3839 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
3840 These are now handled by generic magic from
3841 libpthread-static-only-routines being set.
3842
597ce09c
UD
38432004-11-27 Ulrich Drepper <drepper@redhat.com>
3844
3845 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
3846 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
3847 _POSIX_THREAD_PRIO_PROTECT): Define.
3848 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3849 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3850 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3851
60e4523a
UD
38522004-11-26 Jakub Jelinek <jakub@redhat.com>
3853
3854 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
3855 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
3856 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
3857 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
3858 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
3859 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
3860 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
3861
f1f2cafc
UD
38622004-11-24 Ulrich Drepper <drepper@redhat.com>
3863
bca2d208
UD
3864 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
3865
f1f2cafc
UD
3866 * Makefile (libpthread-routines): Add pthread_setschedprio.
3867 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
3868 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
3869 * pthread_setschedprio.c: New file.
3870
b639d0c9
UD
38712004-11-20 Jakub Jelinek <jakub@redhat.com>
3872
ef2bb413
UD
3873 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
3874 * pthread_cancel.c (pthread_create): Likewise.
3875
b639d0c9
UD
3876 * Makefile (libpthread-routines): Add vars.
3877 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
3878 * init.c (__default_stacksize, __is_smp): Remove.
3879 * vars.c: New file.
3880 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
3881 and define a wrapper macro.
3882 (PTHREAD_STATIC_FN_REQUIRE): Define.
3883 * allocatestack.c (__find_thread_by_id): Undefine.
3884 * pthread_create (__pthread_keys): Remove.
3885 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
3886 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
3887 PTHREAD_STATIC_FN_REQUIRE.
3888
3defcff3
UD
38892004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3890
3891 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
3892 parameter to REGISTER macro.
3893
ec188f92
RM
38942004-11-17 Roland McGrath <roland@redhat.com>
3895
3896 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
3897 Make sure SIGCANCEL is blocked as well.
3898
ccd8de9a
UD
38992004-11-10 Jakub Jelinek <jakub@redhat.com>
3900
3901 * sysdeps/pthread/setxid.h: New file.
3902 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
3903 (struct xid_command): Add forward decl.
3904 (struct pthread_functions): Change return type of __nptl_setxid hook
3905 to int.
3906 * pthreadP.h (__nptl_setxid): Change return type to int.
3907 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
3908 calling thread, return its return value and set errno on failure.
3909 * descr.h (struct xid_command): Change id type to long array.
3910
3911 * Makefile: Add rules to build and test tst-setuid1 and
3912 tst-setuid1-static.
3913 * tst-setuid1.c: New test.
3914 * tst-setuid1-static.c: New test.
3915
ed2ced8a
UD
39162004-11-10 Jakub Jelinek <jakub@redhat.com>
3917
3918 * Makefile (tests): Add tst-exit3.
3919 * tst-exit3.c: New test.
3920
948603ee
UD
39212004-11-09 Ulrich Drepper <drepper@redhat.com>
3922
3923 * Makefile (tests): Add tst-exit2.
3924 * tst-exit2.c: New file.
3925
ba5ffd2a
RM
39262004-11-09 Roland McGrath <roland@redhat.com>
3927
3928 [BZ #530]
3929 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
3930 here, before calling clone.
3931 * pthread_create.c (start_thread): Don't do it here.
3932
c4d7bd39
RM
39332004-11-02 Jakub Jelinek <jakub@redhat.com>
3934
3935 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
3936
543fb0c8
UD
39372004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3938
3939 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
3940 Set ETIMEDOUT to errno when time is up. Tweak to avoid
3941 assembler warning.
3942
a1fbd858
UD
39432004-10-28 Jakub Jelinek <jakub@redhat.com>
3944
3945 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
3946 if sched_priority is not between minprio and maxprio.
3947
c2a4357a
UD
39482004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3949
3950 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
3951 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
3952
3953 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3954 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
3955
78d8d211
UD
39562004-10-24 Ulrich Drepper <drepper@redhat.com>
3957
3958 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
3959 not-cancelable I/O functions.
3960
dd28590f
UD
39612004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3962
3963 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
3964 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
3965 make sure 2 is stored in the futex and we looked at the old value.
3966 Fix a few other problems to return the correct value.
3967
f8c97af7
RH
39682004-10-14 Richard Henderson <rth@redhat.com>
3969
3970 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
3971 make gcc4 happy.
3972
3feb8efa
UD
39732004-10-06 Jakub Jelinek <jakub@redhat.com>
3974
3975 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
3976 of pthread-functions.h and pthreaddef.h.
3977 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
3978
3979 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
3980 Change __data.__nwaiters from int to unsigned int.
3981
3982 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
3983 sysconf (_SC_THREAD_CPUTIME) returns negative value.
3984
3985 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
3986 before return type.
3987
3988 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
3989 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
3990
67060ef5
UD
39912004-10-06 Ulrich Drepper <drepper@redhat.com>
3992
3993 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
3994 test fails, remove message queue.
3995 (tf_msgsnd): Likewise.
3996
f38a3086
UD
39972004-10-05 Jakub Jelinek <jakub@redhat.com>
3998
3999 * tst-clock1.c: Change #ifdef to #if defined.
4000 * tst-clock2.c: Likewise.
4001 * tst-cond11.c: Likewise.
4002
2c03b6db
UD
4003 * sysdeps/pthread/timer_create.c (timer_create): Use
4004 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
4005 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
4006 THREAD_CPUTIME.
4007
6ab5f50d
UD
40082004-10-05 Jakub Jelinek <jakub@redhat.com>
4009
4010 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
4011 _POSIX_THREAD_CPUTIME): Define to 0.
4012
e4bb4853
UD
40132004-10-04 Ulrich Drepper <drepper@redhat.com>
4014
4015 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
4016 and _POSIX_THREAD_CPUTIME to zero.
4017 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
4018 * tst-barrier2.c: Fix testing for POSIX feature.
4019 * tst-clock1.c: Likewise.
4020 * tst-clock2.c: Likewise.
4021 * tst-cond11.c: Likewise.
4022 * tst-cond4.c: Likewise.
4023 * tst-cond6.c: Likewise.
4024 * tst-flock2.c: Likewise.
4025 * tst-mutex4.c: Likewise.
4026 * tst-mutex9.c: Likewise.
4027 * tst-rwlock12.c: Likewise.
4028 * tst-rwlock4.c: Likewise.
4029 * tst-signal1.c: Likewise.
4030 * tst-spin2.c: Likewise.
4031 * sysdeps/pthread/posix-timer.h: Likewise.
4032 * sysdeps/pthread/timer_create.c: Likewise.
4033 * sysdeps/pthread/timer_routines.c: Likewise.
4034
c1b48791
UD
40352004-10-01 Ulrich Drepper <drepper@redhat.com>
4036
927f0673
UD
4037 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4038 (__lll_mutex_timedlock_wait): Address futex correctly.
4039
c1b48791 4040 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 4041 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
4042 make sure 2 is stored in the futex and we looked at the old value.
4043 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4044 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
4045 which might very well made the code not working at all before.
7b87aca6 4046 [BZ #417]
c1b48791 4047
e9f4e844
UD
40482004-09-28 Ulrich Drepper <drepper@redhat.com>
4049
4f21c95d
UD
4050 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
4051 allow SIGSETXID to be sent.
4052 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
4053 for SIGSETXID to be defined.
4054 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
4055 SIGSETXID cannot be blocked.
4056
e9f4e844
UD
4057 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4058 Add __extension__ to long long types.
4059 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4060 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4061 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4062 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4063 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
4064 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4065 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4066
5f66b766
UD
40672004-09-25 Ulrich Drepper <drepper@redhat.com>
4068
4069 * descr.h (struct pthread): Add stopped_start field.
4070 * sysdeps/pthread/createthread.c (create_thread): Set
4071 start_stopped flag in descriptor for new thread appropriately.
4072 * pthread_create.c (start_thread): Only take lock to be stopped on
4073 startup if stopped_start flag says so.
4074
362038b0
UD
40752004-09-24 Ulrich Drepper <drepper@redhat.com>
4076
3f80a99b
UD
4077 * pthread_create.c (__pthread_create_2_1): Remember whether thread
4078 is created detached and if yes, do not try to free the stack in case
4079 the thread creation failed.
4080 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
4081 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
4082 case there has been no error. [BZ #405]
4083
362038b0
UD
4084 * pthread_create.c (start_thread): Don't wait for scheduler data
4085 etc to be set at the beginning of the function. The cancellation
4086 infrastructure must have been set up. And enable async
4087 cancellation before potentially going to sleep. [BZ #401]
4088
65f0beb9
UD
40892004-09-20 Ulrich Drepper <drepper@redhat.com>
4090
3c12b91a 4091 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
4092 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
4093 for now.
4094 * Makefile: Don't build pthread_set*id code for now.
4095
2edb61e3
UD
40962004-09-19 Ulrich Drepper <drepper@redhat.com>
4097
4098 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
4099 internal use.
4100 * allocatestack.c (__nptl_setxid): New function.
4101 * descr.h (struct xid_command): Define type.
4102 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
4103 (sighandler_setxid): New function.
4104 (__pthread_initialize_minimal): Register sighandler_setxid for
4105 SIGCANCEL.
4106 * pt-allocrtsig.c: Update comment.
4107 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
4108 Declare __nptl_setxid.
4109 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
4110 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
4111 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4112 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4113 and pthread_setresuid_np.
4114 * pthread_setgid_np.c: New file.
4115 * pthread_setuid_np.c: New file.
4116 * pthread_setegid_np.c: New file.
4117 * pthread_seteuid_np.c: New file.
4118 * pthread_setregid_np.c: New file.
4119 * pthread_setreuid_np.c: New file.
4120 * pthread_setresgid_np.c: New file.
4121 * pthread_setresuid_np.c: New file.
4122 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
4123 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
4124 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
4125 and pthread_setresuid_np.
4126 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
4127 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
4128 pthread_setregid, and pthread_setresgid.
4129
1ab1fa6f
UD
41302004-09-18 Ulrich Drepper <drepper@redhat.com>
4131
4132 * allocatestack.c (allocate_stack): Return EAGAIN instead of
4133 ENOMEM when out of memory.
4134
ae9e6b36
RM
41352004-09-10 Roland McGrath <roland@redhat.com>
4136
4137 [BZ #379]
4138 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
4139 code, since we don't try to use the broken CLONE_STOPPED any more.
4140 * pthread_create.c (start_thread): Likewise.
4141
424bd2f8
RH
41422004-09-15 Richard Henderson <rth@redhat.com>
4143
4144 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
4145
17b8a52d
UD
41462004-09-01 David Mosberger <davidm@hpl.hp.com>
4147
4148 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
4149 (__libc_unwind_longjmp): Delete macro and declare as function.
4150 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
4151 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
4152 nptl directory.
4153 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
4154 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
4155 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
4156
ccc63b07
UD
41572004-09-12 Ulrich Drepper <drepper@redhat.com>
4158
4159 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
4160 for __USE_XOPEN2K.
4161 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
4162 types also for __USE_XOPEN2K.
4163 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4164 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4165 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4166 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4167 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4168 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4169 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4170 [BZ #320]
4171
31f93b3b
UD
41722004-09-08 Ulrich Drepper <drepper@redhat.com>
4173
4174 * sysdeps/pthread/pthread.h
4175 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
4176 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
4177 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
4178 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
4179 [BZ #375]
4180
e0329987
UD
41812004-09-07 Ulrich Drepper <drepper@redhat.com>
4182
590b40f7
UD
4183 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
4184 PSEUDO to be used with . prefix.
4185
67254a97
UD
4186 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
4187 Use atomic_increment instead of atomic_exchange_and_add.
4188 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
4189 Likewise.
4190 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4191 Likewise.
4192 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
4193 Likewise.
4194
4195 * allocatestack.c (allocate_stack): Use atomic_increment_val
4196 instead of atomic_exchange_and_add.
4197 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
4198 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
4199 Likewise.
4200 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
4201 Likewise.
4202
e0329987
UD
4203 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
4204 the initialization function might throw.
4205
42d86dd6 42062005-09-05 Richard Henderson <rth@redhat.com>
e0329987 4207
42d86dd6
RH
4208 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4209 Move definition inside libpthread, libc, librt check. Provide
4210 definition for rtld.
4211
73f7c32c
UD
42122004-09-02 Ulrich Drepper <drepper@redhat.com>
4213
f76c8499
UD
4214 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
4215 * sysdeps/i386/jmpbuf-unwind.h: Likewise
4216 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
4217 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
4218 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
4219 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
4220 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
4221 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
4222 * unwind.c: Use it.
4223
73f7c32c
UD
4224 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4225 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
4226 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4227 Likewise.
4228 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4229 Decrement __nwaiters. If pthread_cond_destroy has been called and
4230 this is the last waiter, signal pthread_cond_destroy caller and
4231 avoid using the pthread_cond_t structure after unlock.
4232 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4233 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4234 Read clock type from the least significant bits of __nwaiters instead
4235 of __clock.
4236 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4237 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
4238
42392004-08-31 Jakub Jelinek <jakub@redhat.com>
4240
4241 [BZ #342]
4242 * Makefile (tests): Add tst-cond20 and tst-cond21.
4243 * tst-cond20.c: New test.
4244 * tst-cond21.c: New test.
4245 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
4246 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
4247 it unsigned int.
4248 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4249 Likewise.
4250 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4251 (pthread_cond_t): Likewise.
4252 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4253 Likewise.
4254 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4255 Likewise.
4256 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4257 Likewise.
4258 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
4259 (cond_nwaiters): New.
4260 (clock_bits): New.
4261 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
4262 if there are waiters not signalled yet.
4263 Wait until all already signalled waiters wake up.
4264 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
4265 __nwaiters. If pthread_cond_destroy has been called and this is the
4266 last waiter, signal pthread_cond_destroy caller and avoid using
4267 the pthread_cond_t structure after unlock.
4268 (__pthread_cond_wait): Increment __nwaiters in the beginning,
4269 decrement it when leaving. If pthread_cond_destroy has been called
4270 and this is the last waiter, signal pthread_cond_destroy caller.
4271 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4272 Likewise. Read clock type from the least significant bits of
4273 __nwaiters instead of __clock.
4274 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
4275 whether clock ID can be encoded in COND_CLOCK_BITS bits.
4276 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
4277 clock type just from the last COND_CLOCK_BITS bits of value.
4278 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
4279 instead of __clock, just from second bit of condattr's value.
4280
409f7493
UD
42812004-08-30 Jakub Jelinek <jakub@redhat.com>
4282
4283 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
4284 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
4285 != 64.
4286 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4287
92c6ccd1
RM
42882004-08-15 Roland McGrath <roland@frob.com>
4289
4290 * pthread_atfork.c: Update copyright terms including special exception
4291 for these trivial files, which are statically linked into executables
4292 that use dynamic linking for the significant library code.
4293
4d004cfb
UD
42942004-08-09 Jakub Jelinek <jakub@redhat.com>
4295
4296 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
4297 pthread_rwlock_rdlock.
4298 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
4299 Decrease __nr_readers_queued after reacquiring lock.
4300 * sysdeps/pthread/pthread_rwlock_timedrdlock
4301 (pthread_rwlock_timedrdlock): Likewise.
4302 Reported by Bob Cook <bobcook47@hotmail.com>.
4303
90595fb6
RM
43042004-08-11 Jakub Jelinek <jakub@redhat.com>
4305
4306 * tst-rwlock14.c (tf): Read main thread handle from *ARG
4307 before pthread_barrier_wait.
4308
fa46f7ab
UD
43092004-08-07 Ulrich Drepper <drepper@redhat.com>
4310
4311 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4312 Remove unnecessary exception handling data.
4313
15ef4b55
UD
43142004-07-23 Jakub Jelinek <jakub@redhat.com>
4315
4316 [BZ #284]
4317 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
4318 instead of clockid_t.
4319
4fb907b7
RM
43202004-07-21 Roland McGrath <roland@redhat.com>
4321
4322 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
4323
43242004-07-19 Roland McGrath <roland@redhat.com>
4325
4326 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
4327
8f73811b
RM
43282004-07-02 Roland McGrath <roland@redhat.com>
4329
4330 * configure: Don't exit.
4331
290639c3
UD
43322004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4333
4334 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4335 (__pthread_cond_timedwait): Check for invalid nanosecond in
4336 timeout value.
4337
8e5aaad9
UD
43382004-07-07 Ulrich Drepper <drepper@redhat.com>
4339
4340 * Makefile: Add rules to build and run tst-fini1.
4341 * tst-fini1.c: New file.
4342 * tst-fini1mod.c: New file.
4343
ce6e047f
UD
43442004-07-05 Ulrich Drepper <drepper@redhat.com>
4345
4346 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
4347 if no cancellation support is needed.
4348 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4349 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4350 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4351 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4352 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4353 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4354 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4355 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4356 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4357
4358 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
4359 only if not already defined.
4360
9b9ef823
UD
43612004-07-05 Jakub Jelinek <jakub@redhat.com>
4362
2dd18ce2
UD
4363 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
4364 constraint "m" instead of "0" for futex.
4365
9b9ef823
UD
4366 * shlib-versions: Add powerpc64-.*-linux.*.
4367
38205402
UD
43682004-07-04 Jakub Jelinek <jakub@redhat.com>
4369
4370 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
4371 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
4372 for valid tv_nsec.
4373 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
4374 1 billion and 64-bit tv_nsec which is valid when truncated to 32
4375 bits.
4376
78a9c837
RM
43772004-06-29 Roland McGrath <roland@redhat.com>
4378
4379 * Banner: NPTL no longer has its own version number.
4380 * Makefile (nptl-version): Variable removed.
4381 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
4382 using $(version), the glibc version number.
4383
d3d35527
UD
43842004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4385
4386 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4387 Fix branch offset for a PLT entry.
4388 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
4389 Likewise.
4390 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
4391 Likewise.
4392 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
4393 Likewise.
4394 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
4395 Likewise.
4396
346f18ae
UD
43972004-06-28 Jakub Jelinek <jakub@redhat.com>
4398
4399 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
4400 unconditionally.
4401
f3a19754
UD
44022004-06-28 Jakub Jelinek <jakub@redhat.com>
4403
4404 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4405 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
4406 instead of tv_sec.
4407 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
4408 (pthread_rwlock_timedrdlock): Likewise.
4409
539842a4
UD
44102004-06-22 Jakub Jelinek <jakub@redhat.com>
4411
4412 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4413 Set __r7 to val, not mutex.
4414
46f4c578
UD
44152004-06-27 Ulrich Drepper <drepper@redhat.com>
4416
4417 * Makefile: Add rules to build tst-rwlock14.
4418 * tst-rwlock14.c: New file.
4419
44202004-06-24 Boris Hu <boris.hu@intel.com>
4421
4422 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
4423 check.
4424 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
4425
9898e99c
AJ
44262004-06-19 Andreas Jaeger <aj@suse.de>
4427
4428 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
4429 assembler in last patch.
4430
7c3164bc
UD
44312004-06-17 Ulrich Drepper <drepper@redhat.com>
4432
4433 * sysdeps/pthread/pthread_cond_timedwait.c
4434 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
4435 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4436 (__pthread_cond_timedwait): Check for invalid nanosecond in
4437 timeout value.
4438 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4439 * tst-cond19.c: New file.
4440 * Makefile: Add rules to build and run tst-cond19.
4441
72e61500
UD
44422004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
4443
4444 * tst-context1.c (GUARD_PATTERN): Defined.
4445 (tst_context_t): Define struct containing ucontext_t & guard words.
4446 (ctx): Declare as an array of tst_context_t.
4447 (fct): Verify uc_link & guard words are still valid.
4448 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
4449
7c370086
UD
44502004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4451
4452 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4453 Add __data.__futex field, reshuffle __data.__clock.
4454 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
4455 (__pthread_cond_signal): Increment __futex at the same time as
4456 __wakeup_seq or __total_seq. Pass address of __futex instead of
4457 address of low 32-bits of __wakeup_seq to futex syscall.
4458 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4459 (__pthread_cond_wait): Likewise. Pass __futex value from before
4460 releasing internal lock to FUTEX_WAIT.
4461 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
4462 (__pthread_cond_timedwait): Likewise.
4463 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4464 (FUTEX_CMP_REQUEUE): Define.
4465 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4466 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4467 Pass __futex value from before the unlock and __futex address instead
4468 of address of low 32-bits of __wakeup_seq to futex syscall.
4469 Fallback to FUTEX_WAKE all on any errors.
4470
a9e526e7
RM
44712004-06-08 Jakub Jelinek <jakub@redhat.com>
4472
4473 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
4474 comment typo.
4475 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
4476 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
4477 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
4478 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
4479 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
4480
f1847a84
RM
44812004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
4482
4483 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
4484 Add memory clobber to inline assembly.
4485 (__lll_mutex_trylock): Likewise.
4486 (__lll_mutex_cond_trylock): Likewise.
4487
f7c81e1a
UD
44882004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
4489
4490 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
4491 Pass val argument as 6th system call argument in %r7.
4492
75fccede
UD
44932004-05-21 Jakub Jelinek <jakub@redhat.com>
4494
4495 * Makefile (tests): Add tst-cond16.
4496 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
4497 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
4498 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4499 Add __data.__futex field, reshuffle __data.__clock.
4500 * sysdeps/unix/sysv/linux/i386/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/i386/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/i386/pthread_cond_timedwait.S
4508 (__pthread_cond_timedwait): Likewise.
4509 * sysdeps/unix/sysv/linux/i386/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 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
4517 Define.
4518 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4519 internally. Return non-zero if error, zero if success.
4520 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4521 Add __data.__futex field, reshuffle __data.__clock.
4522 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
4523 Define.
4524 (lll_futex_requeue): Add val argument, return 1 unconditionally
4525 for the time being.
4526 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
4527 Add __data.__futex field, reshuffle __data.__clock.
4528 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4529 Define.
4530 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4531 internally. Return non-zero if error, zero if success.
4532 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
4533 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
4534 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
4535 Define.
4536 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4537 internally. Return non-zero if error, zero if success.
4538 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
4539 Add __data.__futex field, reshuffle __data.__clock.
4540 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
4541 Define.
4542 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
4543 internally. Return non-zero if error, zero if success.
4544 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
4545 Add __data.__futex field, reshuffle __data.__clock.
4546 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
4547 Add __data.__futex field, reshuffle __data.__clock.
4548 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
4549 Increment __futex at the same time as __wakeup_seq or __total_seq.
4550 Pass address of __futex instead of address of low 32-bits of
4551 __wakeup_seq to futex syscall.
4552 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4553 Pass __futex value from before releasing internal lock
4554 to FUTEX_WAIT.
4555 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4556 Likewise. Avoid unnecessary shadowing of variables.
4557 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
4558 Set __futex to 2 * __total_seq. Pass __futex value from before the
4559 unlock and __futex address instead of address of low 32-bits of
4560 __wakeup_seq to futex_requeue macro, adjust for new return value
4561 meaning.
4562 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
4563 (__pthread_cond_signal): Increment __futex at the same time as
4564 __wakeup_seq or __total_seq. Pass address of __futex instead of
4565 address of low 32-bits of __wakeup_seq to futex syscall.
4566 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4567 (__pthread_cond_wait): Likewise. Pass __futex value from before
4568 releasing internal lock to FUTEX_WAIT.
4569 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4570 (__pthread_cond_timedwait): Likewise.
4571 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4572 (FUTEX_CMP_REQUEUE): Define.
4573 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
4574 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
4575 Pass __futex value from before the unlock and __futex address instead
4576 of address of low 32-bits of __wakeup_seq to futex syscall.
4577 Fallback to FUTEX_WAKE all on any errors.
4578
45792004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4580
4581 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
4582 Add nop to align the end of critical section.
4583 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
4584
fbf86dda
UD
45852004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4586
4587 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
4588 Add __broadcast_seq field.
4589 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
4590 all waiters as woken with woken_seq and bump broadcast counter.
4591 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
4592 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
4593 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4594 Comment typo fixes. Avoid returning -ETIMEDOUT.
4595
45962004-06-01 Ulrich Drepper <drepper@redhat.com>
4597
4598 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4599 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
4600 Reported by Kaz Kojima.
4601
ffdd5e50
UD
46022004-05-25 Jakub Jelinek <jakub@redhat.com>
4603
4604 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
4605
3abc82c8
UD
46062004-05-21 Jakub Jelinek <jakub@redhat.com>
4607
4608 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
4609 __broadcast_seq with bc_seq after acquiring internal lock instead of
4610 before it.
4611
893a3511
UD
46122004-05-18 Jakub Jelinek <jakub@redhat.com>
4613
4614 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
4615 compilation.
4616 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4617 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
4618 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4619 (pthread_cond_t): Add __data.__broadcast_seq field.
4620 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
4621 (FRAME_SIZE): Define.
4622 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
4623 Comment typo fixes.
4624 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
4625 Define.
4626 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
4627 typo fixes.
4628 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
4629 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
4630 fixes.
4631
46322004-05-18 Ulrich Drepper <drepper@redhat.com>
4633
4634 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
4635 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
4636 Add __broadcast_seq field.
4637 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4638 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4639 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4640 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4641 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4642 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
4643 all waiters as woken with woken_seq and bump broadcast counter.
4644 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
4645 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
4646 __broadcast_seq field.
4647 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4648 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
4649 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4650 * pthread_cond_init.c: Initialize __broadcast_seq field.
4651 * Makefile (tests): Add tst-cond17 and tst-cond18.
4652 Add .NOTPARALLEL goal.
4653 * tst-cond16.c: New file. From Jakub.
4654 * tst-cond17.c: New file. From Jakub.
4655 * tst-cond18.c: New file. From Jakub.
4656
4123718e
UD
46572004-05-16 Ulrich Drepper <drepper@redhat.com>
4658
4659 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
4660 unwind info.
4661
4662 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
4663 Parametrize frame size. Correct some unwind info.
4664 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4665
2d7ae210
UD
46662004-05-04 Jakub Jelinek <jakub@redhat.com>
4667
4668 * tst-stack3.c: Note testing functionality beyond POSIX.
4669
50c2b6d7
UD
46702004-05-04 Jakub Jelinek <jakub@redhat.com>
4671
4672 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
4673 Change conditional from ifdef to if.
4674
27b02589
UD
46752004-04-23 Jakub Jelinek <jakub@redhat.com>
4676
4677 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
4678 SYSDEP_CANCEL_ERROR): Define.
4679 (PSEUDO): Use it.
4680
4bb8fc33
UD
46812004-05-01 Jakub Jelinek <jakub@redhat.com>
4682
4683 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
4684
f9a06dc1
UD
46852004-04-20 Jakub Jelinek <jakub@redhat.com>
4686
4687 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
4688
d3b52028
UD
46892004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4690
4691 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
4692 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4693 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
4694 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
4695
a5dd0a6c
UD
46962004-04-19 Ulrich Drepper <drepper@redhat.com>
4697
4698 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
4699 thread has all signals blocked.
4700
620c3354
AJ
47012004-04-18 Andreas Jaeger <aj@suse.de>
4702
4703 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
4704 (SEM_VALUE_MAX): Add missing brace.
4705
1683daeb
UD
47062004-04-17 Jakub Jelinek <jakub@redhat.com>
4707
4708 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
4709 in rt subdir.
4710 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
4711 * sysdeps/pthread/tst-mqueue8x.c: New test.
4712 * tst-cancel4.c: Update comment about message queues.
4713
4714 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
4715 return it_value { 0, 0 }.
4716 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
4717 like SIGEV_SIGNAL.
4718 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
4719 assertion for SIGEV_NONE.
4720 (thread_attr_compare): Compare all attributes, not just a partial
4721 subset.
4722
47232004-04-17 Jakub Jelinek <jakub@redhat.com>
4724
4725 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
4726
f532641d
UD
47272004-04-17 Ulrich Drepper <drepper@redhat.com>
4728
4729 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
4730 Just use a plain number.
4731 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
4732 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4733 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4734 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4735 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4736 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4737 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4738
7eb7fdda
UD
47392004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4740
53392906
UD
4741 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
4742 frame info.
4743 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 4744
d7ba1313
UD
47452004-04-15 Jakub Jelinek <jakub@redhat.com>
4746
4747 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
4748 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
4749 of calling sigwaitinfo.
4750
5adac0e4
UD
47512004-04-16 Ulrich Drepper <drepper@redhat.com>
4752
4753 * allocatestack.c (allocate_stack): Set reported_guardsize
4754 unconditionally.
4755 * pthread_getattr_np.c (pthread_getattr_np): Use
4756 reported_guardsize instead of guardsize.
4757 * descr.h (struct pthread): Add reported_guardsize field.
4758
f93fa7d4
UD
47592004-04-13 Jakub Jelinek <jakub@redhat.com>
4760
4761 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
4762
1b82c6c7
UD
47632004-04-12 Ulrich Drepper <drepper@redhat.com>
4764
4765 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
4766
47672004-04-08 Jakub Jelinek <jakub@redhat.com>
4768
4769 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
4770 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
4771 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
4772 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
4773 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
4774 Define.
4775 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
4776 (_POSIX_MESSAGE_PASSING): Define.
4777 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
4778 (_POSIX_MESSAGE_PASSING): Define.
4779 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
4780 (_POSIX_MESSAGE_PASSING): Define.
4781
e6eb894e
UD
47822004-04-04 Ulrich Drepper <drepper@redhat.com>
4783
4784 * tst-context1.c (fct): Check whether correct stack is used.
4785
1e084487
UD
47862004-04-03 Ulrich Drepper <drepper@redhat.com>
4787
4e73e115
UD
4788 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
4789 matching constraints for asm mem parameters.
4790
1e084487
UD
4791 * tst-clock2.c (tf): Don't define unless needed.
4792
feca5e0b
UD
47932004-03-30 H.J. Lu <hongjiu.lu@intel.com>
4794
4795 * Makefile (link-libc-static): Use $(static-gnulib) instead of
4796 $(gnulib).
4797
3fa21fd8
UD
47982004-03-30 Ulrich Drepper <drepper@redhat.com>
4799
4800 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
4801 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
4802 * pthreadP.h: Declare __nptl_deallocate_tsd.
4803 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
4804 Adjust caller.
4805
4806 * Makefile (tests): Add tst-tsd5.
4807 * tst-tsd5.c: New file.
4808
8e32efa6
UD
48092004-03-29 Ulrich Drepper <drepper@redhat.com>
4810
4811 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4812 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
4813 is SHLIB_COMPAT check.
4814 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
4815 (__pthread_attr_getaffinity_old): Likewise.
4816 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4817 (__pthread_getaffinity_old): Likewise.
4818 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4819 (__pthread_setaffinity_old): Likewise.
4820
eec8b6ca
UD
48212004-03-26 Ulrich Drepper <drepper@redhat.com>
4822
4823 * allocatestack.c (_make_stacks_executable): Call
4824 _dl_make_stack_executable first.
4825
db2f05ba
RM
48262004-03-24 Roland McGrath <roland@redhat.com>
4827
4828 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
4829 constraint instead of "0".
4830
6abbc501
UD
48312004-03-24 Ulrich Drepper <drepper@redhat.com>
4832
68dc4dcb
UD
4833 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4834 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
4835
6abbc501
UD
4836 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
4837 code to avoid warning.
4838
865e14d9
AJ
48392004-03-24 Andreas Jaeger <aj@suse.de>
4840
4841 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
4842 (__pthread_attr_setaffinity_old): Remove const.
4843
16b06b70
UD
48442004-03-23 Ulrich Drepper <drepper@redhat.com>
4845
2c0b891a
UD
4846 * sysdeps/unix/sysv/linux/smp.h: New file.
4847 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
4848 * init.c: Define __is_smp.
4849 (__pthread_initialize_minimal_internal): Call is_smp_system to
4850 initialize __is_smp.
4851 * pthreadP.h: Declare __is_smp.
4852 Define MAX_ADAPTIVE_COUNT is necessary.
4853 * pthread_mutex_init.c: Add comment regarding __spins field.
4854 * pthread_mutex_lock.c: Implement adaptive mutex type.
4855 * pthread_mutex_timedlock.c: Likewise.
4856 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
4857 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
4858 Add __spins field.
4859 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4860 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4861 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4862 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4863 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4864 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4865 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4866 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
4867 lll_mutex_cond_trylock.
4868 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4869 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4870 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4871 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
4872 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
4873 Define BUSY_WAIT_NOP.
4874 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4875 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
4876
4877 * tst-mutex5.c: Add support for testing adaptive mutexes.
4878 * tst-mutex7.c: Likewise.
4879 * tst-mutex5a.c: New file.
4880 * tst-mutex7a.c: New file.
4881 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
4882
565699e4
UD
4883 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4884 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 4885 vgettimeofday call might destroy the content.
565699e4 4886
7fe1586f
UD
4887 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
4888 @pause in the loop.
4889
e408880b
UD
4890 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4891 No need to restrict type of ret. Make it int. Add comment.
4892
16b06b70
UD
4893 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
4894 Remove unnecessary setne instruction.
4895
61645263
UD
48962004-03-22 Jakub Jelinek <jakub@redhat.com>
4897
4898 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4899 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
4900 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
4901 If realloc fails, break out of the loop.
4902
e3d4c585
AJ
49032004-03-20 Andreas Jaeger <aj@suse.de>
4904
4905 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4906 (__pthread_setaffinity_old): Fix interface.
4907 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
4908 (__pthread_getaffinity_old): Likewise.
4909
4910 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4911 (__pthread_setaffinity_new): Remove duplicate declaration.
4912
3abb1ff7
UD
49132004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4914
4915 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
4916 the return value to a safe register.
4917 (CDISABLE): Set the function argument correctly.
4918
07bd2a3f
UD
49192004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4920
4921 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
4922 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
4923 Rewrite so that only one locked memory operation per round is needed.
4924 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
4925 (pthread_barrier_wait): After wakeup, release lock only when the
4926 last thread stopped using the barrier object.
4927 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
4928 (__pthread_cond_wait): Don't store mutex address if the current
4929 value is ~0l. Add correct cleanup support and unwind info.
4930 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4931 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
4932 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
4933 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
4934 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
4935 Add correct cleanup support and unwind info.
4936 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
4937 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
4938 information for syscall wrappers.
4939
14c35863
UD
49402004-03-18 Ulrich Drepper <drepper@redhat.com>
4941
4942 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
4943 cpusetsize field, remove next.
4944 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
4945 parameter for size of the CPU set.
4946 (pthread_setaffinity_np): Likewise.
4947 (pthread_attr_getaffinity_np): Likewise.
4948 (pthread_attr_setaffinity_np): Likewise.
4949 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
4950 interface change, keep compatibility code.
4951 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4952 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
4953 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
4954 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
4955 __pthread_getaffinity_np.
4956 * Versions: Add version for changed interfaces.
4957 * tst-attr3.c: Adjust test for interface change.
4958 * pthread_getattr_np.c: Query the kernel about the affinity mask with
4959 increasing buffer sizes.
4960 * pthread_attr_destroy.c: Remove unused list handling.
4961 * pthread_attr_init.c: Likewise.
4962
8e115d80
RM
49632004-03-17 Roland McGrath <roland@redhat.com>
4964
4965 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
4966 first argument to clock_getres so we ever enable kernel timers.
4967
e3b22ad3
UD
49682004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
4969
4970 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
4971
841153fa
RH
49722004-03-12 Richard Henderson <rth@redhat.com>
4973
e3b22ad3
UD
4974 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
4975 oldvalue from CENABLE to CDISABLE.
841153fa 4976
932dfea7
UD
49772004-03-12 Ulrich Drepper <drepper@redhat.com>
4978
4979 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
4980 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4981 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4982 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4983
9852f6dc
RH
49842004-03-11 Richard Henderson <rth@redhat.com>
4985
4986 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
4987 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
4988 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
4989
43513fb7
UD
49902004-03-11 Jakub Jelinek <jakub@redhat.com>
4991
4992 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
4993 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
4994 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
4995
49962004-03-11 Jakub Jelinek <jakub@redhat.com>
4997
4998 * forward.c (__pthread_cond_broadcast_2_0,
4999 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
5000 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
5001 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
5002
8a3e10e0
UD
50032004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5004
5005 * sysdeps/sh/tcb-offsets.sym: Add PID.
5006 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
5007 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
5008
6d3a2bec
UD
50092004-03-10 Ulrich Drepper <drepper@redhat.com>
5010
5011 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
5012 include <sysdep-cancel.h>, vfork is no cancellation point.
5013 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
5014 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
5015 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
5016
d3a4a571
UD
50172004-03-10 Jakub Jelinek <jakub@redhat.com>
5018
73b4ce64
UD
5019 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
5020 libc_hidden_def.
5021 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
5022 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
5023 Likewise.
5024 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
5025 Likewise.
5026 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
5027 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
5028 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
5029 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
5030 of DO_CALL_VIA_BREAK. Work around a gas problem.
5031
d682a515
UD
5032 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
5033 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
5034 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
5035 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
5036 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
5037 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
5038
5039 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
5040 a local register for saving old PID. Negate PID in parent upon exit.
5041
d3a4a571
UD
5042 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
5043 tcb-offsets.h.
5044 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
5045 before syscall, set to the old value in the parent afterwards.
5046 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
5047 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
5048 tcb-offsets.h.
5049 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
5050 before syscall, set to the old value in the parent afterwards.
5051 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
5052 * sysdeps/s390/tcb-offsets.sym: Add PID.
5053
5054 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
5055 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
5056 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
5057 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
5058 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
5059 * sysdeps/sparc/tcb-offsets.sym: Add PID.
5060
50612004-03-10 Andreas Schwab <schwab@suse.de>
5062
5063 * sysdeps/ia64/tcb-offsets.sym: Add PID.
5064 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
5065 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
5066
3f2fb223 50672004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 5068
3f2fb223
UD
5069 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
5070 * tst-cancel21.c (do_one_test): Likewise.
5071 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 5072
8b9d6054
UD
50732004-02-09 Jakub Jelinek <jakub@redhat.com>
5074
5075 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
5076 if non-zero and set to INT_MIN if zero.
5077 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
5078 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
5079 (SAVE_PID, RESTORE_PID): Define.
5080 (__vfork): Use it.
5081 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
5082 Use relative path to avoid including NPTL i386/vfork.S.
5083 (SAVE_PID, RESTORE_PID): Define.
5084 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
5085 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
5086 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
5087 tst-vfork2x.
5088 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
5089 * tst-vfork1.c: New test.
5090 * tst-vfork2.c: New test.
5091 * tst-vfork1x.c: New test.
5092 * tst-vfork2x.c: New test.
5093
02287d05
UD
50942004-03-08 Ulrich Drepper <drepper@redhat.com>
5095
c072ef6d 5096 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 5097 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 5098 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 5099 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 5100
d4acd24b
UD
51012004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
5102
5103 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
5104
8acb4b81
UD
51052004-03-08 H.J. Lu <hongjiu.lu@intel.com>
5106
5107 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
5108 _rtld_global_ro.
5109
4d1a02ef
UD
51102004-03-07 Ulrich Drepper <drepper@redhat.com>
5111
001836c8 5112 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 5113 _rtld_global_ro.
001836c8 5114
4d1a02ef
UD
5115 * tst-once4.c: Remove unnecessary macro definition.
5116
5117 * tst-mutex7.c (do_test): Limit thread stack size.
5118 * tst-once2.c (do_test): Likewise.
5119 * tst-tls3.c (do_test): Likewise.
5120 * tst-tls1.c (do_test): Likewise.
5121 * tst-signal3.c (do_test): Likewise.
5122 * tst-kill6.c (do_test): Likewise.
5123 * tst-key4.c (do_test): Likewise.
5124 * tst-join4.c (do_test): Likewise.
5125 * tst-fork1.c (do_test): Likewise.
5126 * tst-context1.c (do_test): Likewise.
5127 * tst-cond2.c (do_test): Likewise.
5128 * tst-cond10.c (do_test): Likewise.
5129 * tst-clock2.c (do_test): Likewise.
5130 * tst-cancel10.c (do_test): Likewise.
5131 * tst-basic2.c (do_test): Likewise.
5132 * tst-barrier4.c (do_test): Likewise.
5133
aa420660
UD
51342004-03-05 Ulrich Drepper <drepper@redhat.com>
5135
5136 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
5137
cff08c81
UD
51382004-03-01 Ulrich Drepper <drepper@redhat.com>
5139
5140 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5141 (__pthread_cond_timedwait): Optimize wakeup test.
5142 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5143 (__pthread_cond_wait): Likewise.
5144 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
5145 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5146 Likewise.
5147
b7fe377c
UD
51482004-02-29 Ulrich Drepper <drepper@redhat.com>
5149
5150 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5151 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
5152 the atomic instruction needed.
5153 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5154 (__lll_mutex_lock_wait): Likewise.
5155
4c771a3b
UD
51562004-02-28 Ulrich Drepper <drepper@redhat.com>
5157
5158 * Makefile (tests): Add tst-cond14 and tst-cond15.
5159 * tst-cond14.c: New file.
5160 * tst-cond15.c: New file.
5161
a2c33d5a
UD
51622004-02-27 Ulrich Drepper <drepper@redhat.com>
5163
5164 * sysdeps/pthread/createthread.c (create_thread): Remove use of
5165 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
5166 needs to be implemented differently to be useful.
5167
261eada2
UD
51682004-02-26 Ulrich Drepper <drepper@redhat.com>
5169
14ffbc83
UD
5170 * pthread_attr_setschedparam.c: Don't test priority against limits
5171 here. Set ATTR_FLAG_SCHED_SET flag.
5172 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
5173 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
5174 from parent thread to child. If attribute is used and scheduling
5175 parameters are not inherited, copy parameters from attribute or
5176 compute them. Check priority value.
5177 * pthread_getschedparam.c: If the parameters aren't known yet get
5178 them from the kernel.
5179 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
5180 ATTR_FLAG_POLICY_SET flag for thread.
5181 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
5182 and ATTR_FLAG_POLICY_SET.
5183
5184 * sysdeps/pthread/createthread.c: Use tgkill if possible.
5185
261eada2
UD
5186 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
5187 fail if stack address hasn't been set. Just return 0.
5188
701d185c
UD
51892004-02-25 Ulrich Drepper <drepper@redhat.com>
5190
25b8e63c
UD
5191 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
5192 libpthread for the files in this list.
5193 (CFLAGS-tst-unload): Removed.
5194 * tst-unload.c (do_test): Don't use complete path for
5195 LIBPHREAD_SO.
5196
701d185c
UD
5197 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
5198 tst-_res1mod2.
5199
a8fd5a02
UD
52002004-02-22 Ulrich Drepper <drepper@redhat.com>
5201
5202 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5203 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
5204 operation per round is needed.
5205 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
5206 (__lll_mutex_lock_wait): Likewise.
5207
dd0b7b19
UD
52082004-02-20 Ulrich Drepper <drepper@redhat.com>
5209
5210 * tst-cancel9.c (cleanup): Don't print to stderr.
5211
5990e1fe
UD
52122004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5213
5214 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
5215
33ab3b66
UD
52162004-02-20 Jakub Jelinek <jakub@redhat.com>
5217
1be3130e
UD
5218 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
5219 (__syscall_error_handler2): Call CDISABLE.
5220 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
5221 (__syscall_error_handler2): Call CDISABLE.
5222
8ba5025a
UD
5223 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5224 Release lock before the loop, don't reacquire it.
8ba5025a 5225
33ab3b66
UD
5226 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
5227
11986c68
UD
52282004-02-19 Andreas Schwab <schwab@suse.de>
5229
5230 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5231 Fix last change.
5232
dc391246
UD
52332004-02-18 Ulrich Drepper <drepper@redhat.com>
5234
37c054c7
UD
5235 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5236 (pthread_barrier_wait): After wakeup, release lock only when the
5237 last thread stopped using the barrier object.
5238 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
5239 (pthread_barrier_wait): Likewise.
5240 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
5241 Likewise.
5242 * Makefile (tests): Add tst-barrier4.
5243 * tst-barrier4.c: New file.
dc391246
UD
5244
5245 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5246 (__pthread_cond_timedwait): Perform timeout test while holding
5247 internal lock to prevent wakeup race.
5248 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5249 * sysdeps/pthread/pthread_cond_timedwait.c
5250 (__pthread_cond_timedwait): Likewise.
5251 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5252 (__pthread_cond_timedwait): Likewise.
5253
4a08113c
UD
52542004-02-18 Jakub Jelinek <jakub@redhat.com>
5255
5256 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
5257 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
5258 * Makefile (tests): Add tst-rwlock13.
5259 * tst-rwlock13.c: New test.
5260
71b1675e
UD
52612004-02-16 Ulrich Drepper <drepper@redhat.com>
5262
5263 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5264 (__condvar_tw_cleanup): Little optimization.
5265 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
5266
cd9fdc72
UD
52672004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
5268
5269 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
5270 libpthread as "lib" parameter to SHLIB_COMPAT.
5271 (__novmx_siglongjmp): Fix typo in function name.
5272 (__novmx_longjmp): Fix typo in function name.
5273
82038750
UD
52742004-02-13 Ulrich Drepper <drepper@redhat.com>
5275
b078c591
UD
5276 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
5277 __builtin_expect.
5278
82038750
UD
5279 * sysdeps/generic/pt-longjmp.c: Moved to...
5280 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
5281
e2982bf0
UD
52822004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
5283
5284 * Makefile (libpthread-routines): Add pt-cleanup.
5285 * pt-longjmp.c: Removed.
5286 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
5287 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
5288 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
5289 Version longjmp, siglongjmp for GLIBC_2.3.4.
5290 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
5291
3730d95c
UD
52922004-02-13 Ulrich Drepper <drepper@redhat.com>
5293
219304ec
UD
5294 * sysdeps/pthread/pthread_cond_timedwait.c
5295 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
5296 Reuse code. Add __builtin_expects.
5297
3730d95c
UD
5298 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5299 (__pthread_cond_timedwait): Get internal lock in case timeout has
5300 passed before the futex syscall.
5301 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5302
5673ccc1
UD
53032004-01-20 Ulrich Drepper <drepper@redhat.com>
5304
debddf64
UD
5305 * allocatestack.c: Pretty printing.
5306
5673ccc1
UD
5307 * sysdeps/pthread/createthread.c (create_thread): Don't add
5308 CLONE_DETACHED bit if it is not necessary.
5309
6bae8725
UD
53102004-01-16 Ulrich Drepper <drepper@redhat.com>
5311
5312 * pthread_getattr_np.c: Include ldsodefs.h.
5313
ff151400
RH
53142004-01-16 Richard Henderson <rth@redhat.com>
5315
6bae8725
UD
5316 * allocatestack.c: Don't declare __libc_stack_end.
5317 * init.c (__pthread_initialize_minimal_internal): Likewise.
5318 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 5319
ba683832
RH
53202004-01-15 Richard Henderson <rth@redhat.com>
5321
5322 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
5323 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
5324 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
5325 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
5326 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
5327 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
5328 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
5329 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
5330
630d93a7
UD
53312004-01-14 Ulrich Drepper <drepper@redhat.com>
5332
219304ec 5333 * init.c (pthread_functions): Make array const.
630d93a7 5334
d1fc817e
UD
53352004-01-13 Ulrich Drepper <drepper@redhat.com>
5336
5337 * allocatestack.c (__make_stacks_executable): Change interface.
5338 Check parameters. Pass parameter on to libc counterpart.
5339 * pthreadP.h: Change declaration.
5340
dc927809
RH
53412004-01-13 Richard Henderson <rth@redhat.com>
5342
10677727
UD
5343 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
5344 prototype form.
5345 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
5346 Likewise.
5347
d1fc817e
UD
5348 * sysdeps/alpha/Makefile: New file.
5349 * sysdeps/alpha/tcb-offsets.sym: New file.
5350 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
5351 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 5352
d1fc817e
UD
5353 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
5354 on powerpc version.
dc927809 5355
249a3d0c
UD
53562004-01-08 Jakub Jelinek <jakub@redhat.com>
5357
5358 * Makefile (tests): Add tst-backtrace1.
5359 * tst-backtrace1.c: New test.
5360
763c0490
RM
53612003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
5362
5363 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
5364 register as second parameter to the REGISTER macro.
5365 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
5366 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
5367 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
5368 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
5369 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
5370 of thread register as second parameter to REGISTER macro in 64 case.
5371
c7baafd5
UD
53722004-01-03 Ulrich Drepper <drepper@redhat.com>
5373
5374 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
5375 (CFLAGS-getpid.o): Defined.
5376 (CFLAGS-getpid.os): Defined.
5377
25ac0258
UD
53782003-12-31 Ulrich Drepper <drepper@redhat.com>
5379
5380 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
5381 returned for main thread does not overlap with any other VMA.
5382 Patch by Jakub Jelinek.
5383
795985e4
UD
53842003-12-29 Jakub Jelinek <jakub@redhat.com>
5385
5386 * tst-raise1.c: Include stdio.h.
5387
cb5b9388
UD
53882003-12-23 Jakub Jelinek <jakub@redhat.com>
5389
5390 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
5391 setting with __ASSUME_TGKILL || defined __NR_tgkill.
5392 If pid is 0, set it to selftid.
5393 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
5394 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
5395 != 0, return self->tid without doing a syscall.
5396 * descr.h (struct pthread): Move pid field after tid.
5397
5398 * Makefile (tests): Add tst-raise1.
5399 * tst-raise1.c: New file.
5400
432aaf5b
RM
54012003-12-23 Roland McGrath <roland@redhat.com>
5402
5403 * tst-oddstacklimit.c: New file.
5404 * Makefile (tests): Add it.
5405 (tst-oddstacklimit-ENV): New variable.
5406
5407 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
5408 value up to page size for __default_stacksize.
5409
33ebea17
UD
54102003-12-21 Ulrich Drepper <drepper@redhat.com>
5411
5412 * Makefile (tests): Add tst-eintr5.
5413 * tst-eintr5.c: New file.
5414
5415 * eintr.c (eintr_source): Prevent sending signal to self.
5416
5417 * tst-eintr2.c (tf1): Improve error message.
5418
bbe35eb5
UD
54192003-12-20 Ulrich Drepper <drepper@redhat.com>
5420
5421 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
5422 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
5423 * pthread_cancel.c: Add comment explaining use of PID field.
5424 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5425 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
5426 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
5427 temporarily to signal the field must not be relied on and updated
5428 by getpid().
5429 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
5430 temporarily negative.
5431 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 5432
4efdd8d3
UD
54332003-12-19 Ulrich Drepper <drepper@redhat.com>
5434
5435 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
5436 (eintr_source): If ARG != NULL, use pthread_kill.
5437 * tst-eintr1.c: Adjust for this change.
5438 * tst-eintr2.c: Likewise.
5439 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
5440 * tst-eintr3.c: New file.
5441 * tst-eintr4.c: New file.
5442
54432003-12-19 Jakub Jelinek <jakub@redhat.com>
5444
5445 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
5446 if CANCELSTATE_BITMASK is set.
5447 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
5448 Likewise.
5449
5450 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
5451 (tests-reverse): Add tst-cancel23.
5452 * tst-cancel22.c: New test.
5453 * tst-cancel23.c: New test.
5454
675620f7
UD
54552003-12-18 Ulrich Drepper <drepper@redhat.com>
5456
5457 * tst-eintr1.c: Better error messages.
5458
5459 * Makefile (tests): Add tst-eintr2.
5460 * tst-eintr2.c: New file.
5461
54622003-12-18 Jakub Jelinek <jakub@redhat.com>
5463
5464 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
5465 (CFLAGS-tst-cancelx21.c): Set.
5466 * tst-cancel21.c: New test.
5467 * tst-cancelx21.c: New test.
5468
5469 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
5470 comparison operand.
5471 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
5472 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
5473 * pt-longjmp.c: Include jmpbuf-unwind.h.
5474 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
5475 _JMPBUF_UNWINDS. Adjust compared pointers.
5476 * init.c (__pthread_initialize_minimal_internal): Initialize
5477 pd->stackblock_size.
5478 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
5479 * sysdeps/alpha/jmpbuf-unwind.h: New file.
5480 * sysdeps/i386/jmpbuf-unwind.h: New file.
5481 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
5482 * sysdeps/s390/jmpbuf-unwind.h: New file.
5483 * sysdeps/sh/jmpbuf-unwind.h: New file.
5484 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
5485 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 5486 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
5487 (_JMPBUF_CFA_UNWINDS): Remove.
5488 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
5489
54902003-12-12 Jakub Jelinek <jakub@redhat.com>
5491
5492 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
5493 (CFLAGS-tst-cancelx20.c): Set.
5494 * tst-cancel20.c: New test.
5495 * tst-cancelx20.c: New test.
5496
2d951ab6
UD
54972003-12-17 Ulrich Drepper <drepper@redhat.com>
5498
5499 * init.c (__pthread_initialize_minimal_internal): Don't treat
5500 architectures with separate register stack special here when
5501 computing default stack size.
5502
f8a3a2e7
RM
55032003-12-17 Roland McGrath <roland@redhat.com>
5504
5505 * Makefile (tst-cancelx7-ARGS): New variable.
5506 Reportd by Greg Schafer <gschafer@zip.com.au>.
5507
e796f92f
UD
55082003-12-17 Jakub Jelinek <jakub@redhat.com>
5509
5510 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
5511 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
5512 (tst-stack3-ENV): Set.
5513 ($(objpfx)tst-stack3-mem): New.
5514 * tst-stack3.c: New test.
5515
092eb73c
UD
55162003-12-10 David Mosberger <davidm@hpl.hp.com>
5517
5518 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
5519 Add unwind directives. Drop unused .regstk directive.
5520 (_fini_EPILOG_BEGINS): Add unwind directives.
5521
ff48874d
UD
55222003-12-11 Ulrich Drepper <drepper@redhat.com>
5523
5524 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5525 Assume parameter is a pointer.
5526 (lll_futex_wake): Likewise.
20945457
UD
5527 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
5528 Likewise.
5529 (lll_futex_wake): Likewise.
ff48874d
UD
5530 Reported by Boris Hu.
5531 * sysdeps/unix/sysv/linux/unregister-atfork.c
5532 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
5533
5534 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
5535
1d9d0b80
UD
55362003-12-10 Ulrich Drepper <drepper@redhat.com>
5537
5538 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
5539 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
5540 __rtld_lock_initialize for ld.so lock.
5541 Patch in part by Adam Li <adam.li@intel.com>.
5542
c776b3d7
UD
55432003-12-02 David Mosberger <davidm@hpl.hp.com>
5544
5545 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
5546 in $(gnulib). Also, remove stale comment.
5547
55482003-11-12 David Mosberger <davidm@hpl.hp.com>
5549
5550 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
5551 advantage of new syscall stub and optimize accordingly.
5552
5553 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
5554 from SYS_futex, to match expectations of
5555 sysdep.h:DO_INLINE_SYSCALL.
5556 (lll_futex_clobbers): Remove.
5557 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
5558 (lll_futex_wake): Likewise.
5559 (lll_futex_requeue): Likewise.
5560 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
5561 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
5562 Jelinek).
5563 (__lll_mutex_lock): Likewise.
5564 (__lll_mutex_cond_lock): Likewise.
5565 (__lll_mutex_timed_lock): Likewise.
5566 (__lll_mutex_unlock): Likewise.
5567 (__lll_mutex_unlock_force): Likewise.
5568
5569 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
5570 comes before the include of <sysdep.h>.
5571 (THREAD_SELF_SYSINFO): New macro.
5572 (THREAD_SYSINFO): Likewise.
5573 (INIT_SYSINFO): New macro.
5574 (TLS_INIT_TP): Call INIT_SYSINFO.
5575
5576 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
5577
5578 * sysdeps/pthread/createthread.c (create_thread): Use
5579 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
5580 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
5581 THREAD_SELF_SYSINFO instead of open code.
5582 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
5583 (THREAD_SYSINFO): Likewise.
5584
5585 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
5586
5587 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
5588
57d20ee7
UD
55892003-12-06 Ulrich Drepper <drepper@redhat.com>
5590
5591 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
5592 instead of .init. Patch by David Mosberger.
5593
67aeab2a
AJ
55942003-11-30 Thorsten Kukuk <kukuk@suse.de>
5595
5596 * sysdeps/pthread/configure.in: Remove broken declaration in C
5597 cleanup handling check.
5598
8ca203e6
AJ
55992003-11-30 Andreas Jaeger <aj@suse.de>
5600
5601 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
5602 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
5603 Likewise.
5604
46bf9de7
UD
56052003-11-27 Jakub Jelinek <jakub@redhat.com>
5606
5607 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
5608 * pthread_attr_destroy.c: Include shlib-compat.h.
5609 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
5610 is set in iattr->flags.
5611 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
5612
1d9b73ab
UD
56132003-11-21 Jakub Jelinek <jakub@redhat.com>
5614
5615 * Makefile (distribute): Add tst-cleanup4aux.c.
5616
5617 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
5618 include.
5619
53f9084e
UD
56202003-11-21 Ulrich Drepper <drepper@redhat.com>
5621
1d9b73ab
UD
5622 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
5623 pthread_cond_signal.
5624
e42a990e
UD
5625 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
5626 store mutex address if the current value is ~0l.
5627 * sysdeps/pthread/pthread_cond_timedwait.c
5628 (__pthread_cond_timedwait): Likewise.
5629 * sysdeps/pthread/pthread_cond_broadcast.c
5630 (__pthread_cond_broadcast): Don't use requeue for pshared
5631 condvars.
5632
5633 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
5634 (__pthread_cond_wait): Don't store mutex address if the current
5635 value is ~0l.
5636 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
5637 (__pthread_cond_timedwait): Likewise.
5638 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
5639 (__pthread_cond_broadcast): Don't use requeue for pshared
5640 condvars.
5641
5642 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
5643 element with ~0l for pshared condvars, with NULL otherwise.
5644
5645 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5646 (__pthread_cond_wait): Don't store mutex address if the current
5647 value is ~0l.
5648 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
5649 (__pthread_cond_timedwait): Likewise.
5650 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5651 (__pthread_cond_broadcast): Don't use requeue for pshared
5652 condvars.
5653
bf68b236 5654 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 5655 * tst-cond12.c: New file.
bf68b236 5656 * tst-cond13.c: New file.
53f9084e 5657
9780c971
UD
56582003-11-17 Ulrich Drepper <drepper@redhat.com>
5659
5660 * sysdeps/pthread/configure.in: Make missing forced unwind support
5661 fatal.
5662
74e12fbc
UD
56632003-11-11 Ulrich Drepper <drepper@redhat.com>
5664
5665 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
5666
c685b2b0
UD
56672003-11-06 Ulrich Drepper <drepper@redhat.com>
5668
5669 * Makefile: Add magic to clean up correctly.
5670
44e94149
UD
56712003-11-05 Jakub Jelinek <jakub@redhat.com>
5672
5673 * unwind.c (FRAME_LEFT): Define.
5674 (unwind_stop): Handle old style cleanups here.
5675 (__pthread_unwind): Handle old style cleanups only if
5676 !HAVE_FORCED_UNWIND.
5677 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
5678 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
5679 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
5680 ($(objpfx)tst-cleanupx4): Likewise.
5681 * tst-cleanup4.c: New test.
5682 * tst-cleanup4aux.c: New.
5683 * tst-cleanupx4.c: New test.
5684
c28422b5
UD
56852003-11-04 Ulrich Drepper <drepper@redhat.com>
5686
5687 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
5688 lll_mutex_*lock macros to skip atomic operations on some archs.
5689
27176677
UD
56902003-11-03 Ulrich Drepper <drepper@redhat.com>
5691
5692 * sysdeps/pthread/tst-timer.c (main): Initialize
5693 sigev2.sigev_value as well.
5694
026395a2
RM
56952003-10-15 Roland McGrath <roland@redhat.com>
5696
5697 * sysdeps/pthread/configure.in: Barf if visibility attribute support
5698 is missing.
5699 * sysdeps/pthread/configure: Regenerated.
5700
fa3cbe3d
UD
57012003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5702
5703 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
5704 locking macros. No distinction between normal and mutex locking
5705 anymore.
5706 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
5707 Merge bits from lowlevelmutex.S we still need.
5708 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
5709 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
5710 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
5711 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
5712 new mutex implementation.
5713 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
5714 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
5715 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
5716 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
5717 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
5718 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
5719 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
5720 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
5721 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
5722 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
5723 symbol for entry point to avoid cancellation.
5724
e700a908
UD
57252003-10-07 Jakub Jelinek <jakub@redhat.com>
5726
5727 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
5728 changes.
5729 (SAVE_OLDTYPE_0): Fix a typo.
5730
c70a86b6
UD
57312003-10-03 Ulrich Drepper <drepper@redhat.com>
5732
5733 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
5734 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
5735
134abcb5
UD
57362003-10-02 Ulrich Drepper <drepper@redhat.com>
5737
5738 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
5739 correct offset.
5740
b77ca0e8
UD
57412003-10-02 Jakub Jelinek <jakub@redhat.com>
5742
5743 * Makefile (tests): Add tst-cancel19.
5744 * tst-cancel19.c: New test.
5745
4d961dc7
UD
57462003-10-02 Ulrich Drepper <drepper@redhat.com>
5747
5748 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
5749 restoring of the old cancellation type.
5750
1d5b20ad 57512003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 5752
1d5b20ad
UD
5753 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
5754
4106a403
RM
57552003-09-27 Wolfram Gloger <wg@malloc.de>
5756
4d961dc7 5757 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 5758
fca9d8e4
RM
57592003-09-24 Roland McGrath <roland@redhat.com>
5760
5761 * allocatestack.c (__make_stacks_executable): Don't ignore return
5762 value from _dl_make_stack_executable.
5763
c9c60884
UD
57642003-09-24 Ulrich Drepper <drepper@redhat.com>
5765
69c9fa04
UD
5766 * allocatestack.c (__make_stacks_executable): Also change
5767 permission of the currently unused stacks.
5768
279f1143
UD
5769 * allocatestack.c (change_stack_perm): Split out from
5770 __make_stacks_executable.
5771 (allocate_stack): If the required permission changed between the time
5772 we started preparing the stack and queueing it, change the permission.
5773 (__make_stacks_executable): Call change_stack_perm.
5774
c9c60884
UD
5775 * Makefile: Build tst-execstack-mod locally.
5776 * tst-execstack-mod.c: New file.
5777
54ee14b3
UD
57782003-09-23 Jakub Jelinek <jakub@redhat.com>
5779
5780 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
5781
57822003-09-23 Roland McGrath <roland@redhat.com>
5783
5784 * tst-execstack.c: New file.
5785 * Makefile (tests): Add it.
5786 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
5787 (LDFLAGS-tst-execstack): New variable.
5788
5789 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
5790 whether to use PROT_EXEC for stack mmap.
5791 (__make_stacks_executable): New function.
5792 * pthreadP.h: Declare it.
5793 * init.c (__pthread_initialize_minimal_internal): Set
5794 GL(dl_make_stack_executable_hook) to that.
5795
365b1602
UD
57962003-09-22 Ulrich Drepper <drepper@redhat.com>
5797
5798 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
5799 recommendation from AMD re avoidance of lock prefix.
5800
39358e8b
UD
58012003-09-22 Jakub Jelinek <jakub@redhat.com>
5802
5803 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
5804 lll_futex_timed_wait instead of lll_futex_wait.
5805 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
5806 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
5807 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
5808 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
5809 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
5810 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
5811 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
5812 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
5813 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
5814 Completely revamp the locking macros. No distinction between
5815 normal and mutex locking anymore.
5816 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
5817 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
5818 __lll_lock_timedwait): Fix prototypes.
5819 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
5820 __lll_lock_timedwait): Likewise.
5821 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
5822 macros, add __builtin_expect.
5823 (lll_mutex_timedlock): Likewise. Fix return value.
5824 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
5825 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
5826 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
5827 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
5828 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
5829 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
5830 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
5831 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
5832
9d08fbbb
UD
58332003-09-22 Ulrich Drepper <drepper@redhat.com>
5834
c0df57e1
UD
5835 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5836 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
5837 operation if possible.
5838
9d08fbbb
UD
5839 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
5840 like jumping over the lock prefix.
5841
71451de2
UD
58422003-09-21 Ulrich Drepper <drepper@redhat.com>
5843
5844 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
5845 locking macros. No distinction between normal and mutex locking
5846 anymore.
3a226d33 5847 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
5848 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5849 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
5850 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
5851 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 5852 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 5853 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 5854 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 5855 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
5856 * Makefile (routines): Remove libc-lowlevelmutex.
5857 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
5858 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
5859 for new mutex implementation.
5860 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5861 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5862 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5863 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5864 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5865 Likewise.
5866 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5867 Likewise.
5868 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5869 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5870 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
5871 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5872 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5873 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5874 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5875 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5876 Likewise.
5877 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5878 Likewise.
5879 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
5880 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5881 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5882 Don't use requeue.
5883 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 5884 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 5885
8f31c0ef
UD
58862003-09-20 Ulrich Drepper <drepper@redhat.com>
5887
56a4aa98
UD
5888 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
5889 in parameters of asm with output parameters.
5890
8f31c0ef
UD
5891 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
5892 type of DECR parameter to int.
5893 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
5894
8b8074da
UD
58952003-09-18 Jakub Jelinek <jakub@redhat.com>
5896
5897 * tst-attr3.c (tf, do_test): Print stack start/end/size and
5898 guardsize for each thread.
5899
65af7e61
UD
59002003-09-17 Jakub Jelinek <jakub@redhat.com>
5901
9ba96eda
UD
5902 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
5903 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
5904 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
5905
06f6ca90
UD
5906 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
5907 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
5908 NULL.
5909 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
5910 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
5911 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
5912 (pthread_getaffinity_np): Add hidden_def.
5913
5914 * Makefile (tests): Add tst-attr3.
5915 * tst-attr3.c: New test.
5916
65af7e61
UD
5917 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
5918
3402852c
UD
59192003-09-15 Jakub Jelinek <jakub@redhat.com>
5920
5921 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
5922 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
5923
a4db3439
UD
59242003-09-17 Jakub Jelinek <jakub@redhat.com>
5925
5926 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
5927 * tst-align.c: Include tst-stack-align.h.
5928 (tf, do_test): Use TEST_STACK_ALIGN macro.
5929
59302003-09-17 Ulrich Drepper <drepper@redhat.com>
5931
5932 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
5933 variable.
5934
92ce4676
UD
59352003-09-16 Ulrich Drepper <drepper@redhat.com>
5936
5937 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
5938 stack-related values for the initial thread.
5939
e07bb02a
UD
59402003-09-15 Jakub Jelinek <jakub@redhat.com>
5941
5942 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
5943
d087b5dc
UD
59442003-09-11 Ulrich Drepper <drepper@redhat.com>
5945
5946 * pthread_mutex_lock.c: Minor code rearrangements.
5947
7f08f55a
RM
59482003-09-05 Roland McGrath <roland@redhat.com>
5949
5950 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
5951 Instead, include ../nptl_db/db_info.c to do its magic.
5952 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
5953 (__pthread_pthread_key_2ndlevel_size): Likewise.
5954 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
5955 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
5956 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
5957 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
5958 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
5959 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
5960 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
5961 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
5962 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
5963 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
5964 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
5965 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
5966 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
5967 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
5968 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
5969 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
5970 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
5971
806e4a4a
UD
59722003-09-08 Ulrich Drepper <drepper@redhat.com>
5973
5974 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
5975 of pthread_t to be compatible with LT.
5976 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5977 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5978 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5979 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5980 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
5981 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5982 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
5983
17f83e56
UD
59842003-09-04 Ulrich Drepper <drepper@redhat.com>
5985
5986 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
5987
58e8ec84
UD
59882003-09-04 Jakub Jelinek <jakub@redhat.com>
5989
5990 * unwind-forcedunwind.c: Move to...
5991 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
5992 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
5993 * sysdeps/pthread/jmpbuf-unwind.h: New file.
5994 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
5995 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
5996 * unwind.c: Include jmpbuf-unwind.h.
5997 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
5998
abf1cf21
JJ
59992003-09-02 Jakub Jelinek <jakub@redhat.com>
6000
4a244f0d
UD
6001 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
6002 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
6003 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
6004 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
6005 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6006 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
6007 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
6008 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
6009 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
6010 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
6011 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
6012 function.
6013 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
6014 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
6015 * Makefile (tests): Add tst-stack2.
6016 * tst-stack2.c: New test.
6017 * tst-stack1.c: Include limits.h and sys/param.h.
6018 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
6019
e29ef647
UD
6020 * pthread_condattr_setpshared.c: Include errno.h.
6021 (pthread_condattr_setpshared): Return EINVAL if pshared
6022 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
6023
5777d565
UD
6024 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
6025 defined symbol for entry point to avoid cancellation.
6026 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6027 Likewise.
6028 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
6029 Likewise.
6030 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6031 Likewise.
6032 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
6033 Likewise.
6034 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
6035 Likewise.
6036 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
6037 __close_nocancel, __read_nocancel, __write_nocancel,
6038 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
6039 libpthread.so or librt.so, define to corresponding function
6040 without _nocancel suffix.
6041 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
6042 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
6043 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
6044
abf1cf21
JJ
6045 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
6046
8348dcc8
UD
60472003-09-02 Ulrich Drepper <drepper@redhat.com>
6048
6049 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 6050 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
6051
6052 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
6053 in subsections has a symbol associated with it.
6054
6055 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
6056 defined symbol for entry point to avoid cancellation.
6057 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
6058
c874a32e
UD
60592003-09-01 Jakub Jelinek <jakub@redhat.com>
6060
6061 * Makefile (tests): Add tst-tls5.
6062 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
6063 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
6064 ($(objpfx)tst-tls5): New.
6065 ($(objpfx)tst-tls6.out): Likewise.
6066 (tests): Depend on $(objpfx)tst-tls6.out.
6067 * tst-tls3.c: Include stdint.h and pthreaddef.h.
6068 (do_test): Check pthread_self () return value alignment.
6069 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
6070 (tf): Check pthread_self () return value alignment.
6071 * tst-tls5.c: New test.
6072 * tst-tls5.h: New.
6073 * tst-tls5mod.c: New.
6074 * tst-tls5moda.c: New.
6075 * tst-tls5modb.c: New.
6076 * tst-tls5modc.c: New.
6077 * tst-tls5modd.c: New.
6078 * tst-tls5mode.c: New.
6079 * tst-tls5modf.c: New.
6080 * tst-tls6.sh: New test.
6081
c503d3dc
UD
6082 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
6083 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
6084 * init.c (pthread_functions): Initialize them.
6085 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
6086 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
6087 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
6088 pthread_cond_timedwait@@GLIBC_2.3.2.
6089
48614753
JJ
60902003-09-01 Jakub Jelinek <jakub@redhat.com>
6091
56a1b877
JJ
6092 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
6093 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
6094 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
6095 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
6096 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
6097 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
6098
6099 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
6100
48614753
JJ
6101 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
6102 _POSIX_THREAD_PRIORITY_SCHEDULING.
6103 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6104
28c97261
UD
61052003-08-31 Ulrich Drepper <drepper@redhat.com>
6106
eef80cf8
UD
6107 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
6108 nested function, use static inline function from libio.h.
6109 Code by Richard Henderson.
6110
28c97261
UD
6111 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
6112 weak.
6113
cd2fbe58
UD
61142003-08-30 Jakub Jelinek <jakub@redhat.com>
6115
6116 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
6117 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
6118 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
6119 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
6120 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
6121 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
6122 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
6123 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
6124 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
6125 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
6126 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
6127 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
6128 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
6129 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
6130 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
6131 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
6132 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
6133 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
6134 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
6135 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
6136 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
6137 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
6138 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
6139 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
6140 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
6141 * sysdeps/sparc/tls.h: New file.
6142 * sysdeps/sparc/tcb-offsets.sym: New file.
6143 * sysdeps/sparc/Makefile: New file.
6144 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
6145 * init.c [__sparc__] (__NR_set_tid_address): Define.
6146
feda52c0
UD
61472003-08-29 Jakub Jelinek <jakub@redhat.com>
6148
6149 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
6150 _IO_release_lock): Define.
6151
7c868816
JJ
61522003-08-29 Jakub Jelinek <jakuB@redhat.com>
6153
0261d33f 6154 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
6155 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
6156
68b9e1ae
UD
61572003-08-27 Ulrich Drepper <drepper@redhat.com>
6158
6159 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
6160 (__pthread_cleanup_class): Add missing return types of member
6161 functions.
6162
13b3edfc
UD
61632003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
6164
6165 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6166 (lll_mutex_unlock_force): Add memory barrier between store and futex
6167 syscall.
6168
bb606fbe
UD
61692003-08-25 Ulrich Drepper <drepper@redhat.com>
6170
6171 * tst-cancel4.c (do_test): Also unlink tempfname and remove
6172 tempmsg in first loop.
6173
ee4e5a3d
UD
61742003-08-18 Ulrich Drepper <drepper@redhat.com>
6175
6176 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
6177 _POSIX_THREAD_PRIORITY_SCHEDULING.
6178 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6179
334fcf2a
UD
61802003-08-07 Jakub Jelinek <jakub@redhat.com>
6181
6182 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
6183 (__rtld_lock_default_lock_recursive,
6184 __rtld_lock_default_unlock_recursive): Define.
6185 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
6186 __rtld_lock_unlock_recursive): Define using
6187 GL(_dl_rtld_*lock_recursive).
6188 * init.c (__pthread_initialize_minimal_internal): Initialize
6189 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
6190 Lock GL(_dl_load_lock) the same number of times as
6191 GL(_dl_load_lock) using non-mt implementation was nested.
6192
6193 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
6194 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
6195
a30fb2df
UD
61962003-08-06 Jakub Jelinek <jakub@redhat.com>
6197
6198 * tst-cancel17.c (do_test): Make len2 maximum of page size and
6199 PIPE_BUF.
6200
ce0d30a0
JJ
62012003-08-07 Jakub Jelinek <jakub@redhat.com>
6202
6203 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
6204
9c988b83
UD
62052003-08-03 Jakub Jelinek <jakub@redhat.com>
6206
6207 * sysdeps/pthread/createthread.c (do_clone): Move error handling
6208 to first syscall error check. Move syscall error check for tkill
6209 into __ASSUME_CLONE_STOPPED #ifdef.
6210
5c5252bd
UD
62112003-08-02 Ulrich Drepper <drepper@redhat.com>
6212
f1205aa7
UD
6213 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
6214 is not defined, do explicit synchronization.
6215 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
6216 is not defined also unlock pd->lock for non-debugging case in case
6217 it is necessary.
6218 * pthread_create.c (start_thread): Always get and release pd->lock
6219 if __ASSUME_CLONE_STOPPED is not defined.
6220 (start_thread_debug): Removed. Adjust users.
6221 * allocatestack.c (allocate_stack): Always initialize lock if
6222 __ASSUME_CLONE_STOPPED is not defined.
6223 * Makefile (tests): Add tst-sched1.
6224 * tst-sched1.c: New file.
6225
5c5252bd
UD
6226 * sysdeps/pthread/createthread.c (do_clone): Only use
6227 sched_setschduler and pass correct parameters.
6228
973d66e4
UD
62292003-07-31 Jakub Jelinek <jakub@redhat.com>
6230
6231 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
6232 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
6233 PTHREAD_STACK_MIN in comments.
6234
d347a4ab
UD
62352003-07-31 Jakub Jelinek <jakub@redhat.com>
6236
6237 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6238 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
6239 argument.
6240 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
6241 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
6242 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
6243 (__pthread_cleanup_upto): Fix prototype.
6244 (_longjmp_unwind): Adjust caller.
6245 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
6246 Change second argument to const struct pointer.
6247 * tst-sem8.c (main): Remove unused s2 and s3 variables.
6248 * tst-sem9.c (main): Likewise.
6249 * unwind.c: Include string.h for strlen prototype.
6250
1b26e9a5
UD
62512003-07-31 Ulrich Drepper <drepper@redhat.com>
6252
6253 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6254 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
6255 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
6256 Define HAVE_CMOV.
6257 Patch by Nicholas Miell <nmiell@attbi.com>.
6258
adc12574
UD
62592003-07-30 Jakub Jelinek <jakub@redhat.com>
6260
6261 * init.c (__pthread_initialize_minimal_internal): Initialize
6262 GL(dl_init_static_tls).
6263 * pthreadP.h (__pthread_init_static_tls): New prototype.
6264 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
6265 New functions.
6266 * Makefile (tests): Add tst-tls4.
6267 (modules-names): Add tst-tls4moda and tst-tls4modb.
6268 ($(objpfx)tst-tls4): Link against libdl and libpthread.
6269 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
6270 tst-tls4modb.so.
6271 * tst-tls4.c: New file.
6272 * tst-tls4moda.c: New file.
6273 * tst-tls4modb.c: New file.
6274
a7f6c66e
RM
62752003-06-19 Daniel Jacobowitz <drow@mvista.com>
6276
6277 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
6278 before __timer_dealloc.
6279 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
6280 Don't call list_unlink.
6281
172ce013
RM
62822003-07-29 Roland McGrath <roland@redhat.com>
6283
6284 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
6285
7b787f85
UD
62862003-07-25 Jakub Jelinek <jakub@redhat.com>
6287
6288 * tst-cancel17.c (do_test): Check if aio_cancel failed.
6289 Don't reuse struct aiocb A if it failed.
6290 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
6291 not just one byte, as that does not block.
6292
0e9d6240
UD
62932003-07-22 Jakub Jelinek <jakub@redhat.com>
6294
9d79e037
UD
6295 * sysdeps/pthread/unwind-resume.c: New file.
6296 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
6297 unwind-resume in csu subdir.
6298 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
6299 exceptions.
6300 (librt-sysdep_routines, librt-shared-only-routines): Add
6301 rt-unwind-resume.
6302 * sysdeps/pthread/rt-unwind-resume.c: New file.
6303 * unwind-forcedunwind.c: New file.
6304 * Makefile (libpthread-routines): Add unwind-forcedunwind.
6305 (libpthread-shared-only-routines): Likewise.
6306 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
6307 * pthreadP.h (pthread_cancel_init): New prototype.
6308 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
6309
6310 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
6311 attr argument const struct pthread_attr *.
6312
0e9d6240
UD
6313 * res.c (__res_state): Return __resp.
6314 * descr.h: Include resolv.h.
6315 (struct pthread): Add res field.
6316 * pthread_create.c: Include resolv.h.
6317 (start_thread): Initialize __resp.
6318 * Makefile (tests): Add tst-_res1.
6319 (module-names): Add tst-_res1mod1, tst-_res1mod2.
6320 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
6321 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
6322 libpthread.
6323 * tst-_res1.c: New file.
6324 * tst-_res1mod1.c: New file.
6325 * tst-_res1mod2.c: New file.
6326
1a379ea0
UD
63272003-07-21 Ulrich Drepper <drepper@redhat.com>
6328
7e939b21
UD
6329 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
6330
1a379ea0
UD
6331 * Makefile: Define various *-no-z-defs variables for test DSOs
6332 which has undefined symbols.
6333
ca86a763
UD
63342003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
6335
6336 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6337 Retry if the stwcx fails to store once_control.
6338
80f536db
UD
63392003-07-20 Ulrich Drepper <drepper@redhat.com>
6340
6341 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
6342 pthread_attr_setaffinity.
6343 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
6344 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
6345 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
6346 * pthread_attr_destroy.c: Free cpuset element if allocated.
6347 * pthread_create.c: Pass iattr as additional parameter to
6348 create_thread.
6349 * sysdeps/pthread/createthread.c: If attribute is provided and
6350 a new thread is created with affinity set or scheduling parameters,
6351 start thread with CLONE_STOPPED.
6352 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
6353 pthread_attr_setaffinity.
6354 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
6355 cpuset element.
6356
73299943
UD
63572003-07-15 Ulrich Drepper <drepper@redhat.com>
6358
6359 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
6360
da35d15e
UD
63612003-07-14 Ulrich Drepper <drepper@redhat.com>
6362
6363 * sysdeps/pthread/configure.in: Require CFI directives also for
6364 ppc and s390.
6365
75540d8a
UD
63662003-07-15 Jakub Jelinek <jakub@redhat.com>
6367
6368 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
6369 Add cfi directives.
6370
4a17085f
UD
63712003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6372
6373 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
6374 CLEANUP_JMP_BUF.
6375 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
6376 registers as variables. Call __pthread_mutex_unlock_usercnt.
6377 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6378 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
6379 not self pointer in __writer. Compare with TID to determine
6380 deadlocks.
6381 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
6382 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
6383 Likewise.
6384 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
6385 Likewise.
6386 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
6387 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
6388 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
6389 macros also when compiling librt.
6390
6080ecdf
UD
63912003-07-11 Jakub Jelinek <jakub@redhat.com>
6392
6393 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
6394 -fasynchronous-unwind-tables.
6395 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
6396 (PSEUDO): Add cfi directives.
6397 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
6398 Likewise.
6399 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
6400 Likewise.
6401
da0c02ee
UD
64022003-07-08 Jakub Jelinek <jakub@redhat.com>
6403
6404 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
6405 __pthread_unregister_cancel): Add prototypes and hidden_proto.
6406 * unwind.c (__pthread_unwind_next): Add hidden_def.
6407 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
6408 Likewise.
6409 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6410 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
6411 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6412 Likewise.
6413 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
6414 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
6415 Likewise.
6416 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
6417 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
6418 __pthread_unregister_cancel and __pthread_unwind_next.
6419
57a5ea02
UD
64202003-07-04 Jakub Jelinek <jakub@redhat.com>
6421
6422 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
6423 different symbol for the cancellation syscall wrapper and
6424 non-cancellation syscall wrapper.
6425 (PSEUDO_END): Define.
6426
d810b358
UD
64272003-07-05 Richard Henderson <rth@redhat.com>
6428
6429 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
6430 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
6431 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6432 return actual return value from the syscall, not 0.
d810b358 6433
db54f488
UD
64342003-07-07 Ulrich Drepper <drepper@redhat.com>
6435
6436 * descr.h (struct pthread): Add pid field.
6437 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
6438 (__reclaim_stacks): Likewise.
6439 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
6440 also check for PID of the signal source.
6441 (__pthread_initialize_minimal_internal): Also initialize pid field
6442 of initial thread's descriptor.
6443 * pthread_cancel.c: Use tgkill instead of tkill if possible.
6444 * sysdeps/unix/sysv/linux/fork.c: Likewise.
6445 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
6446 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
6447 * sysdeps/unix/sysv/linux/raise.c: Likewise.
6448
5e497a41
UD
64492003-07-05 Ulrich Drepper <drepper@redhat.com>
6450
6451 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
6452 Fix use of parameter.
6453 (__libc_cleanup_pop): Likewise.
6454
86a0c4fa
UD
64552003-07-04 Ulrich Drepper <drepper@redhat.com>
6456
6457 * init.c (sigcancel_handler): Change parameters to match handler
6458 for SA_SIGACTION. Check signal number and code to recognize
6459 invalid invocations.
6460
bdbecaa3
RM
64612003-07-03 Roland McGrath <roland@redhat.com>
6462
6463 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
6464 Apply sizeof (struct pthread) bias to r13 value.
6465
56421b23
UD
64662003-07-03 Ulrich Drepper <drepper@redhat.com>
6467
fbd90f6c
UD
6468 * sysdeps/pthread/configure.in: Require CFI directives.
6469
56421b23
UD
6470 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
6471 definition.
6472 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
6473 libpthread compilation.
6474 * unwind.c (__pthread_unwind): Add hidden_def.
6475 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
6476
ca2b4cd7
UD
64772003-07-01 Ulrich Drepper <drepper@redhat.com>
6478
6479 * libc-cancellation.c (__libc_cleanup_routine): Define.
6480 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
6481 (__pthread_cleanup_pop): Define.
6482
f036e569
UD
64832003-07-01 Richard Henderson <rth@redhat.com>
6484
6485 * sysdeps/alpha/elf/pt-initfini.c: New file.
6486 * sysdeps/alpha/pthread_spin_lock.S: New file.
6487 * sysdeps/alpha/pthread_spin_trylock.S: New file.
6488 * sysdeps/alpha/pthreaddef.h: New file.
6489 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
6490 * sysdeps/alpha/tls.h: New file.
6491 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
6492 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
6493 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
6494 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
6495 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
6496 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
6497 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
6498 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
6499 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
6500 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
6501
3b985826
UD
65022003-07-01 Ulrich Drepper <drepper@redhat.com>
6503
6504 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
6505 cleanup support and unwind info.
6506
3a4d1e1e
UD
65072003-06-30 Ulrich Drepper <drepper@redhat.com>
6508
6509 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
6510 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
6511 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
6512 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
6513 * tst-once3.c: Add cleanup handler and check it is called.
6514 * tst-once4.c: Likewise.
6515 * tst-oncex3.c: New file.
6516 * tst-oncex4.c: New file.
6517 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
6518
e479cc8e
UD
65192003-06-29 Ulrich Drepper <drepper@redhat.com>
6520
6521 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
6522
7d7ff54c
UD
65232003-06-27 Ulrich Drepper <drepper@redhat.com>
6524
483e95d0
UD
6525 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
6526 (tf_msgsnd): Likewise.
6527
7d7ff54c
UD
6528 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
6529 premature returns a bit more.
6530
7539c7ec
UD
65312003-06-26 Ulrich Drepper <drepper@redhat.com>
6532
6533 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
6534 definition to the front.
6535
6536 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
6537 the cleanup functions to make the names unique. Fix dwarf opcode
6538 un unwind table.
6539 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
6540 functions to make the names unique. Fix CFA offset for two blocks.
6541
0af6a1d9
UD
65422003-06-25 Ulrich Drepper <drepper@redhat.com>
6543
6544 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
6545 missing closing braces.
6546 Patch by Christophe Saout <christophe@saout.de>.
6547
eef4a9f3
RM
65482003-06-24 Roland McGrath <roland@redhat.com>
6549
6550 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
6551
4165d44d
UD
65522003-06-24 Ulrich Drepper <drepper@redhat.com>
6553
7f8f7b9d
UD
6554 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
6555 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
6556
4165d44d
UD
6557 * pthreadP.h: Declare __find_thread_by_id.
6558 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
6559 * pthread_clock_gettime.c: Allow using other thread's clock.
6560 * pthread_clock_settime.c: Likewise.
6561 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
6562 * Makefile: Add rules to build and run tst-clock2.
6563 * tst-clock2.c: New file.
6564
67b78ef9
UD
65652003-06-23 Ulrich Drepper <drepper@redhat.com>
6566
6567 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
6568 to use exception-based cleanup handler.
6569 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6570
6571 * tst-cond8.c (ch): Announce that we are done.
6572
6573 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
6574
6575 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
6576 Also test aio_suspend with timeout value.
6577
61623643
UD
65782003-06-22 Ulrich Drepper <drepper@redhat.com>
6579
3a4f2043
UD
6580 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
6581 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
6582 attribute_hidden.
6583
61623643
UD
6584 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
6585 (__pthread_mutex_lock_internal): Likewise.
6586 (__pthread_mutex_unlock_internal): Likewise.
6587 (__pthread_mutex_unlock_usercnt): Declare.
6588 * pthread_mutex_destroy.c: Always fail if used in any way.
6589 * pthread_mutex_init.c: Update comment.
6590 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
6591 * pthread_mutex_timedlock.c: Adjust __nusers.
6592 * pthread_mutex_trylock.c: Adjust __nusers.
6593 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
6594 and public interfaces are wrapper with pass additional parameter.
6595 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
6596 parameter zero.
6597 * tst-mutex8.c: New file.
6598 * Makefile (tests): Add tst-mutex8.
6599 * sysdeps/pthread/pthread_cond_timedwait.c: Call
6600 __pthread_mutex_unlock_usercnt.
6601 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6602 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6603 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
6604 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6605 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6606 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
6607 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6608 Add __nusers.
6609 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6610 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6611 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6612 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6613 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6614
6615 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
6616 * pthread_mutex_timedlock.c: Likewise.
6617 * pthread_mutex_trylock.c: Adjust __nusers.
6618 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
6619 * tst-mutex9.c: New file.
6620 * Makefile (tests): Add tst-mutex9.
6621 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
6622 * sysdeps/ia64/tls.h: Likewise.
6623 * sysdeps/powerpc/tls.h: Likewise.
6624 * sysdeps/s390/tls.h: Likewise.
6625 * sysdeps/sh/tls.h: Likewise.
6626 * sysdeps/x86_64/tls.h: Likewise.
6627 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
6628 Change type of __owner.
6629 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6630 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6631 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6632 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6633 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6634
9bdabb94
UD
66352003-06-19 Jakub Jelinek <jakub@redhat.com>
6636
6637 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
6638 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
6639
6640 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
6641 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
6642 instead of nr to lll_futex_wake. Only set errno and return -1
6643 if err < 0.
6644
6645 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
6646 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
6647 return actual return value from the syscall, not 0.
6648
f6c93bd9
UD
66492003-06-18 Ulrich Drepper <drepper@redhat.com>
6650
ca343e73
UD
6651 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
6652 find a random value.
6653 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
6654 errno==EIDRM.
6655
50441a98
UD
6656 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
6657 compat_timer_settime.
6658 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
6659 compat_timer_gettime.
6660 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 6661 compat_timer_getoverrun.
50441a98
UD
6662 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
6663 compat_timer_delete.
6664
f6c93bd9
UD
6665 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
6666 error-checking mutex detect busy mutexes.
6667
047aec8f
UD
66682003-06-17 Ulrich Drepper <drepper@redhat.com>
6669
1d53508d
UD
6670 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
6671 Add ax to clobber list.
6672 (lll_mutex_cond_lock): Likewise.
6673 (lll_mutex_unlock): Likewise.
6674 (lll_lock): Likewise.
6675 (lll_unlock): Likewise.
6676
f23b30e2
UD
6677 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
6678 * tst-cancel18.c: New file.
6679 * tst-cancelx18.c: New file.
6680
6681 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
6682 and tcdrain.
6683
6684 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
6685 * tst-cancel17.c: New file.
6686 * tst-cancelx17.c: New file.
6687
6688 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6689 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6690 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6691
047aec8f
UD
6692 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
6693
bbde8527
UD
66942003-06-16 Jakub Jelinek <jakub@redhat.com>
6695
6696 * sysdeps/pthread/createthread.c (create_thread): Set
6697 header.multiple_threads unconditionally.
6698 * allocatestack.c (allocate_stack): Likewise.
6699 * descr.h (struct pthread): Add header.multiple_threads
6700 unconditionally.
6701 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
6702 Define for librt. #error if neither libpthread, libc nor librt.
6703 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
6704 Likewise.
6705 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
6706 CDISABLE): Likewise.
6707 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
6708 CDISABLE): Likewise.
6709 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
6710 CDISABLE): Likewise.
6711 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
6712 CDISABLE): Likewise. Access header.multiple_threads outside of
6713 libc and libpthread.
6714 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
6715 Likewise.
6716 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
6717 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
6718
26676450
UD
67192003-06-17 Ulrich Drepper <drepper@redhat.com>
6720
6721 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
6722 Also test early cancellation before the thread reaches the cancellation
6723 point.
6724
6725 * Makefile: Compile forward.c with exceptions.
6726
6727 * sysdeps/unix/sysv/linux/sleep.c: New file.
6728
301a6724
UD
67292003-06-16 Ulrich Drepper <drepper@redhat.com>
6730
0e0deb03
UD
6731 * Makefile: Add CFLAGS definition to compile function wrappers
6732 duplicated from libc with exceptions.
6733 * tst-cancel4.c: Also check cancellation handlers.
6734
301a6724
UD
6735 * Makefile: Add rules to build and run tst-cancel16 and
6736 tst-cancelx16. Add missing CFLAGS definitions.
6737 * tst-cancel16.c: New file.
6738 * tst-cancelx16.c: New file.
6739
7a114794
UD
67402003-06-15 Ulrich Drepper <drepper@redhat.com>
6741
452aea84
UD
6742 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
6743 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
6744 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
6745 (DL_SYSINFO_IMPLEMENTATION): Likewise.
6746
7a114794
UD
6747 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
6748 (LIBC_CANCEL_RESET): Likewise.
6749 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
6750 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
6751 librt-cancellation.
6752 (CFLAGS-libcrt-cancellation.c): Define.
6753 * sysdeps/pthread/librt-cancellation.c: New file.
6754 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
6755 macros also when compiling librt.
6756 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6757 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6758 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6759 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6760 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6761 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6762 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6763
6764 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
6765 compat_timer_create.
6766
8ba1d429
UD
67672003-06-14 Ulrich Drepper <drepper@redhat.com>
6768
cc8fb6f3
UD
6769 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
6770
8ba1d429
UD
6771 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6772 __register_atfork.
6773 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
6774 Add libc_hidden_def.
6775
d4f100e2
RM
67762003-06-13 Roland McGrath <roland@redhat.com>
6777
6778 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
6779 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
6780
dd9423a6
UD
67812003-06-11 Ulrich Drepper <drepper@redhat.com>
6782
6783 * allocatestack.c (queue_stack): Always inline.
6784 * ptreadhP.h (__do_cancel): Likewise.
6785
ed24330d
JJ
67862003-06-10 Jakub Jelinek <jakub@redhat.com>
6787
6788 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
6789 a typo.
6790
06120d79
UD
67912003-06-10 Ulrich Drepper <drepper@redhat.com>
6792
6793 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6794 (__pthread_cond_signal): Remove incorrect second addition for
6795 cond_lock!=0.
6796
b1720346
UD
67972003-06-09 Ulrich Drepper <drepper@redhat.com>
6798
5b318f85
UD
6799 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6800 (__pthread_cond_signal): Use correct futex pointer in
6801 __lll_mutex_lock_wait call.
6802
b1720346
UD
6803 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6804 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
6805
3e36c37d
UD
68062003-06-08 Ulrich Drepper <drepper@redhat.com>
6807
ecf7955d
UD
6808 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
6809 cancelable.
ed24330d 6810 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
6811 Likewise.
6812
3e36c37d
UD
6813 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
6814 hand-written CFI generation code. Since ENTRY/END also initiated
6815 CFI frames this caused two CFI sets to be generated.
6816
7726edc2
UD
68172003-06-07 Ulrich Drepper <drepper@redhat.com>
6818
6819 * cleanup_routine.c: New file.
6820 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
6821 * sysdeps/pthread/pthread.h: Add support for fully exception-based
6822 cleanup handling.
6823 * Makefile (libpthread-routines): Add cleanup_routine.
6824 Add more CFLAGS variables to compile with exceptions. Add comments
6825 why which file needs unwind tables.
6826 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
6827 tests.
6828 * tst-cancelx1.c: New file.
6829 * tst-cancelx2.c: New file.
6830 * tst-cancelx3.c: New file.
6831 * tst-cancelx4.c: New file.
6832 * tst-cancelx5.c: New file.
6833 * tst-cancelx6.c: New file.
6834 * tst-cancelx7.c: New file.
6835 * tst-cancelx8.c: New file.
6836 * tst-cancelx9.c: New file.
6837 * tst-cancelx10.c: New file.
6838 * tst-cancelx11.c: New file.
6839 * tst-cancelx12.c: New file.
6840 * tst-cancelx13.c: New file.
6841 * tst-cancelx14.c: New file.
6842 * tst-cancelx15.c: New file.
6843 * tst-cleanupx0.c: New file.
6844 * tst-cleanupx0.expect: New file.
6845 * tst-cleanupx1.c: New file.
6846 * tst-cleanupx2.c: New file.
6847 * tst-cleanupx3.c: New file.
6848
6849 * tst-cleanup0.c: Make standard compliant.
6850 * tst-cleanup1.c: Likewise.
6851
6852 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
6853 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
6854 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
6855 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
6856 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
6857 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
6858 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
6859 CLEANUP_JMP_BUF.
6860 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6861 * tst-cancel12.c: New file.
6862 * tst-cancel13.c: New file.
6863 * tst-cancel14.c: New file.
6864 * tst-cancel15.c: New file.
6865 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
6866 and tst-cancel15.
6867
6868 * tst-cancel1.c: Add some comments.
6869
6870 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
6871 timeout correctly.
6872
7a8a8e21
UD
68732003-06-06 Ulrich Drepper <drepper@redhat.com>
6874
6875 * Makefile (CFLAGS-pthread_cancel.c): Define.
6876
4ad0bbf4
UD
68772003-06-05 Ulrich Drepper <drepper@redhat.com>
6878
6879 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
6880 Change type of __writer element to int.
6881 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6882 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6883 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6884 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6885 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6886 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
6887 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
6888 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
6889 Compare with TID to determine deadlocks.
6890 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
6891 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
6892 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
6893 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
6894 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
6895 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
6896 Likewise.
6897 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
6898 Likewise.
6899 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
6900 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
6901 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
6902 Likewise.
6903 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
6904 Likewise.
6905 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
6906 * Makefile (tests): Add tst-rwlock12.
6907 * tst-rwlock12.c: New file.
6908
332faa96
JJ
69092003-06-05 Jakub Jelinek <jakub@redhat.com>
6910
6911 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
6912 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
6913 Remove bogus hidden_proto.
6914 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
6915 Likewise.
6916 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
6917 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
6918 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
6919 ___lll_mutex_timedlock): Likewise.
6920
29d9e2fd
UD
69212003-06-04 Ulrich Drepper <drepper@redhat.com>
6922
6923 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
6924 (__pthread_cond_signal): Add some code to eventually handle
6925 cond_lock!=0.
6926
6f1acb30
UD
69272003-06-01 Ulrich Drepper <drepper@redhat.com>
6928
6929 * Makefile (tests): Add tst-exec4.
6930 (tst-exec4-ARGS): Define.
6931 * tst-exec4.c: New file.
6932
49b65043
UD
69332003-05-31 Ulrich Drepper <drepper@redhat.com>
6934
31195be2
UD
6935 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
6936 Also fail if tv_nsec < 0.
6937 (__lll_timedwait_tid): Likewise.
6938 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
6939 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
6940 Likewise.
6941 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
6942 Likewise.
6943 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
6944 Likewise.
6945 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
6946 Likewise.
80b54217
UD
6947 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
6948 Likewise.
6949 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
6950 Likewise.
31195be2 6951
dcfc8224
UD
6952 * Makefile (tests): Add tst-sem8 and tst-sem9.
6953 * tst-sem8.c: New file.
6954 * tst-sem9.c: New file.
6955 * sem_open.c: Fix creation of in_use record if the file exists but
6956 no internal record.
6957
49b65043
UD
6958 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
6959 definitions.
6960
6961 * sysdeps/pthread/timer_create.c (timer_create): In case
6962 evp==NULL, assign timer ID to sival_ptr.
6963
6964 * descr.h (struct pthread_unwind_buf): Change type of prev element to
6965 struct pthread_unwind_buf *.
6966 (struct pthread): Likewise for cleanup_jmp_buf element.
6967
6968 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
6969 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
6970 * unwind.c (__pthread_unwind_next): Likewise.
6971
50794a45
UD
69722003-05-30 Ulrich Drepper <drepper@redhat.com>
6973
5d4f57bd
UD
6974 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6975 (lll_futex_timed_wait): Use int for futex value parameter.
6976 (lll_futex_wake): Likewise.
6977 (lll_futex_requeue): Likewise.
6978
6979 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
6980 Replace one memory operation with one register operation.
6981
6982 * tst-join4.c (do_test): Fix error message.
6983
7ab7ea33
UD
6984 * tst-rwlock6.c (do_test): Use correct format specifier.
6985
6986 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
6987 (__lll_mutex_lock_wait): Replace one memory operation with one
6988 register operation.
6989 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
6990 (__lll_mutex_lock_wait): Likewise.
6991
50794a45
UD
6992 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
6993 (__lll_mutex_cond_lock): Add one to value parameter of
6994 __lll_lock_wait to reflect reality in the futex syscall.
6995 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
6996 (lll_mutex_cond_lock): Likewise.
6997
5a70784e
JJ
69982003-05-30 Jakub Jelinek <jakub@redhat.com>
6999
7000 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
7001 New function.
7002 (lll_mutex_cond_lock): Define.
7003
e7c5ac68
UD
70042003-05-29 Ulrich Drepper <drepper@redhat.com>
7005
586d1748
UD
7006 * Makefile (tests): Add tst-signal6.
7007 * tst-signal6.c: New file.
7008
b8ba4a27
UD
7009 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
7010 (__lll_mutex_unlock_force): New function
7011 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
7012
65d46efe
UD
7013 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7014 (__lll_mutex_unlock_force): New function.
7015 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
7016
7017 * tst-rwlock7.c (do_test): Use correct format specifier.
7018
e7c5ac68
UD
7019 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
7020 Find break parameter in correct asm argument.
7021
284bdc42
UD
70222003-05-27 Jakub Jelinek <jakub@redhat.com>
7023
7024 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
7025 Remove out4.
7026 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
7027 error occured.
7028 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7029 Add __mutex.
7030 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
7031 lll_futex_requeue, lll_mutex_unlock_force): Define.
7032
e7c5ac68
UD
70332003-05-30 Jakub Jelinek <jakub@redhat.com>
7034
7035 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7036 (pthread_cond_t): Add __mutex.
7037 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
7038 lll_futex_requeue, lll_mutex_unlock_force): Define.
7039
ea2630c6
UD
70402003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7041
7042 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
7043 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 7044 Add __mutex field.
ea2630c6
UD
7045 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
7046 Define.
7047 (lll_futex_wait, lll_futex_wake): Define.
7048 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
7049 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
7050 FUTEX_REQUEUE instead of FUTEX_WAIT.
7051 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
7052 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
7053 mutex which was used in condvar structure. Call
7054 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
7055 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
7056
7057 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
7058 include tcb-offsets.h. Read wakeup value in locked region.
7059 Use the value of gbr register as THREAD_ID.
7060 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7061 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7062 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7063
7064 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
7065 macros.
7066
5a77f150
UD
70672003-05-28 Ulrich Drepper <drepper@redhat.com>
7068
7069 * sysdeps/pthread/pthread_cond_broadcast.c
7070 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
7071
7661d9f7
UD
70722003-05-26 Ulrich Drepper <drepper@redhat.com>
7073
7074 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
7075 typo in register name.
7076 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
7077 correctly. Actually use requeue. Little optimization.
7078 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
7079 mutex address early. Handle cancellation state as 32-bit value.
7080 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7081 Remove unnecessary label.
7082
69431c9a
UD
70832003-05-25 Ulrich Drepper <drepper@redhat.com>
7084
7085 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
7086 instead of FUTEX_WAIT.
7087 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
7088 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
7089 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
7090 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
7091 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
7092 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
7093 used in condvar structure. Call __pthread_mutex_cond_lock instead
7094 of __pthread_mutex_lock_internal.
7095 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7096 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7097 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7098 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
7099 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7100 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7101 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
7102 Add pthread_mutex_cond_lock.
7103 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
7104 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
7105 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
7106 lll_mutex_cond_lock.
7107 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
7108 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 7109 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 7110 Add __mutex field.
248a3490 7111 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
7112 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7113
7114 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
7115 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
7116
7117 * pthreadP.h: Declare __pthread_mutex_cond_lock.
7118 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
7119 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
7120 macro don't define aliases.
7121
7122 * cancellation.c: Remove __pthread_enable_asynccancel_2.
7123 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
7124 * sysdeps/pthread/pthread_cond_timedwait.c: Use
7125 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
7126 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7127 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7128 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
7129 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7130 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7131
fddfebbd
UD
71322003-05-17 Ulrich Drepper <drepper@redhat.com>
7133
7134 * sem_open.c: Fix one endless loop. Implement correct semantics
7135 wrt opening the same semaphore more then once.
7136 * sem_close.c: Adjust for sem_open change.
7137 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
7138 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
7139 * Makefile (tests): Add tst-sem7.
7140 * tst-sem7.c: New file.
7141
1eefffb0
RM
71422003-05-16 Roland McGrath <roland@redhat.com>
7143
7144 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
7145 uninitialized variable braino.
7146
6e66dc78
UD
71472003-05-16 Ulrich Drepper <drepper@redhat.com>
7148
23ae6451
UD
7149 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
7150 test for syscall availability.
7151
7152 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
7153 __no_posix_timers to -1 if the syscalls don't exist.
7154
7ac5b8e2
UD
7155 * pthread_join.c (pthread_join): Set tid field of the joined
7156 thread to -1. This isn't necessary but helps to recognize some
7157 error conditions with almost no cost.
7158
7159 * allocatestack.c (FREE_P): Also negative values indicate an
7160 unused stack.
7161
6e66dc78
UD
7162 * unwind.c: Include <unistd.h>.
7163
855dba3c
UD
71642003-05-14 Ulrich Drepper <drepper@redhat.com>
7165
7166 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
7167
81f3ac4c
UD
71682003-05-14 Jakub Jelinek <jakub@redhat.com>
7169
7170 * Makefile (crti-objs, crtn-objs): New variables.
7171 (omit-deps, extra-objs): Add crtn.
7172 ($(objpfx)libpthread.so): Depend on both crti and crtn
7173 and links to them in multidir.
7174 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
7175
7158eae4
UD
71762003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
7177
7178 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7179 (lll_mutex_unlock): Use atomic_exchange_rel.
7180
edf205d5
UD
71812003-05-11 Ulrich Drepper <drepper@redhat.com>
7182
7183 * cond-perf.c (cons): Add missing locking around setting of alldone.
7184
a3f979a7
UD
71852003-05-10 Ulrich Drepper <drepper@redhat.com>
7186
7187 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
7188 related macros.
7189 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
7190
880867a4
UD
71912003-05-09 Ulrich Drepper <drepper@redhat.com>
7192
949ec764
UD
7193 * tst-sem6.c: New file.
7194 * Makefile (tests): Add tst-sem6.
7195
7196 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
7197 Use atomic_exchange_rel instead of atomic_exchange.
7198 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
7199 Likewise.
7200
7201 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
7202 code for lll_futex_wait and lll_futex_wake in static apps. Use
7203 vsyscall is possible.
7204
7205 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
7206 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
7207 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
7208 pthread_setaffinity_np.
7209 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
7210 and pthread_setaffinity_np.
7211 * Makefile (libpthread-routines): Add pthread_getaffinity and
7212 pthread_setaffinity.
7213
880867a4
UD
7214 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
7215 use it in case mmap to allocate the stack fails.
7216 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
7217 ARCH_MAP_FLAGS here.
7218 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
7219 ARCH_RETRY_MMAP.
7220
92d83c72
UD
72212003-05-08 Ulrich Drepper <drepper@redhat.com>
7222
7223 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
7224 handler implementation. It is now lockless in fork().
7225 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
7226 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
7227 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
7228 declare the __fork_*_lists.
7229 (struct fork_handler): Include pointers to all three functions.
7230 Add next, refcntr and need_signal elements.
7231 (__fork_handlers): New declaration.
7232 (__register_atfork_malloc): Remove declaration.
7233 (HAVE_register_atfork_malloc): Remove definition.
7234 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
7235 __pthread_child_handler variable.
7236 (__libc_pthread_init): Use __register_atfork instead of explicitly
7237 adding to the list.
7238 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
7239 and lll_futex_wake.
7240 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
7241
7242 * unwind.c (unwind_cleanup): Print error message and then abort. This
7243 function must never be reached.
7244
7245 * cond-perf.c: New file.
7246
be4d8038
UD
72472003-05-05 Ulrich Drepper <drepper@redhat.com>
7248
7249 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
7250
c6696b79
RM
72512003-05-04 Roland McGrath <roland@redhat.com>
7252
7253 * Makefile ($(objpfx)../libc.so): New target.
7254
7da168bf
UD
72552003-05-02 Ulrich Drepper <drepper@redhat.com>
7256
7257 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7258 (pthread_condattr_t): Size is only an int, don't use long for
7259 alignment.
7260 (pthread_mutexattr_t): Likewise.
7da168bf
UD
7261 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7262 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7263 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7264
9a7178d6
UD
72652003-05-01 Ulrich Drepper <drepper@redhat.com>
7266
7267 * sysdeps/i386/tls.h: Define THREAD_ID.
7268 * sysdeps/ia64/tls.h: Likewise.
7269 * sysdeps/powerpc/tls.h: Likewise.
7270 * sysdeps/s390/tls.h: Likewise.
7271 * sysdeps/sh/tls.h: Likewise.
7272 * sysdeps/x86_64/tls.h: Likewise.
7273 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
7274 record ownership.
7275 * pthread_mutex_timedlock.c: Likewise.
7276 * pthread_mutex_trylock.c: Likewise.
7277 * pthread_mutex_unlock.c: Likewise.
7278 * pthread_rwlock_trywrlock.c: Likewise.
7279 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
7280 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
7281 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
7282 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
7283
7284 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
7285 flag.
7286
a234e27d
UD
72872003-04-29 Jakub Jelinek <jakub@redhat.com>
7288
7289 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7290 (__SIZEOF_PTHREAD_COND_T): Define to 48.
7291 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
7292 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
7293 Make __align long long instead of long.
7294 (pthread_rwlock_t): Formatting.
7295 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
7296 (pthread_rwlock_t): Formatting.
7297 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
7298 (pthread_cond_t): Make __align long long instead of long.
7299 (pthread_rwlock_t): Move __flags field to the same position as in
7300 linuxthreads.
7301
f025c136
UD
73022003-04-30 Ulrich Drepper <drepper@redhat.com>
7303
7304 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
7305 * tst-rwlock7.c (do_test): Likewise.
7306
7531ab9e
RM
73072003-04-26 Roland McGrath <roland@redhat.com>
7308
7309 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
7310
299601a1
UD
73112003-04-22 Jakub Jelinek <jakub@redhat.com>
7312
299601a1
UD
7313 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
7314 sizeof (struct pthread).
7315 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 7316 1 struct pthread.
299601a1
UD
7317 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
7318 to 0.
7319 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
7320 struct pthread.
7321 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
7322 to 32-bit bytes.
7323 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
7324 tcbp.
7325 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
7326 unneccessarily.
7327 (NO_TLS_OFFSET): Define.
299601a1
UD
7328 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
7329 add TLS_TCB_SIZE unnecessarily.
299601a1 7330
950094f8
RM
73312003-04-22 Roland McGrath <roland@redhat.com>
7332
7333 * Makeconfig (shared-thread-library): Reverse link order to work
7334 around linker bug.
7335
dc2f6455
UD
73362003-04-22 Ulrich Drepper <drepper@redhat.com>
7337
7338 * semaphore.h: Fix typo in comment.
7339
e7608d77
UD
73402003-04-21 Ulrich Drepper <drepper@redhat.com>
7341
6a87ee19
UD
7342 * sysdeps/pthread/sigfillset.c: New file.
7343
e7608d77
UD
7344 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
7345 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
7346 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
7347 * sysdeps/pthread/sigaction.c: Likewise.
7348 * sysdeps/pthread/sigprocmask.c: New file.
7349 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
7350 __SIGRTMIN+1.
7351 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7352 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
7353 in this case.
7354
0b3df49e
UD
73552003-04-19 Ulrich Drepper <drepper@redhat.com>
7356
58a7a325
UD
7357 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
7358 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
7359
0b3df49e
UD
7360 * sysdeps/unix/sysv/linux/unregister-atfork.c
7361 (__unregister_atfork): Don't free memory not allocated dynamically.
7362
7363 * semaphore.h: Remove __THROW marker from cancellation points.
7364 * nptl/sysdeps/pthread/pthread.h: Likewise.
7365
7d74651e
UD
73662003-04-18 Ulrich Drepper <drepper@redhat.com>
7367
76a67697
UD
7368 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
7369 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
7370 __THROW.
7371
dd9d6538
JJ
73722003-04-16 Jakub Jelinek <jakub@redhat.com>
7373
7374 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
7375
4ab6f47c
RM
73762003-04-15 Roland McGrath <roland@redhat.com>
7377
7378 * forward.c (__pthread_unwind): Tweak to avoid warning.
7379
162434a6
UD
73802003-04-15 Ulrich Drepper <drepper@redhat.com>
7381
7382 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
7383
35909161
UD
73842003-04-14 Ulrich Drepper <drepper@redhat.com>
7385
18ddd3aa 7386 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
7387 overflow CFA advance instructions.
7388 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7389
18a8e730
UD
73902003-04-14 Jakub Jelinek <jakub@redhat.com>
7391
bd4f43b4
UD
7392 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
7393 * sysdeps/i386/pthread_spin_lock.c: Likewise.
7394 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
7395 defined.
7396
18a8e730
UD
7397 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
7398 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
7399 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
7400 DW_CFA_advance_loc for .Laddl-.Lsubl.
7401
08c765fa
UD
74022003-04-13 Ulrich Drepper <drepper@redhat.com>
7403
18a8e730
UD
7404 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
7405 position-independent unwind data for static libraries.
7406 Add missing unwind info. Add comments.
7407
ad2be852
UD
7408 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
7409 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7410 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
7411 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7412
177d1ad3
UD
74132003-04-12 Ulrich Drepper <drepper@redhat.com>
7414
08c765fa
UD
7415 * Makefile: Make sure all cancellation points are compiled with
7416 exception and asynchronous unwind tables.
7417
177d1ad3
UD
7418 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
7419 which mishandles loading of global object addresses in PIC.
7420 (THREAD_SETMEM_NC): Likewise.
7421
09d65ff3
UD
74222003-04-11 Ulrich Drepper <drepper@redhat.com>
7423
7424 * pthread.h: Define new data structure for cleanup buffer. Declare
7425 new cleanup handler interfaces.
7426 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
7427 (struct pthread): Add cleanup_jmp_buf pointer. Define
7428 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
7429 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
7430 it. Declare old cleanup handler installation functions.
7431 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
7432 handling.
7433 * cleanup_defer.c: Likewise.
7434 * cleanup_compat.c: New file. Old cleanup code.
7435 * cleanup_def_compat.c: New file. Old cleanup code.
7436 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
7437 if own thread descriptor.
7438 * unwind.c: New file.
7439 * forward.c: Add __pthread_unwind.
7440 * init.c (pthread_functions): Add __pthread_unwind.
7441 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
7442 Add ptr___pthread_unwind.
7443 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
7444 and unwind function.
7445 * Makefile (libpthread-routines): Add cleanup_compat,
7446 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
7447 table generation if necessary.
7448 * version.c: Record whether unwind support is compiled in.
7449 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
7450 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
7451 handler interfaces.
7452 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
7453 complication to generate unwind information for syscall wrappers.
68107ec0 7454 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
7455 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
7456 __cleanup_fct_attribute.
7457
7458 * Makefile: Add rules to build and run tst-cleanup0.
7459 * tst-cleanup0.c: New file.
7460 * tst-cleanup0.expect: New file.
7461
7462 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
7463 caller. Optimize to avoid often unecessary local variable.
7464
0dc44b51
RM
74652003-04-11 Roland McGrath <roland@redhat.com>
7466
7467 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
7468 sets variable `multidir'; include that.
7469 (generated): Add it.
7470 ($(objpfx)$(multidir)/crti.o): New target.
7471 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
7472
84a80719
UD
74732003-04-11 Ulrich Drepper <drepper@redhat.com>
7474
7475 * tst-attr2.c (do_test): Add cast to avoid warning.
7476 * tst-mutex4.c (do_test): Likewise.
7477
88ff4759
UD
74782003-04-10 Ulrich Drepper <drepper@redhat.com>
7479
7480 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
7481 in child.
7482
b2041097
UD
74832003-04-09 Ulrich Drepper <drepper@redhat.com>
7484
7485 * Makefile (tests): Add tst-detach1.
7486 * tst-detach1.c: New file.
7487
f9657e88
UD
74882003-04-08 Ulrich Drepper <drepper@redhat.com>
7489
9afe4964
UD
7490 * sysdeps/pthread/pthread.h: Remove duplicate
7491 pthread_cleanup_{push,pop} definitions.
7492
f9657e88
UD
7493 * tst-barrier2.c: Eliminate warnings.
7494 * tst-cancel4.c: Likewise.
7495 * tst-cond4.c: Likewise.
7496 * tst-cond6.c: Likewise.
7497 * tst-detach1.c: Likewise.
7498 * tst-rwlock4.c: Likewise.
7499 * tst-rwlock6.c: Likewise.
7500 * tst-rwlock7.c: Likewise.
7501 * tst-sem3.c: Likewise.
7502 * tst-spin2.c: Likewise.
7503 * tst-umask1.c: Likewise.
7504
69b35e86
UD
75052003-04-07 Ulrich Drepper <drepper@redhat.com>
7506
7507 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
7508
c70ad7d7
UD
75092003-04-06 Ulrich Drepper <drepper@redhat.com>
7510
7511 * descr.h (struct pthread): Move cancelhandling member to the front.
7512
54e0138f
UD
75132003-04-05 Ulrich Drepper <drepper@redhat.com>
7514
7515 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
7516 malloc_parent, and malloc_child statically.
7517 (__register_atfork_malloc): New function.
7518 (free_mem): Don't free any of the malloc_* variables on the list.
7519 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
7520 Define HAVE_register_atfork_malloc.
7521
b22d701b
UD
75222003-04-04 Ulrich Drepper <drepper@redhat.com>
7523
7524 * sysdeps/pthread/createthread.c (create_thread): Add some more
7525 comments explaining when to set multiple_threads and when not.
7526
7527 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7528 THREAD_ATOMIC_BIT_SET if not already defined.
7529 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
7530 THREAD_ATOMIC_BIT_SET:
7531 * sysdeps/x86_64/tls.h: Likewise.
7532 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
7533 THREAD_ATOMIC_CMPXCHG_VAL.
7534 (_pthread_cleanup_pop_restore): Likewise.
7535 * cancellation.c (__pthread_enable_asynccancel): Likewise.
7536 (__pthread_enable_asynccancel_2): Likewise.
7537 (__pthread_disable_asynccancel): Likewise.
7538 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7539 (__libc_disable_asynccancel): Likewise.
7540 * init.c (sigcancel_handler): Likewise.
7541 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
7542 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
7543
86246935
UD
75442003-04-03 Ulrich Drepper <drepper@redhat.com>
7545
7546 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
7547 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
7548 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
7549 * Makefile (tests): Add tst-cancel11.
7550 * tst-cancel11.c: New file.
7551
6b4686a5
UD
75522003-04-01 Ulrich Drepper <drepper@redhat.com>
7553
7554 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
7555 round, not the first. Use specific_used flag instead of local
7556 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
7557 (__free_tcb): Don't call deallocate_tsd here.
7558 (start_thread): Call deallocate_tsd here.
7559 * pthread_setspecific.c: Set specific_used flag really only when
7560 needed.
0d73a73b 7561 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 7562 * tst-tsd3.c: New file.
0d73a73b 7563 * tst-tsd4.c: New file.
6b4686a5 7564
42b2395d
UD
75652003-03-31 Ulrich Drepper <drepper@redhat.com>
7566
211d90c5
UD
7567 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
7568 Use atomic_exchange_and_add instead of __lll_add.
7569 (__lll_mutex_timedlock): Likewise.
7570 Patch by Ian Wienand.
7571
75722003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
7573
7574 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7575 (SINGLE_THREAD_P): Fix typo.
7576 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
7577
75782003-03-31 Ulrich Drepper <drepper@redhat.com>
7579
7580 * Makefile (tests): Add tst-align.
7581 * tst-align.c: New file.
7582 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 7583
42b2395d
UD
7584 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
7585 function correctly.
7586
211d90c5
UD
7587 * tst-tsd2.c: Add casts to avoid warnings.
7588
163b180f
UD
75892003-03-30 Ulrich Drepper <drepper@redhat.com>
7590
7591 * descr.h (struct pthread): Move most often used elements to the front.
7592
ea473bad
UD
75932003-03-29 Ulrich Drepper <drepper@redhat.com>
7594
7595 * Makefile (libpthread-routines): Add pthread_atfork.
7596 (libpthread-static-only-routines): Add pthread_atfork.
7597
dd731d53
UD
75982003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7599
7600 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
7601 of TLS_DTV_AT_TP.
7602 (INSTALL_DTV): Add parens.
7603 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
7604 Use passed descr instead of THREAD_SELF.
7605 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
7606 (__lll_mutex_timedlock_wait): Correct expected value after
7607 spurious wakeup.
7608 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
7609 Release lock before waking up the waiters.
7610 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
7611 criteria. Reorderstruct passed to cleanup handler. Fix
7612 handling of cancellation and failung pthread_mutex_unlock call.
7613 Use __pthread_enable_asynccancel_2 instead of
7614 __pthread_enable_asynccancel.
7615 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7616 Return result of lock re-get if it fails.
7617 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
7618 for __pthread_cleanup_push.
7619 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
7620 completely broken rwlock implementation.
7621 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7622 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
7623 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
7624 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
7625 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
7626 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
7627 versioned_symbol macro.
7628 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
7629 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
7630
c75d02f0
UD
76312003-03-27 Ulrich Drepper <drepper@redhat.com>
7632
5f5004df
UD
7633 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
7634 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
7635 and __helper_tid.
7636 (struct timer): Remove th and bar field.
7637 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
7638 debugging code. Create only one helper thread.
7639 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
7640 helper thread.
7641 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
7642 Renamed. Define statically. Use thread info from siginfo.
7643 (__helper_once): New variable.
7644 (__helper_tid): New variable.
7645 (__reset_helper_control): New function.
7646 (__start_helper_thread): New function.
7647
18d009ca
UD
7648 * pthread_create.c (start_thread): Don't use setjmp inside
7649 __builtin_expect to work around gcc bug.
7650
c75d02f0
UD
7651 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
7652 timer_delete syscall fails, but not with ENOSYS, set
7653 __no_posix_timers.
7654
7655 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
7656 (timer_settime): Fix typo.
28cf3058
UD
7657 * sysdeps/unix/sysv/linux/timer_getoverr.c
7658 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 7659
049ac259
JJ
76602003-03-27 Jakub Jelinek <jakub@redhat.com>
7661
7662 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
7663 offset of cleanupbuf.__prev.
7664
f93d39dd
JJ
76652003-03-26 Jakub Jelinek <jakub@redhat.com>
7666
7667 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
7668 of included file.
7669
f064e4c5
UD
76702003-03-26 Ulrich Drepper <drepper@redhat.com>
7671
7672 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
7673 NULL provide default definition to syscall.
7674
83e886a3
RM
76752003-03-25 Roland McGrath <roland@redhat.com>
7676
7677 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
7678 (timer_id2ptr): Fix typo.
7679
09402f5b
UD
76802003-03-25 Ulrich Drepper <drepper@redhat.com>
7681
7682 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
7683 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
7684 * sysdeps/ia64/pthreaddef.h: Likewise.
7685 * sysdeps/powerpc/pthreaddef.h: Likewise.
7686 * sysdeps/s390/pthreaddef.h: Likewise.
7687 * sysdeps/sh/pthreaddef.h: Likewise.
7688 * sysdeps/x86_64/pthreaddef.h: Likewise.
7689 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
7690 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
7691 being changed.
7692 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
7693 SIGTIMER is not unblocked.
7694 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
7695 RT signal taken.
7696 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
7697 be send.
7698 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
7699 pass pointer through as ID.
7700 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
7701 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
7702 * sysdeps/unix/sysv/linux/timer_create.c: New file.
7703 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
7704 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
7705 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
7706 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
7707 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
7708 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
7709 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
7710 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
7711 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
7712 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
7713 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
7714 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
7715 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
7716 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
7717 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
7718 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
7719 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
7720 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
7721 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
7722 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
7723 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
7724 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
7725 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
7726 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
7727 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
7728 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
7729 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
7730 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
7731 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
7732 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
7733
7734 * pthreadP.h: Remove FRAME_LEFT definition.
7735 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
7736 already left frame. Programs which have this problem are not POSIX
7737 compliant.
7738 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
7739
5e826ab5
UD
77402003-03-24 Ulrich Drepper <drepper@redhat.com>
7741
7742 * sysdeps/pthread/tst-timer.c: Check return values of the
7743 functions we test.
7744
b910f788
RM
77452003-03-23 Roland McGrath <roland@redhat.com>
7746
3045a1fe
RM
7747 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
7748 * tst-tls3mod.c: Likewise.
7749 * tst-tls1.c: Likewise.
7750 * tst-tls2.c: Likewise.
7751
85047fe3
RM
7752 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
7753 undefined behavior.
7754
b910f788
RM
7755 * tst-join5.c (tf1, tf2): Add a cast.
7756
7757 * Makeconfig (includes): Append -I$(..)nptl to this variable.
7758
7759 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
7760 Don't test anything.
7761 * tst-cond4.c: Likewise.
7762 * tst-cond6.c: Likewise.
7763 * tst-flock2.c: Likewise.
7764 * tst-mutex4.c: Likewise.
7765 * tst-rwlock4.c: Likewise.
7766 * tst-signal1.c: Likewise.
7767 * tst-spin2.c: Likewise.
7768 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
7769
7770 * tst-mutex4.c: Use test-skeleton.c.
7771 * tst-spin2.c: Likewise.
7772 * tst-sysconf.c: Likewise.
7773 * tst-barrier2.c: Likewise.
7774 * tst-cond4.c: Likewise.
7775 * tst-cond6.c: Likewise.
7776 * tst-rwlock4.c: Likewise.
7777 * tst-unload.c: Likewise.
7778 * tst-flock2.c (do_test): Use return instead of exit.
7779
4baa087a
RM
77802003-03-22 Jakub Jelinek <jakub@redhat.com>
7781
7782 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
7783
5a3ab2fc
UD
77842003-03-21 Ulrich Drepper <drepper@redhat.com>
7785
9f07eae2
UD
7786 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
7787 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
7788 instead of __lll_compare_and_swap.
7789 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
7790 Likewise.
7791 Removed definition if __lll_compare_and_swap.
7792
5a3ab2fc
UD
7793 * cancellation.c: Adjust for new form of compare&exchange macros.
7794 * cleanup_defer.c: Likewise.
7795 * init.c: Likewise.
7796 * libc-cancellation.c: Likewise.
7797 * old_pthread_cond_broadcast.c: Likewise.
7798 * old_pthread_cond_signal.c: Likewise.
7799 * old_pthread_cond_timedwait.c: Likewise.
7800 * old_pthread_cond_wait.c: Likewise.
7801 * pthread_cancel.c: Likewise.
7802 * pthread_create.c: Likewise.
7803 * pthread_detach.c: Likewise.
7804 * pthread_join.c: Likewise.
7805 * pthread_key_delete.c: Likewise.
7806 * pthread_setcancelstate.c: Likewise.
7807 * pthread_setcanceltype.c: Likewise.
7808 * pthread_timedjoin.c: Likewise.
7809 * pthread_tryjoin.c: Likewise.
7810 * sysdeps/pthread/createthread.c: Likewise.
7811
b1aea098
UD
78122003-03-20 Ulrich Drepper <drepper@redhat.com>
7813
7814 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 7815 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
7816 definitions. Replace uses with calls to atomic_* functions.
7817 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
7818 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
7819 __lll_test_and_set calls with atomic_exchange_and_add and
7820 atomic_exchange calls respectively.
7821 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
7822 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
7823 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
7824 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
7825 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
7826 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
7827 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
7828
7829 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
7830 returns the old value.
7831
100a7100
RM
78322003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
7833
7834 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
7835 int for variable OLDVAL and correct inline assembler contraint.
7836 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
7837 type int for variable OLD.
7838
7839 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
7840 only for s390-32.
7841 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
7842 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
7843 instead of multiple_threads field in the TCB.
7844
95767b36
UD
78452003-03-19 Ulrich Drepper <drepper@redhat.com>
7846
4009bf40
UD
7847 * sysdeps/i386/i686/bits/atomic.h: Removed.
7848 * sysdeps/i386/i586/bits/atomic.h: Removed.
7849 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
7850 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
7851 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
7852 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
7853 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
7854 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
7855 * atomic.h: Removed. Moved to glibc.
7856
560a784f
UD
7857 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
7858 support for clock selection.
7859
95767b36
UD
7860 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
7861 signalling waiters.
7862
043ad426
RM
78632003-03-18 Roland McGrath <roland@redhat.com>
7864
94659495
RM
7865 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7866 Add __lll_rel_instr first. Add memory clobber.
7867 (lll_mutex_unlock): Use __lll_test_and_set.
7868 From Paul Mackerras <paulus@samba.org>.
7869
7870 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
7871 unconditionally.
7872 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
7873 (SINGLE_THREAD_P): Add `header.' prefix.
7874 From Paul Mackerras <paulus@samba.org>.
7875
043ad426
RM
7876 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
7877 pthread_timedjoin_np to ...
7878 (libpthread: GLIBC_2.3.3): ... here.
7879 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
7880
7881 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7882 Avoid shadowing VAL variable.
7883
7884 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
7885 New macro.
7886
86a9ee5e
UD
78872003-03-18 Ulrich Drepper <drepper@redhat.com>
7888
ac9e0aa1
UD
7889 * Makefile (tests): Add tst-cond11.
7890 * tst-cond11.c: New file.
7891
a14b373c
UD
7892 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
7893 struct passed to cleanup handler to eliminate one more
7894 instruction.
7895 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7896
24a49f38
UD
7897 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
7898 (pthrad_cond_t): Replace __unused field with __clock.
7899
7900 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
7901 waken all waiters in cleanup handler.
7902 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
7903 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
7904
86a9ee5e
UD
7905 * pthread_condattr_getclock.c: New file.
7906 * pthread_condattr_setclock.c: New file.
7907 * sysdeps/pthread/pthread.h: Declare these new functions.
7908 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
7909 * Makefile (libpthread-routines): Add the new functions.
7910 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
7911 Renamed field to value. Document use of the bits.
7912 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
7913 change.
7914 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 7915 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
7916 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
7917 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
7918 Add __clock field.
7919 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7920 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7921 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7922 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7923 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
7924 Implement clock selection.
7925 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
7926 * pthread-errnos.sym: Add ENOSYS.
7927 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
7928 _POSIX_CLOCK_SELECTION.
7929 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
7930
7931 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
7932 invalid .size directive.
7933
98054a05
RM
79342003-03-17 Roland McGrath <roland@redhat.com>
7935
7936 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
7937 Formatting tweaks.
7938
001bea71
UD
79392003-03-17 Ulrich Drepper <drepper@redhat.com>
7940
4773086e
UD
7941 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
7942 Use __lll_add instead of spelling it out. Use protected symbol names.
7943 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
7944 Use __lll_add.
7945 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
7946 Renamed from lll_compare_and_swap. Use new name where necessary.
7947 (__lll_add): Defined.
7948 (__lll_dec_if_positive): Defined.
7949 (__lll_test_and_set): Defined.
7950 * sysdeps/ia64/pthread_spin_init.c: Removed.
7951 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
7952 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
7953 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
7954 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
7955 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
7956 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
7957 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
7958 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
7959 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
7960 __sync_lock_release_si.
7961 Patch by Jakub Jelinek.
7962
7963 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
7964 Fix timeout handling.
7965 (__lll_timedwait_tid): Likewise.
7966 (lll_unlock_wake_cb): Wake up other waiters if necessary.
7967 Patch by Jakub Jelinek.
7968
7969 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
7970
de4471dd
RM
79712003-03-17 Roland McGrath <roland@redhat.com>
7972
7973 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
7974 * sysdeps/pthread/pthread_spin_init.c: New file.
7975 * sysdeps/pthread/pthread_spin_unlock.c: New file.
7976 * sysdeps/powerpc/Makefile: New file.
7977 * sysdeps/powerpc/pthread_spin_lock.c: New file.
7978 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
7979 * sysdeps/powerpc/pthreaddef.h: New file.
7980 * sysdeps/powerpc/tcb-offsets.sym: New file.
7981 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
7982 * sysdeps/powerpc/tls.h: New file.
7983 * sysdeps/powerpc/bits/atomic.h: New file.
7984 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
7985 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
7986 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 7987
de4471dd
RM
7988 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
7989 * sysdeps/unix/sysv/linux/sem_post.c: New file.
7990 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
7991 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
7992 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
7993 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
7994 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
7995 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
7996 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
7997 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
7998 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
7999 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
8000 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
8001 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
8002 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
8003
8004 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
8005 not gettimeofday.
8006 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
8007 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8008 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
8009 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
8010 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8011
5778033f
UD
80122003-03-17 Ulrich Drepper <drepper@redhat.com>
8013
8014 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
8015 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
8016 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8017 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8018 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
8019
796038f8
RM
80202003-03-16 Roland McGrath <roland@redhat.com>
8021
8022 * tst-fork4.c: Include <string.h>.
8023 * tst-signal2.c: Likewise.
8024 * tst-mutex5.c (do_test): exit -> return.
8025 * tst-mutex2.c: Include <stdlib.h>.
8026
51d0678c
UD
80272003-03-16 Ulrich Drepper <drepper@redhat.com>
8028
5778033f
UD
8029 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8030 (__lll_mutex_timedlock_wait): Correct expected value after
8031 spurious wakeup. Otherwise we would never wait again.
8032
b6e2f87a
UD
8033 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
8034 zone versus inline asm stupidity. Use correct instructions.
8035
51d0678c
UD
8036 * tst-rwlock6.c: Add some more status output.
8037
8112cc70
RM
80382003-03-15 Roland McGrath <roland@redhat.com>
8039
8040 * sysdeps/pthread/configure.in: New file.
8041 * sysdeps/pthread/configure: New file (generated).
8042
49773c19
UD
80432003-03-15 Ulrich Drepper <drepper@redhat.com>
8044
8045 * allocatestack.c (allocate_stack): Store the exact stack size of
8046 user allocated stacks.
8047
eec0ca9f
JJ
80482003-03-15 Jakub Jelinek <jakub@redhat.com>
8049
8050 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
8051 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
8052 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8053 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
8054 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
8055 Use `header.' prefix.
8056 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
8057
a87731e2
UD
80582003-03-15 Ulrich Drepper <drepper@redhat.com>
8059
8060 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
8061 __builtin_frame_address, use stack pointer.
8062
8063 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
8064 instead of __builtin_frame_pointer.
8065
e22a221d
UD
80662003-03-14 Ulrich Drepper <drepper@redhat.com>
8067
92ed3daf
UD
8068 * tst-basic1.c (do_test): Add cast to avoid warning.
8069 * tst-basic2.c (do_test): Likewise.
8070
9b89567d
UD
8071 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
8072 amount of stack correction.
8073
e22a221d
UD
8074 * tst-fork4.c: Use test-skeleton.c.
8075
2e49caba
RM
80762003-03-14 Roland McGrath <roland@redhat.com>
8077
8078 * init.c: Fix typo "#eli" for "#else".
8079
415ef7d8
RM
80802003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
8081
8082 * allocatestack.c (__stack_user): Use hidden_data_def.
8083 * pthread_create.c (__pthread_keys): Likewise.
8084
8085 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
8086
52287505
RM
80872003-03-14 Roland McGrath <roland@redhat.com>
8088
415ef7d8
RM
8089 * tst-fork4.c: New file.
8090 * Makefile (tests): Add it.
8091
52287505
RM
8092 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
8093 we always define the padding space.
8094 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
8095 stopped supporting its own extensions fully.
8096 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
8097 struct also called `header', so `header.multiple_threads' is the field
8098 name to use on all machines.
8099 * allocatestack.c (allocate_stack): Use `header.' prefix.
8100 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8101 * pthread_create.c (__pthread_create_2_1): Likewise.
8102 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
8103 (THREAD_SELF): Likewise.
8104 * sysdeps/x86_64/tls.h: Likewise.
8105 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8106 (SINGLE_THREAD_P): Likewise.
8107 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8108 (SINGLE_THREAD_P): Likewise.
8109 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
8110 (SINGLE_THREAD_P): Likewise.
8111
8112 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
8113 value directly.
8114
c44bf9aa
UD
81152003-03-14 Ulrich Drepper <drepper@redhat.com>
8116
e22a221d
UD
8117 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
8118 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
8119
0eb18281
UD
8120 * pthread_create.c (start_thread): setjmp is expected to return 0.
8121
c44bf9aa
UD
8122 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
8123 (THREAD_GETMEM_NC): Likewise.
8124
564cd8b6
UD
81252003-03-13 Ulrich Drepper <drepper@redhat.com>
8126
8127 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
8128 and the size of the stack which must be allocated is a multiple,
8129 allocate one more page.
8130 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
8131 MULTI_PAGE_ALIASING.
8132
6461e577
RM
81332003-03-13 Roland McGrath <roland@redhat.com>
8134
8135 * pthread_create.c (start_thread): Set EXITING_BIT after the
8136 event-reporting (and destructors), not before.
8137
b5ec5617
UD
81382003-03-13 Jakub Jelinek <jakub@redhat.com>
8139
6461e577
RM
8140 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
8141 lll_futex_wake): Declare register variables as long int instead of
8142 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
8143 Make syscall arguments clobbered by the syscall.
8144 (lll_futex_wait): Define using lll_futex_timed_wait.
8145
8146 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
8147 to void *.
8148
8149 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
8150 PPID if [! NDEBUG].
8151
8152 * allocatestack.c (nptl_ncreated): Only declare if
8153 COLORING_INCREMENT != 0.
8154
8155 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
8156 (__libc_enable_asynccancel_2): Remove prototype.
8157
b5ec5617
UD
8158 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
8159 ctid to match kernel.
8160
d0369fb8
UD
81612003-03-12 Ulrich Drepper <drepper@redhat.com>
8162
7588880f
UD
8163 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
8164 libc_multiple_threads.
8165 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
8166 __libc_multiple_threads to...
8167 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
8168
8169 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
8170 versioning.
8171 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8172 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8173
8174 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
8175 (__pthread_once_internal): Define.
8176
8177 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
8178 macros instead of .symver directly.
8179 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8180 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
8181
d0369fb8
UD
8182 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
8183 * sysdeps/x86_64/tcb-offsets.sym: New file.
8184 * sysdeps/x86_64/Makefile: New file.
8185
8186 * sysdeps/i386/tcb-offsets.sym: Add SELF.
8187 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
8188 to access own pthread_t in TCB.
8189 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8190 Likewise.
8191 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8192 Likewise.
8193 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8194
0bb2ac85
RM
81952003-03-12 Roland McGrath <roland@redhat.com>
8196
8197 * pthread-errnos.sym: New file.
8198 * Makefile (gen-as-const-headers): New variable, list that file.
8199 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
8200 header <pthread-errnos.h> instead of defining errno values here.
8201 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
8202 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8203 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8204 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8205 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8206 Likewise.
8207 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8208 Likewise.
8209 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8210 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8211 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8212 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8213 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8214 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8215 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8216 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8217 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8218 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8219 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
8220 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
8221 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8222 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
8223 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
8224 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8225 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8226 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8227 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8228 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8229 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8230 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8231 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
8232 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
8233 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
8234 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8235 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8236
8237 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
8238 CLONE_CHILD_SETTID worked.
8239
35e148cb
UD
82402003-03-12 Ulrich Drepper <drepper@redhat.com>
8241
d0369fb8
UD
8242 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
8243 file.
8244 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
8245 file.
8246
8247 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
8248 (pthread_cond_t): Add padding.
8249
da49194d
UD
8250 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
8251 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
8252 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
8253
35e148cb
UD
8254 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
8255 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
8256 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
8257 (__pthread_rwlock_timedrdlock): Likewise.
8258 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
8259 (__pthread_rwlock_wrlock): Likewise.
8260 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
8261 (__pthread_rwlock_rdlock): Likewise.
8262
8263 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
8264
8265 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
8266 result of lock re-get if it fails.
8267
3e976b96
UD
82682003-03-11 Ulrich Drepper <drepper@redhat.com>
8269
5a03acfe
UD
8270 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
8271 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
8272 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
8273 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
8274 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8275 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
8276 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
8277 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
8278 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
8279 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
8280
8281 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
8282 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
8283
8284 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
8285 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
8286 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
8287 (create_thread): Likewise.
8288 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
8289 * init.c (__pthread_initialize_minimal_internal): Initialize
8290 __libc_multiple_threads_ptr if necessary.
8291 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
8292 __pthread_multiple_threads and __libc_multiple_threads_ptr.
8293 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
8294 __libc_multiple_threads.
8295 (__libc_pthread_init): Return pointer to __libc_pthread_init if
8296 necessary.
8297
8298 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
8299 (THREAD_SETMEM_NC): Likewise.
8300
8301 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
8302 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
8303 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
8304 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
8305
8306 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
8307 Eliminate one entire instruction.
8308
32a589b1
UD
8309 * cancellation.c (__pthread_enable_asynccancel_2): New function.
8310 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
8311 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8312 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
8313 instead of __pthread_enable_asynccancel.
8314 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8315 (__pthread_cond_wait): Likewise.
8316 * sysdeps/pthread/pthread_cond_timedwait.c
8317 (__pthread_cond_timedwait): Likewise.
8318 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
8319
3e976b96
UD
8320 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
8321 (__condvar_cleanup): Wake up all waiters in case we got signaled
8322 after being woken up but before disabling asynchronous
8323 cancellation.
8324 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8325 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
8326 (__condvar_cleanup): Likewise.
8327
8328 * init.c (__NR_set_tid_address): If already defined, don't redefine.
8329 Make it an error if architecture has no #if case. Add x86-64.
8330
8331 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
8332 pt-initfini.s generation.
8333
8334 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
8335 (TLS_INIT_TP): Fix typo.
8336
6c477888
UD
83372003-03-11 Jakub Jelinek <jakub@redhat.com>
8338
8339 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
8340 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
8341
8342 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
8343 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
8344 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
8345 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
8346 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
8347 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8348 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8349 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
8350
ea694823
UD
83512003-03-11 Ulrich Drepper <drepper@redhat.com>
8352
6c477888
UD
8353 * sysdeps/pthread/pthread_cond_timedwait.c
8354 (__pthread_cond_timedwait): Return the result of the final
8355 locking. If it succeeds, the regular function return value.
8356
8357 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
8358 Return result of the final locking.
8359 * version.c (__nptl_main): Work around problems with the strange
8360 INTERNAL_SYSCALL macro on ppc32.
8361 * init.c (__pthread_initialize_minimal_internal): Unblock
8362 SIGCANCEL in case the parent blocked it.
8363 Reported by Paul Mackerras <paulus@samba.org>.
8364
ea694823
UD
8365 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
8366 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
8367 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
8368
b33e6163
RM
83692003-03-11 Jakub Jelinek <jakub@redhat.com>
8370
8371 * sysdeps/pthread/pthread_cond_timedwait.c
8372 (__pthread_cond_timedwait): Unlock and fail if
8373 __pthread_mutex_unlock_internal failed.
8374
8375 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
8376 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
8377 Use ARCH_CLONE.
8378 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
8379 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
8380 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
8381 ALLOCATE_STACK): New macros.
8382 (TLS_TPADJ): New macro.
8383 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
8384 (allocate_stack): Handle TLS_DTV_AT_TP and
8385 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
8386 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
8387 Don't set PD->self.
8388 * init.c [__ia64__] (__NR_set_tid_address): Define.
8389
8390 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
8391 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
8392 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
8393 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
8394 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
8395 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
8396 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
8397 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
8398 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
8399 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
8400 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
8401 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
8402 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
8403 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
8404 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
8405 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
8406 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
8407 * sysdeps/ia64/bits/atomic.h: New file.
8408 * sysdeps/ia64/Makefile: New file.
8409 * sysdeps/ia64/pthread_spin_init.c: New file.
8410 * sysdeps/ia64/pthread_spin_lock.c: New file.
8411 * sysdeps/ia64/pthread_spin_trylock.c: New file.
8412 * sysdeps/ia64/pthread_spin_unlock.c: New file.
8413 * sysdeps/ia64/pthreaddef.h: New file.
8414 * sysdeps/ia64/tcb-offsets.sym: New file.
8415 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
8416 * sysdeps/ia64/tls.h: New file.
8417
8418 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
8419 to syscall instead of no arguments.
8420
2b30b2e5
UD
84212003-03-10 Ulrich Drepper <drepper@redhat.com>
8422
db5f2fc9
UD
8423 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
8424 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
8425 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
8426 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
8427
8428 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
8429 unused code.
8430
6a4263e3
UD
8431 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
8432
3de7c2a9
UD
8433 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8434 lowlevelbarrier.sym.
8435 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
8436 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
8437 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 8438 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 8439
2a544d82
UD
8440 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
8441 (__lll_mutex_lock_wait): Reverse order of first two parameters.
8442 (__lll_mutex_timedlock_wait): Likewise.
8443 (lll_mutex_lock): Adjust asm for that.
8444 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
8445 (lll_lock): Adjust asm for operand order change.
8446 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
8447 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
8448
ec06436c
UD
8449 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
8450 Reverse order of parameters.
8451 (__lll_timedwait_tid): Remove regparms attribute.
8452 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
8453 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
8454
3273832c
UD
8455 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8456 (__lll_timedwait_tid): Remove one unnecessary instruction.
8457
51f32ab8
UD
8458 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
8459 __lll_mutex_timedlock_wait only for NOT_IN_libc.
8460 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
8461 lowlevelmutex.S.
8462
8463 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
8464 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
8465 for NOT_IN_libc.
8466 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
8467 lowlevellock.S.
8468
fad48d9e
UD
8469 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
8470 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
8471 for libc.so.
8472 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
8473 define LOCK here (if UP is not defined). The actual code is in
8474 lowlevelmutex.S.
8475
9356d063
UD
8476 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
8477 LOCK is already defined. Don't define lll_unlock_wake_cb and
8478 __lll_timedwait_tid for libc.so.
8479 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
8480 define LOCK here (if UP is not defined). The actual code is in
8481 lowlevellock.S.
8482
ebf0cbc5 8483 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
8484 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
8485 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
8486 instead of lowlevelsem.h.
8487 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
8488 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
8489 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 8490
c915e5ad
UD
8491 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
8492 lowlevelrwlock.sym.
8493 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
8494 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 8495 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 8496
4c3c2e8a
UD
8497 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
8498 register loading.
8499 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
8500 last changed. D'oh.
8501
2b30b2e5
UD
8502 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
8503
8504 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
8505 of __libc_locking_needed.
8506 (lll_trylock): Initialize %eax to zero.
8507
2b30b2e5
UD
8508 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
8509 pthread_cond_t definition.
8510
e48f9638
RM
85112003-03-10 Roland McGrath <roland@redhat.com>
8512
8513 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
8514 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
8515 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
8516 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
8517 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
8518
8519 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
8520 Instead of setting PD->multiple_threads, set globals
8521 __pthread_multiple_threads and __libc_multiple_threads.
8522 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8523 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
8524 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
8525
8526 * descr.h (struct pthread): Conditionalize first member on
8527 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
8528 containing an anonymous tcbhead_t. Move `list' member out.
8529 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
8530 * allocatestack.c: Remove use of `header.data.' prefix.
8531 * pthread_create.c: Likewise.
8532 * init.c (__pthread_initialize_minimal_internal): Likewise.
8533 * sysdeps/pthread/createthread.c (create_thread): Likewise.
8534 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
8535 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
8536 * sysdeps/x86_64/tls.h: Likewise.
8537 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
8538 (SINGLE_THREAD_P): Likewise.
8539 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
8540 (SINGLE_THREAD_P): Likewise.
8541 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
8542 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
8543
c37cae9e
UD
85442003-03-09 Ulrich Drepper <drepper@redhat.com>
8545
d38c777e
RM
8546 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
8547
7b44a5e0 8548 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 8549 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 8550
c2e5e085
UD
8551 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
8552 leftovers from the ia32 code.
8553
8554 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
8555 memory load.
8556 (clear_once_control): Don't load %esi.
8557
8558 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
8559 handling.
8560
8561 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
8562
cd4b2a55
UD
8563 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
8564 * sysdeps/unix/sysv/linux/createthread.c: ...here.
8565
c37cae9e
UD
8566 * Makefile (tests): Add tst-cond10.
8567 * tst-cond10.c: New file.
8568
d130a341
UD
85692003-03-08 Ulrich Drepper <drepper@redhat.com>
8570
ccf1d573
UD
8571 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
8572 * tst-signal3.c (do_test): Likewise.
8573 * tst-sem5.c (do_test): Likewise.
8574 * tst-kill6.c (do_test): Likewise.
8575 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
8576
8577 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
8578 of inc/dec.
8579 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
8580 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
8581 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
8582 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
8583 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8584 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8585 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8586 Likewise.
8587 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8588 Likewise.
8589 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8590 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8591 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8592 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8593 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8594 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
8595 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
8596 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
8597
d130a341
UD
8598 * allocatestack.c (allocate_stack): If mprotect() fails free the
8599 TLS memory.
8600
bc6389ad
UD
86012003-03-07 Ulrich Drepper <drepper@redhat.com>
8602
41d4d223
UD
8603 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
8604
8605 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
8606 lll_wake_tid. This was used only to work around kernel limits in
8607 the early days.
8608 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
8609 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
8610 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
8611 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
8612
bc6389ad
UD
8613 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
8614 (__pthread_initialize_minimal_internal): Change initialization of
8615 __static_tls_align_m1 appropriately.
8616 * pthreadP.h (__static_tls_align_m1): Renamed from
8617 __static_tls_align.
8618 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
8619 instead of __static_tls_align-1.
8620
cc775edf
UD
86212003-03-04 Ulrich Drepper <drepper@redhat.com>
8622
0de28d5c 8623 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 8624
518b5308
UD
8625 * pthread_create.c: Define __pthread_keys using nocommon
8626 attribute, not by placing it explicitly in bss.
8627 Remove DEFINE_DEALLOC definition. Not needed anymore.
8628
8629 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
8630 Use it in mmap call to allocate stacks.
8631
8632 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
8633
cc775edf
UD
8634 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
8635 result of the thread function.
8636
4f6f0a8f
UD
86372003-03-03 Ulrich Drepper <drepper@redhat.com>
8638
f04a2721
UD
8639 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
8640 version is just fine.
8641
4f6f0a8f
UD
8642 * sysdeps/unix/sysv/linux/libc_pthread_init.c
8643 (__pthread_child_handler): Renamed from pthread_child_handler,
8644 exported, and marked hidden. Change all users.
8645 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
8646 free __pthread_child_handler from child list.
8647
7ce5c164
UD
86482003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
8649
8650 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
8651
8652 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8653 Fix handling of cancellation and failing pthread_mutex_unlock call.
8654 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
8655 (__pthread_cond_wait): Likewise.
8656
8657 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
8658 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
8659 lll_futex_timed_wait call.
8660 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
8661 (pthread_rwlock_timedwrlock): Likewise.
8662
8663 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
8664 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
8665 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
8666
8667 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
8668 check of lll_futex_wake return value.
8669
ea6a015b
RM
86702003-03-03 Roland McGrath <roland@redhat.com>
8671
8672 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
8673
8674 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8675 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
8676 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
8677
4adacf57
UD
86782003-03-02 Ulrich Drepper <drepper@redhat.com>
8679
1be3d664
UD
8680 * sysdeps/pthread/timer_create.c (timer_create): Return correct
8681 error for CPU clocks.
8682
885bafa1
UD
8683 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8684 _POSIX_MONOTONIC_CLOCK.
8685 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8686
4adacf57
UD
8687 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
8688 recent kernels.
8689
86bfff4d
UD
86902003-03-01 Ulrich Drepper <drepper@redhat.com>
8691
8692 * descr.h (struct pthread): Move cleanup field to the front.
8693
d1149385
RM
86942003-03-01 Roland McGrath <roland@redhat.com>
8695
8696 * sem_open.c (sem_open): Braino fix.
8697
bd8bb78b
UD
86982003-03-01 Ulrich Drepper <drepper@redhat.com>
8699
748bec08
UD
8700 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
8701 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
8702 __pthread_cleanup_pop functionality.
8703 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8704
bd8bb78b
UD
8705 * descr.h (struct pthread): Move tid field to the front now that
8706 it is often used.
8707
8708 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
8709 (__lll_mutex_timedlock_wait): Remove.
8710 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8711 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
8712 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
8713 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8714 (lll_unlock_wake_cb): Don't save and restore %esi.
8715 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8716 %esi.
8717 (__lll_timedwait_tid): Add alignment.
8718 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
8719 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
8720 %esi.
8721 (__lll_timedwait_tid): Removed.
8722 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
8723 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
8724 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
8725 (pthread_barrier_wait): Don't save, load, and restore %esi for
8726 last thread.
8727 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
8728 (__pthread_cond_signal): Don't save, load, and restore %esi.
8729 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
8730 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
8731 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
8732 Don't save, load, and restore %esi.
8733
d2637c70
UD
87342003-02-27 Ulrich Drepper <drepper@redhat.com>
8735
567fb22a
UD
8736 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
8737 Release lock before waking up the waiters.
8738
427f5fa1
UD
8739 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
8740
a2d83cfb
UD
8741 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
8742 (reader_thread): Likewise.
8743
d2637c70
UD
8744 * sysdeps/pthread/pthread_rwlock_unlock.c
8745 (__pthread_rwlock_unlock): Release internal lock early. Don't try
8746 to wake up readers if there are none.
8747
8748 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
8749 Release internal lock before wake threads.
8750
b1531183
UD
87512003-02-26 Ulrich Drepper <drepper@redhat.com>
8752
dbf6131c
UD
8753 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
8754 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
8755 predefined.
8756 * tst-rwlock9.c: Likewise.
8757 * tst-rwlock10.c: New file.
8758 * tst-rwlock11.c: New file.
8759
695799fe
UD
8760 * Makefile (tests): Add tst-dlsym1.
8761 * tst-dlsym1.c: New file.
8762
b1531183
UD
8763 * init.c (__pthread_initialize_minimal_internal): Set
8764 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
8765 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
8766
3724f268
UD
87672003-02-24 Ulrich Drepper <drepper@redhat.com>
8768
3857ca78
UD
8769 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
8770
80d80779
UD
8771 * tst-cond2.c: Fix sychronization with child.
8772
86371308
UD
8773 * tst-rwlock8.c (reader_thread): Remove unused variable.
8774
ffeb4481
UD
8775 * Makefile: Add rules to build and run tst-tls3.
8776 * tst-tls3.c: New file.
8777 * tst-tls3mod.c: New file.
8778
3724f268
UD
8779 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
8780 * tst-rwlock8.c: New file.
8781 * tst-rwlock9.c: New file.
8782 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
8783 complete broken rwlock implementation.
8784 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8785 Likewise.
8786 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8787 Likewise.
8788 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8789 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
8790 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
8791 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
8792 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
8793 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
8794 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 8795
8915cc40
RM
87962003-02-23 Roland McGrath <roland@redhat.com>
8797
8798 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
8799
fd1a0d0c
UD
88002003-02-23 Ulrich Drepper <drepper@redhat.com>
8801
ecf28959
UD
8802 * Makefile (tests): Add tst-context1.
8803 * tst-context1.c: New file.
8804
5e47b76b
UD
8805 * Makefile (tests): Add tst-tls1 and tst-tls2.
8806 * tst-tls1.c: New file.
8807 * tst-tls2.c: New file.
8808
5a6bbb41
UD
8809 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
8810 for failed cmpxchg.
8811
fd1a0d0c
UD
8812 * pthread_create.c (start_thread): Set EXITING_BIT early.
8813
8814 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
8815 (THREAD_GETMEM_NC): Likewise.
8816
757f9fcb
UD
88172003-02-22 Ulrich Drepper <drepper@redhat.com>
8818
b1b8e747
UD
8819 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
8820 off 3 more bytes by using offset-less instructions when possible.
8821
c780aa21 8822 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
8823
8824 * eintr.c (eintr_source): Add unnecessary return but the compiler
8825 insists.
8826
8827 * tst-kill3.c: Include <unistd.h>.
8828
5148559c
RM
88292003-02-21 Roland McGrath <roland@redhat.com>
8830
8831 * pthread_create.c (start_thread): Call __libc_thread_freeres.
8832
ab2d98e3
UD
88332003-02-21 Ulrich Drepper <drepper@redhat.com>
8834
71028edd
UD
8835 * Makefile (tests): Add tst-eintr1.
8836 (distribute): Add eintr.c.
8837 * tst-eintr1.c: New file.
8838 * eintr.c: New file.
8839
e814f748
UD
8840 * pthread_cancel.c (pthread_cancel): Use tkill directly.
8841
8842 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
8843 Disallow sending SIGCANCEL.
8844
ab2d98e3 8845 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 8846 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
8847 * tst-kill1.c: New file.
8848 * tst-kill2.c: New file.
8849 * tst-kill3.c: New file.
8850 * tst-kill5.c: New file.
9c03686d 8851 * tst-kill6.c: New file.
e814f748
UD
8852 * tst-basic7.c: Renamed to...
8853 * tst-kill4.c: ...this.
ab2d98e3 8854
59fed0e2
RM
88552003-02-21 Roland McGrath <roland@redhat.com>
8856
8857 * Makefile (install-lib-ldscripts): New variable.
8858
49dc759f
UD
88592003-02-21 Ulrich Drepper <drepper@redhat.com>
8860
8c2e9a29
UD
8861 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
8862 * pthread_cancel.c: Use INVALID_TD_P.
8863 * pthread_detach.c: Likewise.
8864 * pthread_getschedparam.c: Likewise.
8865 * pthread_setschedparam.c: Likewise.
8866 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8867 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8868 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
8869 * pthread_timedjoin.c: Likewise.
8870
8871 * tst-basic7.c: Include <signal.h>.
8872
49dc759f
UD
8873 * pthread_join.c (pthread_join): Limited checking for invalid
8874 descriptors.
8875 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
8876
df5803bf
UD
88772003-02-20 Ulrich Drepper <drepper@redhat.com>
8878
c5acd3d7
UD
8879 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
8880 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
8881 * Makefile (tests): Add tst-key4.
8882 * tst-key4.c: New file.
8883
729924a0
UD
88842003-02-18 Ulrich Drepper <drepper@redhat.com>
8885
2f7dc594
UD
8886 * Makefile (tests): Add tst-basic7.
8887 * tst-basic7.c: New file.
8888
ba25bb0f
UD
8889 * pthread_create.c (deallocate_tsd): Mark as internal_function.
8890 Add some more __builtin_expect.
8891
12fd3c5f 8892 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 8893
5430d926
UD
88942003-02-17 Ulrich Drepper <drepper@redhat.com>
8895
b0db7fbe
UD
8896 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
8897 _POSIX_THREAD_PRIORITY_SCHEDULING.
8898 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
8899 _XOPEN_REALTIME_THREADS.
8900 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
8901
8902 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
8903 kernel returns EINVAL for PID <= 0, work around it.
8904
ecfda9bd
UD
8905 * Makefile (tests): Add tst-signal5.
8906 * tst-signal5.c: New file.
8907
7d78ab99
UD
8908 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
8909 and LOGIN_NAME_MAX.
8910
371a2972
UD
8911 * tst-cancel1.c (tf): Block all signals.
8912
5430d926
UD
8913 * Makefile (tests): Add tst-basic6.
8914 * tst-basic6.c: New file.
8915
8916 * tst-basic1.c: Add test for process ID.
8917
8918 * Makefile (tests): Add tst-cancel10.
8919 * tst-cancel10.c: New file.
8920
8921 * Makefile (tests): Add tst-signal4.
8922 * tst-signal4.c: New file.
8923
8924 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
8925 __sigismember instead of sigismember. Add __builtin_expect.
8926
1564916a
UD
89272003-02-16 Ulrich Drepper <drepper@redhat.com>
8928
179ff175
UD
8929 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
8930 pthread_setcancelstate, and pthread_rwlock_setpshared.
8931
e4335f9a
UD
8932 * tst-cancel7.c (do_test): Make sure the pid file exists before
8933 canceling the thread.
8934
0a37669a
UD
8935 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
8936 pthread_rwlock_timedrdlock tests.
8937 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
8938 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8939 Check for invalid tv_nsec field.
8940 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8941 Likewise.
8942
8943 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
8944 recursive mutex of overflow.
8945
8946 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
8947
e4335f9a 8948 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
8949 going into an endless loop.
8950 * Makefile (tests): Add tst-cancel9.
8951 * tst-cancel9.c: New file.
8952
8953 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
8954
b270b548
UD
89552003-02-15 Ulrich Drepper <drepper@redhat.com>
8956
1c82b97f
UD
8957 * tst-mutex5.c (do_test): Add more timedlock tests.
8958
b2f05465 8959 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
8960 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
8961
e798b60f
UD
8962 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
8963 use INLINE_SYSCALL. Error number is returned, not -1.
8964
90491dc4
UD
8965 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
8966 and __deallocate_stack with internal_function.
8967 * pthread_create.c: Adjust definitions appropriately.
8968 * allocatestack.c: Likewise.
8969
8970 * pthread_join.c: Add one more __builtin_expect.
8971 * pthread_timedjoin.c: Likewise.
8972
8973 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
8974 not data of sequence number does not match.
8975 Add one __builtin_expect.
8976
c6247c9d
UD
8977 * Makefile (tests): Add tst-clock1.
8978 * tst-clock1.c: New file.
8979
b270b548
UD
8980 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
8981 negative arguments.
8982 * Makefile (tests): Add tst-basic5.
8983 * tst-basic5.c: New file.
8984
700bf7af
UD
89852003-02-14 Ulrich Drepper <drepper@redhat.com>
8986
757de559
UD
8987 * Makefile (tests): Add tst-basic4.
8988 * tst-basic4.c: New file.
8989
47202270
UD
8990 * pthreadP.h: Add declaraction for __nptl_nthreads.
8991 * pthread_create.c: Define __nptl_nthreads
8992 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 8993 after thread is done. If then zero, call exit(0).
47202270
UD
8994 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
8995 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
8996 * init.c (pthread_functions): Initialize ptr_nthreads.
8997 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
8998 (__reclaim_stacks): Decrement __nptl_nthreads.
8999 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
9000 Define.
9001 * Makefile (tests): Add tst-basic3.
9002 * tst-basic3.c: New file.
9003
e320ef46
UD
9004 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
9005 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
9006 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
9007 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
9008 if asynchronous canceling is enabled.
9009 * pthread_join.c (pthread_join): When recognizing circular joins,
9010 take into account the other thread might be already canceled.
9011 * Makefile (tests): Add tst-join5.
9012 * tst-join5.c: New file.
9013
700bf7af
UD
9014 * Makefile (tests): Add tst-join4.
9015 * tst-join4.c: New file.
9016
90172003-02-13 Ulrich Drepper <drepper@redhat.com>
9018
9019 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
9020
dac0f772
UD
90212003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
9022
9023 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
9024 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
9025 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
9026 warning.
9027 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
9028 to avoid warning.
9029 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
9030 error if lll_futex_wake failed.
9031
e8cda341
UD
90322003-02-13 Ulrich Drepper <drepper@redhat.com>
9033
a7720b5e
UD
9034 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
9035 handling of cancellation and failung pthread_mutex_unlock call.
9036 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9037 * Makefile (tests): Add tst-cond8 and tst-cond9.
9038 * tst-cond8.c: New file.
9039 * tst-cond9.c: New file.
9040
a1ea4c06
UD
9041 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
9042
9043 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
9044 non-standard initializers with __USE_GNU.
9045
e8cda341
UD
9046 * Makefile (tests): Add tst-cleanup3.
9047 * tst-cleanup3.c: New file.
9048
2067577c
UD
90492003-02-12 Ulrich Drepper <drepper@redhat.com>
9050
89e78a95
UD
9051 * Makefile (tests): Add tst-attr1 and tst-attr2.
9052 * tst-attr1.c: New file.
9053 * tst-attr2.c: New file.
9054
dfdd294a
UD
9055 * Makefile: Add rules to build and run tst-atfork2 test.
9056 * tst-atfork2.c: New file.
9057 * tst-atfork2mod.c: New file.
9058
9059 * sysdeps/unix/sysv/linux/unregister-atfork.c
9060 (__unregister_atfork): Free the memory allocated for the handlers
9061 after removing them from the lists.
9062
9063 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
9064 cleanup function.
9065
9066 * tst-atfork1.c (do_test): Wait for the child we forked.
9067 Report error in child.
9068
9069 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
9070
2067577c
UD
9071 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
9072
2a8a8a84
UD
90732003-02-10 Ulrich Drepper <drepper@redhat.com>
9074
d9dd121e
UD
9075 * Makefile (tests): Add tst-cancel8.
9076 * tst-cancel8.c: New file.
9077
2a8a8a84
UD
9078 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
9079 clearing of control variable.
defd1870 9080 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 9081 * tst-once3.c: New file.
defd1870 9082 * tst-once4.c: New file.
2a8a8a84 9083
a54e8d33
UD
90842003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
9085
9086 * sysdeps/sh/Makefile: New file.
9087 * sysdeps/sh/bits/atomic.h: New file.
9088 * sysdeps/sh/pthread_spin_init.c: New file.
9089 * sysdeps/sh/pthread_spin_lock.c: New file.
9090 * sysdeps/sh/pthread_spin_trylock.S: New file.
9091 * sysdeps/sh/pthread_spin_unlock.S: New file.
9092 * sysdeps/sh/pthreaddef.h: New file.
9093 * sysdeps/sh/tcb-offsets.sym: New file.
9094 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
9095 * sysdeps/sh/tls.h: New file.
9096 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
9097 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
9098 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
9099 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
9100 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
9101 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
9102 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
9103 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
9104 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
9105 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
9106 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
9107 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
9108 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
9109 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
9110 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
9111 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
9112 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
9113 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
9114 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
9115 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
9116 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
9117 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
9118 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
9119 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
9120 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
9121 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
9122 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
9123 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
9124 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
9125 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
9126
696e556e
UD
91272003-02-08 Ulrich Drepper <drepper@redhat.com>
9128
9129 * tst-cond2.c: Rearrange code to not rely on behavior undefined
9130 according to POSIX.
9131
9132 * tst-basic2.c (do_test): Lock mutex before creating the thread.
9133
fef710d6
UD
91342003-02-07 Ulrich Drepper <drepper@redhat.com>
9135
c6180643
UD
9136 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
9137 (TLS_GET_FS): New #define.
9138 (TLS_SET_FS): New #define.
9139 Correct value of __NR_set_thread_area.
9140
fef710d6
UD
9141 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
9142
11090a99
UD
91432003-02-06 Ulrich Drepper <drepper@redhat.com>
9144
65c68990
UD
9145 * Makefile (tests): Add tst-popen1.
9146 * tst-popen1.c: New file.
9147
11090a99
UD
9148 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
9149 but inactive generalization.
9150 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9151 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9152 Minor optimization, remove one instruction.
9153 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9154
a88c9263
UD
91552003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
9156
9157 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
9158
91592003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
9160
9161 * init.c (__NR_set_tid_address): Add #ifdef for s390.
9162 * sysdeps/pthread/pthread_barrier_wait.c: New file.
9163 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
9164 * sysdeps/pthread/pthread_cond_signal.c: New file.
9165 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
9166 * sysdeps/pthread/pthread_cond_wait.c: New file.
9167 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
9168 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
9169 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
9170 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
9171 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
9172 * sysdeps/s390/Makefile: New file.
9173 * sysdeps/s390/bits/atomic.h: New file.
9174 * sysdeps/s390/pthread_spin_init.c: New file.
9175 * sysdeps/s390/pthread_spin_lock.c: New file.
9176 * sysdeps/s390/pthread_spin_trylock.c: New file.
9177 * sysdeps/s390/pthread_spin_unlock.c: New file.
9178 * sysdeps/s390/pthreaddef.h: New file.
9179 * sysdeps/s390/tcb-offsets.sym: New file.
9180 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
9181 * sysdeps/s390/tls.h: New file.
9182 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
9183 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
9184 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
9185 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
9186 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
9187 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
9188 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9189 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
9190 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
9191 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
9192 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
9193 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
9194 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
9195 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
9196 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
9197 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
9198 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
9199 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
9200 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
9201 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
9202 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
9203 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
9204 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
9205
6f1cff95
UD
92062003-02-04 Ulrich Drepper <drepper@redhat.com>
9207
ec609a8e
UD
9208 * atomic.h: Add a couple more default implementations.
9209 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
9210 __arch_compare_and_exchange_32_acq in return value definition. It
9211 always exists.
9212 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 9213 Add missing atomic_ prefixes.
e3ec8904 9214
6f1cff95
UD
9215 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
9216 thread library is available, use correct value to mark initialized
9217 once variable.
9218
4f088329
UD
92192003-02-03 Ulrich Drepper <drepper@redhat.com>
9220
6f1cff95
UD
9221 * allocatestack.c (allocate_stack): Use __getpagesize instead of
9222 __sysconf to determine pagesize.
9223
3e4fc359 9224 * pthread_create.c: Include <atomic.h>.
4f088329
UD
9225 * allocatestack.c (allocate_stack): Implement coloring of the
9226 allocated stack memory. Rename pagesize to pagesize_m1. It's the
9227 size minus one. Adjust users.
3e4fc359 9228 * sysdeps/i386/i686/Makefile: New file.
4f088329 9229
2f42e8be
UD
92302003-02-02 Ulrich Drepper <drepper@redhat.com>
9231
4301f7e2
UD
9232 * allocatestack.c: Improve comment throughout the file.
9233
2f42e8be 9234 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 9235 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
9236 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
9237 (__lll_lock_wait): Likewise.
9238 (lll_unlock_wake_cb): Removed.
9239
4a7d6545
UD
92402003-01-31 Ulrich Drepper <drepper@redhat.com>
9241
9242 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
9243 _POSIX_THREAD_PRIORITY_SCHEDULING.
9244
886d5973
UD
92452003-01-30 Jakub Jelinek <jakub@redhat.com>
9246
9247 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
9248 Fix return type of ptr___pthread_getspecific.
9249
e474ca78
UD
92502003-01-29 Ulrich Drepper <drepper@redhat.com>
9251
9252 * Makefile (tests): Add tst-umask1.
9253 (tst-umask1-ARGS): Define.
9254 * tst-umask1.c: New file.
9255
e6ebd2e4
UD
92562003-01-28 Ulrich Drepper <drepper@redhat.com>
9257
6cf26f41
UD
9258 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
9259 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
9260 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
9261 pthread_rwlock_unlock.
9262 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
9263 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
9264 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
9265 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
9266 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9267 New file.
9268 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
9269 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9270 New file.
9271 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
9272 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
9273 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
9274 New file.
9275 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
9276 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
9277 New file.
9278 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
9279 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
9280 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
9281 New file.
9282 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
9283 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
9284 New file.
9285 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
9286
1d087a7e
UD
9287 * Makefile (libpthread-routines): Remove lowlevelcond and
9288 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
9289 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
9290 and pthread_cond_broadcast.
4a99d160
UD
9291 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
9292 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
9293 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
9294 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
9295 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
9296 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
9297 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
9298 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
9299 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
9300 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
9301 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
9302 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
9303 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
9304 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
9305 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
9306 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
9307 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
9308 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
9309 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
9310 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
9311 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
9312 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
9313 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
9314 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
9315 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
9316 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
9317 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
9318 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
9319 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
9320 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
9321 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 9322
e6ebd2e4
UD
9323 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
9324 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
9325 of the code is moved to ...
9326 * sysdeps/pthread/createthread.c: ...here. New file.
9327
a15698cb
UD
93282003-01-27 Ulrich Drepper <drepper@redhat.com>
9329
0566b130
UD
9330 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
9331 (__new_sem_post): Clear %eax before returning.
9332 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
9333
e6fb8846
UD
9334 * Makefile (tests): Add tst-cleanup2.
9335 * tst-cleanup2.c: New file.
9336
a15698cb
UD
9337 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
9338 Interpret first parameter correctly.
9339
8824b0a1
UD
93402003-01-17 Ulrich Drepper <drepper@redhat.com>
9341
9342 * Makefile (headers): Add bits/semaphore.h.
9343
850dcfca
UD
93442003-01-16 Jakub Jelinek <jakub@redhat.com>
9345
9346 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
9347 if not SHARED.
9348
574b892e
UD
93492003-01-14 Ulrich Drepper <drepper@redhat.com>
9350
a8d87c92
UD
9351 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
9352 must be used and mapping failed.
9353 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
9354
574b892e
UD
9355 * Makefile (CFLAGS-pthread_self.os): Define this, not
9356 CFLAGS-pthread_self.c.
9357
fb48047a
UD
93582003-01-13 Ulrich Drepper <drepper@redhat.com>
9359
47805511
UD
9360 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
9361 lll_unlock_wake_cb.
9362
fb48047a
UD
9363 * Makefile (libpthread-routines): Add version. Add rules to build
9364 version.os and banner.h.
9365 * version.c: New file.
9366
115bb61d
UD
93672003-01-13 Jakub Jelinek <jakub@redhat.com>
9368
9369 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
9370 the alias unconditional.
9371 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
9372
93732003-01-13 Ulrich Drepper <drepper@redhat.com>
9374
9375 * Makefile (CFLAGS-pthread_self.c): New definition.
9376
6aca81bb
UD
93772003-01-06 Jakub Jelinek <jakub@redhat.com>
9378
9379 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
9380 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
9381 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
9382 * init.c (__pthread_initialize_minimal_internal): Likewise.
9383
e9c7764e
UD
93842003-01-07 Jakub Jelinek <jakub@redhat.com>
9385
b5facfda
UD
9386 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
9387
e9c7764e
UD
9388 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9389 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9390 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9391 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9392 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
9393 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
9394
bef1e42f
UD
93952003-01-06 Jakub Jelinek <jakub@redhat.com>
9396
9397 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
9398 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
9399 * tst-cancel-wrappers.sh: Remove all exceptions.
9400
bbd17455
UD
94012003-01-05 Ulrich Drepper <drepper@redhat.com>
9402
a73ab6df
UD
9403 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
9404 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
9405
bbd17455
UD
9406 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
9407 Use __libc_pthread_functions array if SHARED.
9408
9409 * pthreadP.h: Move pthread_cond_2_0_t definition to...
9410 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
9411
9412 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
9413 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
9414 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
9415 __libc_ptf_call instead of __libc_maybe_call.
9416 (PTF): New #define.
9417 (__libc_cleanup_region_start): Wrap function name with PTF call.
9418 (__libc_cleanup_region_end): Likewise.
9419 (__libc_cleanup_end): Likewise.
9420
9421 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
9422 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
9423 * pthread_key_create.c: Add __pthread_key_create_internal alias.
9424 * pthreadP.h: Add prototypes.
9425
9426 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
9427 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
9428 __pthread_rwlock_unlock aliases.
9429 * pthreadP.h: Add prototypes for new aliases.
9430
9431 * pthreadP.h (struct pthead_functions): Moved to...
9432 * sysdeps/pthread/pthread-functions.h: ...here. New file.
9433 * init.c (pthread_functions): Add initializers for new elements.
9434
9435 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
9436 __pthread_cleanup_pop_restore aliases.
9437 * pthreadP.h: Add prototypes.
9438
9439 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
9440 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
9441 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
9442 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
9443 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
9444 * pthreadP.h: Adjust prototypes and callers.
9445
d27a78be
UD
94462003-01-04 Ulrich Drepper <drepper@redhat.com>
9447
b74121ae
UD
9448 * Makefile (tests): Add tst-cancel7.
9449 (tst-cancel7-ARGS): New variable.
bbd17455 9450 * tst-cancel7.c: New file.
b74121ae 9451
29bc410c
UD
9452 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
9453 around gcc defficiencies.
9454 * old_pthread_cond_signal.c: Likewise.
9455 * old_pthread_cond_timedwait.c: Likewise.
9456 * old_pthread_cond_wait.c: Likewise.
9457
d27a78be
UD
9458 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
9459
733f25e6
UD
94602003-01-03 Ulrich Drepper <drepper@redhat.com>
9461
7edb2ae3
UD
9462 * Makefile (tests): Add tst-cond7.
9463 * tst-cond7.c: New file.
9464
b1151300
UD
9465 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9466 (condvar_cleanup): Get condvar address from the right place.
9467
733f25e6
UD
9468 * atomic.h: Correct definitions of atomic_full_barrier,
9469 atomic_read_barrier, atomic_write_barrier.
9470
9471 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
9472 race-free.
9473 * old_pthread_cond_signal.c: Likewise.
9474 * old_pthread_cond_timedwait.c: Likewise.
9475 * old_pthread_cond_wait.c: Likewise.
9476
686b7223
UD
94772003-01-03 Jakub Jelinek <jakub@redhat.com>
9478
9479 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
9480
0e07706e
UD
94812003-01-03 Ulrich Drepper <drepper@redhat.com>
9482
997256dd
UD
9483 * pthreadP.h (pthread_cond_2_0_t): New type.
9484 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
9485 Use new type for the 2.0 condvar function prototypes.
9486 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
9487 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
9488 parameter.
9489 * old_pthread_cond_destroy.c: Likewise.
9490 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
9491 * old_pthread_cond_signal.c: Likewise.
9492 * old_pthread_cond_timedwait.c: Likewise.
9493 * old_pthread_cond_wait.c: Likewise.
9494
842d2817
UD
9495 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
9496 (__pthread_cond_wait): Don't save cancellation mode and seq value
9497 in same location.
9498
0e07706e
UD
9499 * herrno.c (__h_errno_location): Don't define as weak.
9500
bf293afe
UD
95012003-01-02 Jakub Jelinek <jakub@redhat.com>
9502
9503 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
9504 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
9505 and pthread_cond_wait.
9506 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
9507 Renamed to...
9508 (__pthread_cond_broadcast_2_0): ... this.
9509 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
9510 Renamed to...
9511 (__pthread_cond_destroy_2_0): ... this.
9512 * old_pthread_cond_init.c (__old_pthread_cond_init):
9513 Renamed to...
9514 (__pthread_cond_init_2_0): ... this.
9515 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
9516 Renamed to...
9517 (__pthread_cond_signal_2_0): ... this.
9518 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
9519 Renamed to...
9520 (__pthread_cond_wait_2_0): ... this.
9521 * pthread_cond_destroy.c: Include shlib-compat.h.
9522 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
9523 * pthread_cond_init.c: Include shlib-compat.h.
9524 (pthread_cond_init): Change strong_alias into versioned_symbol.
9525 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
9526 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
9527 fields.
9528 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
9529 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
9530 __pthread_cond_wait_2_0): New prototypes.
9531 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
9532 __old_pthread_cond_init, __old_pthread_cond_signal,
9533 __old_pthread_cond_wait): Removed.
9534 * init.c: Include shlib-compat.h.
9535 (pthread_functions): Guard ptr___pthread_attr_init_2_0
9536 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
9537 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
9538 ptr___pthread_cond_*_2_0 fields.
9539 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
9540 pthread_cond_*@GLIBC_2.0 compatibility symbols.
9541
9542 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
9543 LIBC_SIGACTION was not yet defined.
9544 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
9545 [!defined LIBC_SIGACTION] (__sigaction): New function and
9546 libc_hidden_weak.
9547 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
9548 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
9549
95502003-01-02 Jakub Jelinek <jakub@redhat.com>
9551
9552 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
9553
05df18c3
UD
95542003-01-02 Ulrich Drepper <drepper@redhat.com>
9555
9556 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
9557 New, larger type definition.
9558 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
9559 implementation.
9560 * Versions [libpthread]: Add definitions for new pthread_cond_*
9561 interfaces for version GLIBC_2.3.2.
9562 * pthread_cond_init.c: Update initialization for new type definition.
9563 * Makefile (libpthread-routines): Remove pthread_cond_wait,
9564 pthread_cond_timedwait, pthread_cond_signal, and
9565 pthread_cond_broadcast. Add old_pthread_cond_init,
9566 old_pthread_cond_destroy, old_pthread_cond_wait,
9567 old_pthread_cond_timedwait, old_pthread_cond_signal, and
9568 old_pthread_cond_broadcast.
9569 * old_pthread_cond_broadcast.c: New file.
9570 * old_pthread_cond_destroy.c: New file.
9571 * old_pthread_cond_init.c: New file.
9572 * old_pthread_cond_signal.c: New file.
9573 * old_pthread_cond_timedwait.c: New file.
9574 * old_pthread_cond_wait.c: New file.
9575 * pthreadP.h: Add prototypes for the compatibility interfaces.
9576
9577 * pthread_cond_destroy.c: Don't include <errno.h>.
9578
fd8979e4
UD
95792003-01-01 Ulrich Drepper <drepper@redhat.com>
9580
9581 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
9582 unnecessary zero offset when addressing MUTEX.
9583
6d6ee629
UD
95842002-12-31 Ulrich Drepper <drepper@redhat.com>
9585
9586 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9587 __register_atfork.
9588 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
9589 for __register_atfork.
9590
a4baf360
UD
95912002-12-31 Jakub Jelinek <jakub@redhat.com>
9592
9593 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
9594 instead of ASSEMBLER test macro.
9595
9596 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
9597 __libc_current_sigrtmax): Add libc_hidden_def.
9598
9599 * sysdeps/pthread/list.h: Remove assert.h include.
9600
e9395a94
UD
96012002-12-31 Ulrich Drepper <drepper@redhat.com>
9602
9603 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
9604 __pthread_initialize_minimal_internal not
9605 __pthread_initialize_minimal.
9606
89d6e444
UD
96072002-12-30 Ulrich Drepper <drepper@redhat.com>
9608
416d2de6
UD
9609 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
9610 __pthread_initialize_minimal as hidden.
9611
89d6e444
UD
9612 * init.c (__pthread_initialize_minimal_internal): Don't mark as
9613 constructor.
9614
96152002-12-31 Jakub Jelinek <jakub@redhat.com>
9616
9617 * Makefile ($(inst_libdir)/libpthread.so): Depend on
9618 $(common-objpfx)format.lds, include that into the output script.
9619 Fix comment.
9620 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
9621
8cac677c
UD
96222002-12-28 Andreas Jaeger <aj@suse.de>
9623
9624 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
9625 nsec resolution changes.
9626 (xstat64_conv): Likewise.
9627 (xstat32_conv): Likewise.
9628 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
9629 struct kernel_stat.
9630 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
9631 structs stat and stat64.
9632 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 9633 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 9634
49e9f864
UD
96352002-12-30 Jakub Jelinek <jakub@redhat.com>
9636
9637 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
9638 argument.
9639 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
9640 (pthread_exit): Use strong_alias to avoid warnings.
9641 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
9642 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
9643 ptr___pthread_attr_init_2_*.
9644 * init.c (pthread_functions): Adjust.
9645
bab09b26
UD
96462002-12-29 Ulrich Drepper <drepper@redhat.com>
9647
598d7a42
UD
9648 * forward.c: Make all functions available by default again. It
9649 caused too much trouble.
9650
bab09b26
UD
9651 * pt-siglongjmp.c: Removed.
9652
3b7ed871
UD
96532002-12-28 Jakub Jelinek <jakub@redhat.com>
9654
9655 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
9656 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
9657 * sysdeps/i386/Makefile: New file.
9658 * sysdeps/i386/tcb-offsets.sym: New file.
9659 * sysdeps/pthread/tcb-offsets.h: New file.
9660 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9661 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
9662
9663 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
9664 __register_atfork...
9665 (GLIBC_2.3.2): ...here.
9666
96672002-12-28 Ulrich Drepper <drepper@redhat.com>
9668
9669 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
9670 pthread_attr_setstackaddr with __attribute_deprecated__.
9671
270d9d47
UD
96722002-12-27 Jakub Jelinek <jakub@redhat.com>
9673
9674 * pt-system.c (system): Remove cancellation handling.
9675 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
9676 cancellation routines.
9677
131fd126
UD
96782002-12-28 Ulrich Drepper <drepper@redhat.com>
9679
afb2e954
UD
9680 * descr.h: Include <dl-sysdep.h>.
9681 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
9682 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
9683 (MULTIPLE_THREADS_OFFSET): Adjust offset.
9684 (SYSINFO_OFFSEET): Likewise.
9685
96862002-12-27 Jakub Jelinek <jakub@redhat.com>
9687
9688 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
9689 Define.
9690 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
9691 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
9692 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
9693 (USE_DL_SYSINFO): Undef.
9694
96952002-12-22 Jakub Jelinek <jakub@redhat.com>
9696
9697 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
9698 $(common-objpfx)libc.so.
9699 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
9700 it is bigger than pipe buffer size even on arches with bigger
9701 page size.
9702 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
9703
a218c9cf
UD
97042002-12-25 Ulrich Drepper <drepper@redhat.com>
9705
9706 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
9707 correct errno access for case that USE___THREAD is not defined.
9708
015a2dc9
UD
97092002-12-24 Ulrich Drepper <drepper@redhat.com>
9710
9711 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
9712 Patch by Marijn Ros <marijn@mad.scientist.com>.
9713
5220f9ac
RM
97142002-12-22 Roland McGrath <roland@redhat.com>
9715
9716 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
9717
1561bf63
UD
97182002-12-20 Ulrich Drepper <drepper@redhat.com>
9719
9720 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
9721
3325198e
UD
97222002-12-19 Ulrich Drepper <drepper@redhat.com>
9723
057c823f
UD
9724 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
9725 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
9726 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
9727
097eca29
UD
9728 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
9729 of int $0x80.
9730 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
9731 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
9732 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
9733 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
9734 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
9735 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
9736 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
9737 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
9738
9739 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
9740 sysenter.
9741 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
9742
9743 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
9744
5f5843e3
UD
9745 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
9746 in new TCB.
9747 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
9748 that sysinfo is properly initialized.
9749 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
9750 to 1 only for ld.so.
9751
3325198e
UD
9752 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
9753 RTLD_CORRECT_DYNAMIC_WEAK.
9754
74e8f2dc
UD
97552002-12-19 Jakub Jelinek <jakub@redhat.com>
9756
9757 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
9758 Use return 0 as 6th argument to FORWARD4.
9759 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
9760
df45b31e
UD
97612002-12-18 Ulrich Drepper <drepper@redhat.com>
9762
9763 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
9764 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
9765 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
9766 (INIT_SYSINFO): New #define.
9767 (TLS_TP_INIT): Use INIT_SYSINFO.
9768 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9769 At test to make sure SYSINFO_OFFSET value is correct.
9770 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
9771
3d539579
UD
97722002-12-18 Jakub Jelinek <jakub@redhat.com>
9773
9774 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
9775 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
9776 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
9777 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
9778 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
9779 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
9780 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
9781
d7913e0e
UD
97822002-12-18 Ulrich Drepper <drepper@redhat.com>
9783
f051627f
UD
9784 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
9785 macro instead of using int $0x80 directly.
9786
d7913e0e
UD
9787 * sysdeps/pthread/bits/stdio-lock.h: New file.
9788 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
9789 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
9790 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
9791 * Makefile (routines): Add libc-lowlevelmutex.
9792
9793 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
9794 __i686.get_pc_thunk.dx.
9795
f077a4a9
UD
97962002-12-17 Jakub Jelinek <jakub@redhat.com>
9797
9798 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
9799 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
9800 ($(objpfx)tst-cancel-wrappers.out): New rule.
9801 * tst-cancel-wrappers.sh: New test.
9802 * tst-locale1.c: Include signal.h.
9803 (uselocale): Test static linking of __libc_current_sigrt*.
9804
98052002-12-17 Ulrich Drepper <drepper@redhat.com>
9806
9807 * Makefile (tests): Add tst-cancel6.
9808 * tst-cancel6.c: New file
9809
bd499a3b
UD
98102002-12-17 Jakub Jelinek <jakub@redhat.com>
9811
9812 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
9813 Define meaningfully for assembler as well.
9814 * pthreadP.h (struct pthread_functions): Remove
9815 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
9816 and ptr_pthread_attr_init_2_1 fields.
9817 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
9818 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
9819 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
9820 (FORWARD3): Define using FORWARD4.
9821 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
9822 versions.
9823 * pt-system.c: Remove duplicate stdlib.h include.
9824
0a1063f4
UD
98252002-12-16 Ulrich Drepper <drepper@redhat.com>
9826
87d60668
UD
9827 * sem_init.c: Define sem_init@GLIBC_2.0.
9828 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
9829 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
9830
0a1063f4
UD
9831 * flockfile.c: Moved to...
9832 * sysdeps/pthread/flockfile.c: ...here. New file.
9833 * funlockfile.c: Moved to...
9834 * sysdeps/pthread/funlockfile.c: ...here. New file.
9835 * ftrylockfile.c: Moved to...
9836 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
9837
9634cf9d
UD
98382002-12-16 Jakub Jelinek <jakub@redhat.com>
9839
9840 * libc-cancellation.c: Guard both function with
9841 #if !defined NOT_IN_libc.
9842 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
9843 automatically provided pthread wrappers.
9844 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
9845 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
9846 nor in libpthread.
9847 * pt-open.c: Removed.
9848 * pt-fcntl.c: Removed.
9849 * pt-fsync.c: Removed.
9850 * pt-lseek.c: Removed.
9851 * pt-msgrcv.c: Removed.
9852 * pt-msgsnd.c: Removed.
9853 * pt-msync.c: Removed.
9854 * pt-nanosleep.c: Removed.
9855 * pt-open64.c: Removed.
9856 * pt-pause.c: Removed.
9857 * pt-pread.c: Removed.
9858 * pt-pread64.c: Removed.
9859 * pt-pwrite.c: Removed.
9860 * pt-pwrite64.c: Removed.
9861 * pt-read.c: Removed.
9862 * pt-recv.c: Removed.
9863 * pt-recvfrom.c: Removed.
9864 * pt-recvmsg.c: Removed.
9865 * pt-send.c: Removed.
9866 * pt-sendto.c: Removed.
9867 * pt-sigtimedwait.c: Removed.
9868 * pt-sigwait.c: Removed.
9869 * pt-wait.c: Removed.
9870 * pt-waitpid.c: Removed.
9871 * pt-write.c: Removed.
9872 * pt-accept.c: Removed.
9873 * pt-close.c: Removed.
9874 * pt-connect.c: Removed.
9875 * pt-lseek64.c: Removed.
9876 * pt-sendmsg.c: Removed.
9877 * pt-tcdrain.c: Removed.
9878
6ee8d334
UD
98792002-12-15 Ulrich Drepper <drepper@redhat.com>
9880
81fa9371
UD
9881 * init.c (__pthread_initialize_minimal_internal): Renamed from
9882 __pthread_initialize_minimal. Make old name an alias. This
9883 converts a normal relocation into a relative relocation.
9884
f3015aa5
UD
9885 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
9886
4cbc1950
UD
9887 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
9888 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
9889 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
9890 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
9891 pt-sigwaitinfo, pt-waitid, and pt-writev.
9892 * pt-creat.c: Removed.
9893 * pt-poll.c: Removed.
9894 * pt-pselect.c: Removed.
9895 * pt-readv.c: Removed.
9896 * pt-select.c: Removed.
9897 * pt-sigpause.c: Removed.
9898 * pt-sigsuspend.c: Removed.
9899 * pt-sigwaitinfo.c: Removed.
9900 * pt-waitid.c: Removed.
9901 * pt-writev.c: Removed.
9902
8454830b
UD
9903 * init.c (pthread_functions): New variable.
9904 (__pthread_initialize_minimal): Pass pointer to pthread_functions
9905 (or NULL) to __libc_pthread_init.
9906 * forward.c: Rewrite to use __libc:pthread_functions array to get
9907 function addresses.
9908 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
9909 prototype.
9910 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
9911 Take new parameter. Copy content of variable pointed to by it
9912 to __libc_pthread_init.
9913
9914 * pthreadP.h (struct pthread_functions): New type.
9915 (__libc_pthread_init): Declare.
9916
9917 * pthread_attr_destroy.c: Add namespace protected alias.
9918 * pthread_attr_getdetachstate.c: Likewise.
9919 * pthread_attr_getinheritsched.c: Likewise.
9920 * pthread_attr_getschedparam.c: Likewise.
9921 * pthread_attr_getschedpolicy.c: Likewise.
9922 * pthread_attr_getscope.c: Likewise.
9923 * pthread_attr_setdetachstate.c: Likewise.
9924 * pthread_attr_setinheritsched.c: Likewise.
9925 * pthread_attr_setschedparam.c: Likewise.
9926 * pthread_attr_setschedpolicy.c: Likewise.
9927 * pthread_attr_setscope.c: Likewise.
9928 * pthread_cond_broadcast.c: Likewise.
9929 * pthread_cond_destroy.c: Likewise.
9930 * pthread_cond_init.c: Likewise.
9931 * pthread_cond_signal.c: Likewise.
9932 * pthread_cond_wait.c: Likewise.
9933 * pthread_condattr_destroy.c: Likewise.
9934 * pthread_condattr_init.c: Likewise.
9935 * pthread_equal.c: Likewise.
9936 * pthread_exit.c: Likewise.
9937 * pthread_getschedparam.c: Likewise.
9938 * pthread_self.c: Likewise.
9939 * pthread_setcancelstate.c: Likewise.
9940 * pthread_setschedparam.c: Likewise.
9941 * pthread_mutex_destroy.c: Likewise.
9942 * pthread_mutex_init.c: Likewise.
9943 * pthreadP.h: Add prototypes for the aliases.
9944
0d5f4929
UD
9945 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
9946 multiple_threads member in correct TCB to 1.
9947
6ee8d334
UD
9948 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
9949 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
9950 member of thread decriptor, otherwise return unconditionally 1.
9951
2fb6444d
UD
99522002-12-14 Ulrich Drepper <drepper@redhat.com>
9953
9954 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
9955 regular Linux version. Remove file.
9956 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
9957 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
9958 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
9959 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
9960 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
9961 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
9962 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
9963 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
9964 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
9965 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
9966 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
9967 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
9968 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
9969 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
9970 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
9971 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
9972 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
9973 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
9974 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
9975 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
9976 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
9977 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
9978 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
9979 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
9980 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
9981 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
9982 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
9983 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
9984 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
9985 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
9986
86b2dc40
UD
99872002-12-14 Jakub Jelinek <jakub@redhat.com>
9988
9989 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
9990 * sysdeps/unix/sysv/linux/open.c: Removed.
9991 * sysdeps/unix/sysv/linux/fsync.c: Removed.
9992 * sysdeps/unix/sysv/linux/lseek.c: Removed.
9993 * sysdeps/unix/sysv/linux/msync.c: Removed.
9994 * sysdeps/unix/sysv/linux/read.c: Removed.
9995 * sysdeps/unix/sysv/linux/close.c: Removed.
9996 * sysdeps/unix/sysv/linux/creat.c: Removed.
9997 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
9998 * sysdeps/unix/sysv/linux/pause.c: Removed.
9999 * sysdeps/unix/sysv/linux/select.c: Removed.
10000 * sysdeps/unix/sysv/linux/write.c: Removed.
10001
9d263d72
UD
100022002-12-14 Ulrich Drepper <drepper@redhat.com>
10003
10004 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
10005 element in TCB to see whether locking is needed.
10006
10007 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
10008 MULTIPLE_THREADS_OFFSET value is correct.
10009
10010 * sysdeps/unix/sysv/linux/close.c: New file.
10011 * sysdeps/unix/sysv/linux/connect.S: New file.
10012 * sysdeps/unix/sysv/linux/creat.c: New file.
10013 * sysdeps/unix/sysv/linux/fsync.c: New file.
10014 * sysdeps/unix/sysv/linux/llseek.c: New file.
10015 * sysdeps/unix/sysv/linux/lseek.c: New file.
10016 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
10017 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
10018 * sysdeps/unix/sysv/linux/msync.c: New file.
10019 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
10020 * sysdeps/unix/sysv/linux/open.c: New file.
10021 * sysdeps/unix/sysv/linux/open64.c: New file.
10022 * sysdeps/unix/sysv/linux/pause.c: New file.
10023 * sysdeps/unix/sysv/linux/poll.c: New file.
10024 * sysdeps/unix/sysv/linux/pread.c: New file.
10025 * sysdeps/unix/sysv/linux/pread64.c: New file.
10026 * sysdeps/unix/sysv/linux/pselect.c: New file.
10027 * sysdeps/unix/sysv/linux/pwrite.c: New file.
10028 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
10029 * sysdeps/unix/sysv/linux/readv.c: New file.
10030 * sysdeps/unix/sysv/linux/recv.S: New file.
10031 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
10032 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
10033 * sysdeps/unix/sysv/linux/select.c: New file.
10034 * sysdeps/unix/sysv/linux/send.S: New file.
10035 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
10036 * sysdeps/unix/sysv/linux/sendto.S: New file.
10037 * sysdeps/unix/sysv/linux/sigpause.c: New file.
10038 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
10039 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
10040 * sysdeps/unix/sysv/linux/sigwait.c: New file.
10041 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
10042 * sysdeps/unix/sysv/linux/system.c: New file.
10043 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
10044 * sysdeps/unix/sysv/linux/wait.c: New file.
10045 * sysdeps/unix/sysv/linux/waitid.c: New file.
10046 * sysdeps/unix/sysv/linux/waitpid.c: New file.
10047 * sysdeps/unix/sysv/linux/writev.c: New file.
10048 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
10049
10050 * pt-readv.c: Fix comment.
10051
100522002-12-14 Jakub Jelinek <jakub@redhat.com>
10053
10054 * tst-cleanup1.c: Include stdlib.h.
10055
10056 * tst-cancel5.c: New test.
10057 * Makefile (tests): Add tst-cancel5.
10058 (tst-cancel5): Link against libc.so libpthread.so in that order.
10059
9ae0909b
UD
100602002-12-13 Ulrich Drepper <drepper@redhat.com>
10061
b7bdd9c4
UD
10062 * forward.c (test_loaded): Prevent recursive calls.
10063
9ae0909b
UD
10064 * Makefile (routines): Add libc-cancellation.
10065 * libc-cancellation.c: New file.
10066 * descr.h (struct pthread): Add multiple_threads field.
10067 * allocatestack.c (allocate_stack): Initialize multiple_header field of
10068 new thread descriptor to 1.
10069 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
10070 Initialize multiple_thread field after successful thread creation.
10071 * cancellation.c (__do_cancel): Move to pthreadP.h.
10072 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
10073 (__pthread_disable_asynccancel): Add internal_function attribute.
10074 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
10075 * pthread_setcancelstate.c: Likewise.
10076 * pthread_setcanceltype.c: Likewise.
10077 * pthread_exit.c: Likewise.
10078 * pthreadP.h (CANCELLATION_P): Likewise.
10079 (__do_cancel): Define as static inline.
10080 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
10081 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
10082 declarations.
10083 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
10084 fields. Define MULTIPLE_THREADS_OFFSET.
10085 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
10086 declaration.
10087 * sysdeps/unix/sysv/linux/accept.S: New file.
10088 * sysdeps/unix/sysv/linux/read.c: New file.
10089 * sysdeps/unix/sysv/linux/write.c: New file.
10090 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
10091 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
10092 initialization of __libc_locking_needed.
10093 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
10094 __libc_locking_needed, use multiple_threads field in TCB.
10095 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10096
22f20674
UD
100972002-12-12 Ulrich Drepper <drepper@redhat.com>
10098
2ad2e1e7
UD
10099 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
10100 version.
10101 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
10102
22f20674
UD
10103 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
10104 access to __libc_locking_needed for PIC.
10105
aa80bf86
UD
101062002-12-12 Jakub Jelinek <jakub@redhat.com>
10107
10108 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
10109 declare for libc.so.
10110 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
10111 expression.
10112 (__libc_lock_lock): Put into statement expression.
10113 (__libc_lock_unlock): Remove trailing semicolon.
10114 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
10115
24021373
RM
101162002-12-12 Roland McGrath <roland@redhat.com>
10117
10118 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
10119 "m" constraint to refer to __libc_locking_needed. Declare it here.
10120
14e7aece
UD
101212002-12-12 Ulrich Drepper <drepper@redhat.com>
10122
10123 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
10124 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
10125 Initialize __libc_locking_needed.
10126 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
10127 instead of __register_pthread_fork_handler.
10128 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
10129 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
10130 fork-gen with libc_pthread_init.
10131 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
10132 of __register_pthread_fork_handler.
10133 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
10134 of __register_pthread_fork_handler.
10135 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
10136 __libc_locking_needed to determine whether lock prefix can be avoided.
10137 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
10138
85631c8e
UD
101392002-12-11 Ulrich Drepper <drepper@redhat.com>
10140
da63009e
UD
10141 * Makefile (tests): Add tst-cleanup1.
10142 * tst-cleanup1.c: New file.
10143 * cancellation.c (__cleanup_thread): Removed.
10144 (__do_cancel): Remove call to __cleanup_thread.
10145 * pthreadP.h: Remove __cleanup_thread prorotype.
10146
000160a2
UD
10147 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
10148 Remember function and argument even if cancellation handler
10149 function is not available.
10150 (__libc_cleanup_region_end): Execute registered function directly if
10151 pthread functions are not available.
10152 (__libc_cleanup_end): Likewise.
10153
85631c8e
UD
10154 * init.c (__pthread_initialize_minimal): Fix initialization in
10155 static lib by preventing gcc from being too clever.
10156
dce8f2b6
UD
101572002-12-10 Ulrich Drepper <drepper@redhat.com>
10158
34a075be
UD
10159 * init.c (__pthread_initialize_minimal): Remove unneccesary
10160 sigaddset call.
10161
dce8f2b6
UD
10162 * Makefile (tests): We can run tst-locale2 now.
10163
e5e45b53
UD
101642002-12-09 Ulrich Drepper <drepper@redhat.com>
10165
10166 * Versions: Remove duplicated sigwait entry.
10167
bdb04f92
UD
101682002-12-08 Ulrich Drepper <drepper@redhat.com>
10169
1e506629
UD
10170 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
10171 inside libpthread.
10172
a3957dd5
UD
10173 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
10174
bdb04f92
UD
10175 * pthreadP.h: Declare __pthread_enable_asynccancel and
10176 __pthread_disable_asynccancel.
10177 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
10178 (CANCEL_RESET): Use __pthread_disable_asynccancel.
10179 * cancellation.c (__pthread_enable_asynccancel): New function.
10180 (__pthread_disable_asynccancel): New function.
10181 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
10182 * pt-close.c: Likewise.
10183 * pt-connect.c: Likewise.
10184 * pt-creat.c: Likewise.
10185 * pt-fcntl.c: Likewise.
10186 * pt-fsync.c: Likewise.
10187 * pt-lseek.c: Likewise.
10188 * pt-lseek64.c: Likewise.
10189 * pt-msgrcv.c: Likewise.
10190 * pt-msgsnd.c: Likewise.
10191 * pt-msync.c: Likewise.
10192 * pt-nanosleep.c: Likewise.
10193 * pt-open.c: Likewise.
10194 * pt-open64.c: Likewise.
10195 * pt-pause.c: Likewise.
10196 * pt-poll.c: Likewise.
10197 * pt-pread.c: Likewise.
10198 * pt-pread64.c: Likewise.
10199 * pt-pselect.c: Likewise.
10200 * pt-pwrite.c: Likewise.
10201 * pt-pwrite64.c: Likewise.
10202 * pt-read.c: Likewise.
10203 * pt-readv.c: Likewise.
10204 * pt-recv.c: Likewise.
10205 * pt-recvfrom.c: Likewise.
10206 * pt-recvmsg.c: Likewise.
10207 * pt-select.c: Likewise.
10208 * pt-send.c: Likewise.
10209 * pt-sendmsg.c: Likewise.
10210 * pt-sendto.c: Likewise.
10211 * pt-sigpause.c: Likewise.
10212 * pt-sigsuspend.c: Likewise.
10213 * pt-sigtimedwait.c: Likewise.
10214 * pt-sigwait.c: Likewise.
10215 * pt-sigwaitinfo.c: Likewise.
10216 * pt-system.c: Likewise.
10217 * pt-tcdrain.c: Likewise.
10218 * pt-wait.c: Likewise.
10219 * pt-waitid.c: Likewise.
10220 * pt-waitpid.c: Likewise.
10221 * pt-write.c: Likewise.
10222 * pt-writev.c: Likewise.
a3957dd5
UD
10223 * pthread_join.c: Likewise.
10224 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
10225
10226 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
10227 (__xpg_sigpause): New function.
10228 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
10229
6ccb3834
UD
102302002-12-07 Ulrich Drepper <drepper@redhat.com>
10231
09efc3ba
UD
10232 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
10233
10234 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
10235 _GI_pthread_cleanup_pop to pthreadP.h.
10236
10237 * ftrylockfile.c: Use _IO_lock_trylock instead of
10238 pthread_mutex_trylock.
10239
10240 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
10241 (CANCEL_RESET): Likewise.
10242 (__pthread_setcanceltype_): Declare.
10243 (__pthread_mutex_lock_internal): Declare.
10244 (__pthread_mutex_unlock_internal): Declare.
10245 (__pthread_once_internal): Declare.
10246 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
10247 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
10248
10249 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
10250 and pthread_mutex_unlock.
10251 * pthread_cond_wait.c: Likewise.
10252 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
10253 * pthread_mutex_unlock.c: Likewise.
10254
10255 * pthread_setcanceltype.c: Add additional alias
10256 __pthread_setcanceltype.
10257
10258 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
10259 * sem_open.c (sem_open): Likewise.
10260 Use __libc_open, __libc_write, and __libc_close instead of
10261 open, write, and close respectively.
10262
10263 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
10264 Rewrite as statement expression since it must return a value.
10265
10266 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
10267 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
10268 __pthread_kill.
10269
10270 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
10271 alias __pthread_once_internal.
10272
6ccb3834
UD
10273 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
10274
d3c9f895
UD
102752002-12-06 Ulrich Drepper <drepper@redhat.com>
10276
4614167a
UD
10277 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
10278 * tst-stdio1.c: New file.
10279 * tst-stdio2.c: New file.
10280
a4548cea
UD
10281 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
10282
d3c9f895
UD
10283 * Makefile (tests): Comment out tst-locale2 for now.
10284 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
10285
10286 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
10287 -D_IO_MTSAFE_IO.
10288 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
10289 Use _IO_lock_init instead of explicit assignment.
10290
10291 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
10292 Define __libc_lock_* and __libc_lock_recursive macros with
10293 lowlevellock macros, not pthread mutexes.
10294
10295 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
10296 of pthread_mutex_lock.
10297 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
10298 instead of pthread_mutex_unlock.
10299
fde89ad0
RM
103002002-12-06 Roland McGrath <roland@redhat.com>
10301
10302 * allocatestack.c (__stack_user): Use uninitialized defn.
10303 * init.c (__pthread_initialize_minimal): Initialize it here.
10304
11767d47
RM
103052002-12-05 Roland McGrath <roland@redhat.com>
10306
fde89ad0
RM
10307 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
10308 string.
10309 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
10310
11767d47
RM
10311 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
10312 missing & here too.
10313
440d8bc2
UD
103142002-12-05 Ulrich Drepper <drepper@redhat.com>
10315
10316 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10317 lowlevellock.
10318 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
10319 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
10320 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
10321 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
10322 for __libc_lock_* macros.
10323 * Makefile (routines): Add libc-lowlevellock.
10324
103252002-10-09 Roland McGrath <roland@redhat.com>
10326
10327 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
10328 Under [__PIC__], call the function via the pointer fetched for
10329 comparison rather than a call by name that uses the PLT.
10330 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
10331 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
10332 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
10333 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
10334 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
10335
d5ed0118
RM
103362002-12-04 Roland McGrath <roland@redhat.com>
10337
10338 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
10339
10340 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
10341 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
10342
10343 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
10344
eaa4099f
UD
103452002-12-04 Ulrich Drepper <drepper@redhat.com>
10346
10347 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
10348 a completely opaque, non-integer type.
10349 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
10350
33b5d0cc
UD
103512002-12-05 Jakub Jelinek <jakub@redhat.com>
10352
10353 * sysdeps/i386/tls.h: Include stdlib.h.
10354 * sysdeps/x86_64/tls.h: Likewise.
10355
7a5cdb30
UD
103562002-12-04 Ulrich Drepper <drepper@redhat.com>
10357
c4a6d859
UD
10358 * Makefile (tests): Add tst-locale2.
10359 (tests-static): Likewise.
10360 * tst-locale2.c: New file.
10361
7a5cdb30
UD
10362 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
10363 volatile and add memory clobbers to lock operations.
10364
d82d5d12
UD
103652002-12-03 Ulrich Drepper <drepper@redhat.com>
10366
69cae3cf
UD
10367 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
10368 * sysdeps/i386/i486/bits/atomic.h: New file.
10369 * sysdeps/i386/i586/bits/atomic.h: New file.
10370 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
10371 include i486 version.
10372 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
10373 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 10374 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 10375
e4044c01
UD
10376 * allocatestack.c (get_cached_stack): Don't crash if we first
10377 found a stack with a larger size then needed.
10378 Reported by Hui Huang <hui.huang@sun.com>.
10379
d82d5d12
UD
10380 * Makefile (tests): Add tst-sysconf.
10381 * tst-sysconf.c: New file.
10382
10383 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
10384 PTHREAD_THREADS_MAX.
10385
fa9a4ff0
RM
103862002-12-02 Roland McGrath <roland@redhat.com>
10387
10388 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
10389 Declare using hidden_proto instead of attribute_hidden, so there are
10390 non-.hidden static symbols for gdb to find.
10391 (__pthread_keys): Likewise.
10392 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
10393 * allocatestack.c (__stack_user): Likewise.
10394 * pthread_create.c (__pthread_keys): Likewise.
10395 (__nptl_threads_events, __nptl_last_event): Make these static instead
10396 of hidden.
10397 * pthread_key_create.c (__pthread_pthread_keys_max,
10398 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
10399
91949a33
UD
104002002-12-02 Ulrich Drepper <drepper@redhat.com>
10401
c22b52fa
UD
10402 * Makefile (tests): Add tst-locale1. If buid-static is yes link
10403 statically.
10404 * tst-locale1.c: New file.
10405
beb6aa41
UD
10406 * pthread_cond_timedwait.c: Include <stdlib.h>.
10407
91949a33
UD
10408 * Makefile (tests): Add tst-fork2 and tst-fork3.
10409 * tst-fork2.c: New file.
10410 * tst-fork3.c: New file.
10411
654dff90
UD
104122002-11-28 Ulrich Drepper <drepper@redhat.com>
10413
cb0e76b4
UD
10414 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
10415
10416 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
10417 require it to 200112L.
10418
10419 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
10420 instruction only if HAVE_CMOV is defined.
10421 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
10422
975aa229
UD
10423 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
10424
654dff90
UD
10425 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
10426
10427 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
10428
10429 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
10430
a3931336
UD
104312002-11-27 Ulrich Drepper <drepper@redhat.com>
10432
c10c099c
UD
10433 * sysdeps/x86_64/bits/atomic.h: New file.
10434
10435 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
10436 16-bit operations.
10437
dca99d27
UD
10438 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
10439 possible since gettid cannot fail.
10440
f78deea6
UD
10441 * sysdeps/x86_64/pthreaddef.h: New file.
10442
10443 * sysdeps/i386/pthreaddef.h (gettid): Removed.
10444
10445 * sysdeps/x86_64/pthread_spin_init.c: New file.
10446 * sysdeps/x86_64/pthread_spin_lock.c: New file.
10447 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
10448 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
10449
10450 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
10451 Add missing lock prefix. Minute optimization.
10452
10453 * tst-spin2.c (main): Also check successful trylock call.
10454
10455 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
10456 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
10457
10458 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
10459 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
10460
10461 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
10462 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
10463 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
10464
10465 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
10466 value in case of an error.
10467
a3931336
UD
10468 * sysdeps/x86_64/tls.h: New file.
10469
76a50749
UD
104702002-11-26 Ulrich Drepper <drepper@redhat.com>
10471
117c452c
UD
10472 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
10473 takes the array member name and the index as parameters.
10474 (THREAD_SETMEM_NC): Likewise.
10475 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
10476 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
10477 interfaces.
10478
10479 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
10480 to decide which code to use.
10481 (THREAD_SETMEM_NC): Likewise.
10482
76a50749
UD
10483 * allocatestack.c (queue_stack): Don't remove stack from list here.
10484 Do it in the caller. Correct condition to prematurely terminate
10485 loop to free stacks.
10486 (__deallocate_stack): Remove stack from list here.
10487
104882002-11-26 Ulrich Drepper <drepper@redhat.com>
10489
10490 * Makefile (tests): Add tst-stack1.
10491 * tst-stack1.c: New file.
10492
10493 * allocatestack.c (allocate_stack): Initialize the TCB on a user
10494 provided stack.
10495
10496 * pthread_attr_getstack.c: Return bottom of the thread area.
10497
104982002-11-25 Ulrich Drepper <drepper@redhat.com>
10499
10500 * Makefile (libpthread-routines): Add pt-allocrtsig and
10501 pthread_kill_other_threads.
10502 * pt-allocrtsig.c: New file.
10503 * pthread_kill_other_threads.c: New file.
10504 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
10505 all three functions.
10506 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
10507 allocrtsig.
10508 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
10509 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
10510 and __libc_allocate_rtsig_private.
10511 * Versions (libpthread): Export pthread_kill_other_threads_np,
10512 __libc_current_sigrtmin, and __libc_current_sigrtmax.
10513
105142002-11-24 Ulrich Drepper <drepper@redhat.com>
10515
10516 * allocatestack.c (allocate_stack): stackaddr in attribute points to
10517 the end of the stack. Adjust computations.
10518 When mprotect call fails dequeue stack and free it.
10519 * pthread_attr_setstack.c: Store top of the stack in stackaddr
10520 attribute.
10521 * pthread_getattr_np.c: Likewise.
10522
10523 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
10524 surprises.
10525
105262002-11-23 Ulrich Drepper <drepper@redhat.com>
10527
10528 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
10529 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10530
105312002-11-22 Ulrich Drepper <drepper@redhat.com>
10532
10533 * pthread_getspecific.c: Optimize access to first 2nd-level array.
10534 * pthread_setspecific.c: Likewise.
10535
105362002-11-21 Ulrich Drepper <drepper@redhat.com>
10537
10538 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
10539 definitions. Get them from the official place.
10540 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
10541
10542 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
10543 Use new CLONE_ flags in clone() calls.
10544
10545 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
10546 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
10547
10548 * Versions: Add pthread_* functions for libc.
10549 * forward.c: New file.
10550
10551 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
10552 errno-loc.
10553 * herrno.c: New file.
10554 * res.c: New file.
10555
10556 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
10557 sem_trywait, and sem_timedwait. Add herrno and res.
10558 * sem_init.c: Don't initialize lock and waiters members.
10559 * sem_open.c: Likewise.
10560 * sem_post.c: Removed.
10561 * sem_wait.c: Removed.
10562 * sem_trywait.c: Removed.
10563 * sem_timedwait.c: Removed.
10564 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
10565 Includes full implementations of sem_post, sem_wait, sem_trywait,
10566 and sem_timedwait.
10567 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
10568 for new implementation.
10569 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
10570 and waiters fields.
10571
10572 * tst-sem3.c: Improve error message.
10573 * tst-signal3.c: Likewise.
10574
10575 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
10576 to tell the kernel about the termination futex and to initialize tid
10577 member. Don't initialize main_thread.
10578 * descr.h (struct pthread): Remove main_thread member.
10579 * cancelllation.c (__do_cancel): Remove code handling main thread.
10580 The main thread is not special anymore.
10581
10582 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
10583 size of the stacks to stack_cache_actsize.
10584
10585 * pt-readv.c: Add missing "defined".
10586 * pt-sigwait.c: Likewise.
10587 * pt-writev.c: Likewise.
10588
105892002-11-09 Ulrich Drepper <drepper@redhat.com>
10590
10591 * Versions: Export __connect from libpthread.
10592 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10593
10594 * Makefile (libpthread-routines): Add pt-raise.
10595 * sysdeps/unix/sysv/linux/raise.c: New file.
10596 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
10597 * sysdeps/generic/pt-raise.c: New file.
10598
10599 * pthread_cond_init.c: Initialize all data elements of the condvar
10600 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
10601
10602 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
10603 * pthread_create.c: Likewise.
10604
10605 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
10606 * tst-key1.c: New file.
10607 * tst-key2.c: New file.
10608 * tst-key3.c: New file.
10609
10610 * Versions: Export pthread_detach for version GLIBC_2.0.
10611 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
10612
106132002-11-08 Ulrich Drepper <drepper@redhat.com>
10614
10615 * pthread_key_create.c: Terminate search after an unused key was found.
10616 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10617
10618 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
10619 Patch by Luca Barbieri <ldb@ldb.ods.org>.
10620
106212002-10-10 Ulrich Drepper <drepper@redhat.com>
10622
10623 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
10624 dynamic lookup for errno in PIC.
10625
10626 * allocatestack.c (get_cached_stack): Rearrange code slightly to
10627 release the stack lock as soon as possible.
10628 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
10629 the static TLS block.
10630 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
10631
10632 * cancellation.c: Renamed from cancelation.c.
10633 * Makefile: Adjust accordingly.
10634 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
10635 * cleanup_defer.c: Use CANCELLATION_P.
10636 * pthread_testcancel.c: Likewise.
10637 * descr.h: Fix spelling in comments.
10638 * init.c: Likewise.
10639 * pthread_getattr_np.c: Likewise.
10640 * pthread_getschedparam.c: Likewise.
10641 * pthread_setschedparam.c: Likewise.
10642 * Versions: Likewise.
10643
10644 * pt-pselect.c: New file.
10645 * Makefile (libpthread-routines): Add pt-pselect.
10646 * Versions: Add pselect.
10647
10648 * tst-cancel4.c: New file.
10649 * Makefile (tests): Add tst-cancel4.
10650
106512002-10-09 Ulrich Drepper <drepper@redhat.com>
10652
10653 * pthread_mutex_lock.c: Always record lock ownership.
10654 * pthread_mutex_timedlock.c: Likewise.
10655 * pthread_mutex_trylock.c: Likewise.
10656
10657 * pt-readv.c: New file.
10658 * pt-writev.c: New file.
10659 * pt-creat.c: New file.
10660 * pt-msgrcv.c: New file.
10661 * pt-msgsnd.c: New file.
10662 * pt-poll.c: New file.
10663 * pt-select.c: New file.
10664 * pt-sigpause.c: New file.
10665 * pt-sigsuspend.c: New file.
10666 * pt-sigwait.c: New file.
10667 * pt-sigwaitinfo.c: New file.
10668 * pt-waitid.c: New file.
10669 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
10670 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
10671 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
10672 * Versions: Add all the new functions.
10673
10674 * tst-exit1.c: New file.
10675 * Makefile (tests): Add tst-exit1.
10676
10677 * sem_timedwait.c: Minor optimization for more optimal fastpath.
10678
106792002-10-08 Ulrich Drepper <drepper@redhat.com>
10680
10681 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
10682
10683 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
10684 call. pthread_join is an official cancellation point.
10685 * pthread_timedjoin.c: Likewise.
10686
10687 * pthread_cond_wait.c: Revert order in which internal lock are dropped
10688 and the condvar's mutex are retrieved.
10689 * pthread_cond_timedwait.c: Likewise.
10690 Reported by dice@saros.East.Sun.COM.
10691
106922002-10-07 Ulrich Drepper <drepper@redhat.com>
10693
10694 * pthreadP.h: Cut out all type definitions and move them...
10695 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
10696 * pthreadP.h: Include <internaltypes.h>.
10697
10698 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
10699 performance tweaks.
10700
10701 * sem_trywait.c: Shuffle #includes around to get right order.
10702 * sem_timedwait.c: Likewise.
10703 * sem_post.c: Likewise.
10704 * sem_wait.c: Likewise.
10705
10706 * nptl 0.3 released.
10707
10708 * Makefile (tests): Add tst-signal3.
10709 * tst-signal3.c: New file.
10710
107112002-10-05 Ulrich Drepper <drepper@redhat.com>
10712
10713 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
10714 the asms modify the sem object.
10715 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
10716
10717 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
10718 the actual members.
10719 * pthreadP.h (struct sem): New type. Actual semaphore type.
10720 * semaphoreP.h: Include pthreadP.h.
10721 * sem_getvalue.c: Adjust to sem_t change.
10722 * sem_init.c: Likewise.
10723 * sem_open.c: Likewise.
10724 * sem_post.c: Likewise.
10725 * sem_timedwait.c: Likewise.
10726 * sem_trywait.c: Likewise.
10727 * sem_wait.c: Likewise.
10728
107292002-10-04 Ulrich Drepper <drepper@redhat.com>
10730
10731 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
10732 * tst-basic2.c: New file.
10733 * tst-exec1.c: New file.
10734 * tst-exec2.c: New file.
10735 * tst-exec3.c: New file.
10736
10737 * tst-fork1.c: Remove extra */.
10738
10739 * nptl 0.2 released. The API for IA-32 is complete.