]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
* stdlib/Makefile (tests): Add tst-ucontext-off.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
015a5d22
RM
12005-10-03 Jakub Jelinek <jakub@redhat.com>
2
3 * allocatestack.c (setxid_signal_thread): Add
4 INTERNAL_SYSCALL_DECL (err).
5
b71ce910
UD
62005-10-02 Jakub Jelinek <jakub@redhat.com>
7
8 * allocatestack.c (setxid_signal_thread): Need to use
9 atomic_compare_and_exchange_bool_acq.
10
dff9a7a1
UD
112005-10-01 Ulrich Drepper <drepper@redhat.com>
12 Jakub Jelinek <jakub@redhat.com>
13
14 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
15 CANCEL_RESTMASK.
16 (struct pthread): Move specific_used field to avoid padding.
17 Add setxid_futex field.
18 * init.c (sighandler_setxid): Reset setxid flag and release the
19 setxid futex.
20 * allocatestack.c (setxid_signal_thread): New function. Broken
21 out of the bodies of the two loops in __nptl_setxid. For undetached
22 threads check whether they are exiting and if yes, don't send a signal.
23 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
24 * pthread_create.c (start_thread): For undetached threads, check
25 whether setxid bit is set. If yes, wait until signal has been
26 processed.
27
28 * allocatestack.c (STACK_VARIABLES): Initialize them.
29 * pthread_create.c (__pthread_create_2_1): Initialize pd.
30
560b4709
UD
312004-09-02 Jakub Jelinek <jakub@redhat.com>
32
33 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
34 waiters, awake all waiters on the associated mutex.
35
5eac4760
RM
362005-09-22 Roland McGrath <roland@redhat.com>
37
38 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
39 ../sysdeps/x86_64/hp-timing.h).
40
a3615024
UD
412005-08-29 Jakub Jelinek <jakub@redhat.com>
42
43 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
44 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
45 (lll_futex_wake_unlock): Define.
46 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
47 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
48 (lll_futex_wake_unlock): Define.
49 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
50 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
51 (lll_futex_wake_unlock): Define.
52 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
53 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
54 (lll_futex_wake_unlock): Define.
55 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
56 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
57 (lll_futex_wake_unlock): Define.
58 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
59 lll_futex_wake_unlock.
60 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
61 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
62 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
63 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
64 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
65 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
66
bf017034
UD
672005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
68
69 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
70 Fix typo in register name.
71
fd4af664
UD
722005-08-23 Ulrich Drepper <drepper@redhat.com>
73
8558d715
UD
74 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
75 Use __sigfillset. Document that sigfillset does the right thing wrt
76 to SIGSETXID.
fd4af664 77
3fd1bc67
UD
782005-07-11 Jakub Jelinek <jakub@redhat.com>
79
44d75caf 80 [BZ #1102]
3fd1bc67
UD
81 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
82 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
83 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
84 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
85 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
86 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
87 in the structure.
88 * Makefile (tests): Add tst-initializers1.
89 (CFLAGS-tst-initializers1.c): Set.
90 * tst-initializers1.c: New test.
91
553185e2
UD
922005-07-11 Jakub Jelinek <jakub@redhat.com>
93
94 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
95 Make sure __flags are located at offset 48 from the start of the
96 structure.
97
8df08cb2
RM
982005-07-02 Roland McGrath <roland@redhat.com>
99
100 * Makeconfig: Comment fix.
101
253eb3a0
UD
1022005-07-05 Jakub Jelinek <jakub@redhat.com>
103
104 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
105 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
106 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
107 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
108 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
109 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
110 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
111 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
112 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
113 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
114
bb6e8ca3
UD
1152005-06-25 Jakub Jelinek <jakub@redhat.com>
116
117 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
118 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
119 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
120 fields.
121 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
122 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
123 field. Put in sysinfo field unconditionally.
124 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
125 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
126 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
127 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
128 fields.
129 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
130 * pthread_create.c (__pthread_create_2_1): Use
131 THREAD_COPY_STACK_GUARD macro.
132 * Makefile: Add rules to build and run tst-stackguard1{,-static}
133 tests.
134 * tst-stackguard1.c: New file.
135 * tst-stackguard1-static.c: New file.
136
99c7f870
UD
1372005-06-14 Alan Modra <amodra@bigpond.net.au>
138
139 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
140 Invoke CGOTSETUP and CGOTRESTORE.
141 (CGOTSETUP, CGOTRESTORE): Define.
142
8074c5c5
RM
1432005-05-29 Richard Henderson <rth@redhat.com>
144
145 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
146 (tf_write, tf_writev): Use it.
147 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
148 the system minimum.
149
c179df4e
UD
1502005-05-23 Jakub Jelinek <jakub@redhat.com>
151
152 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
153 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
154 __librt_*_asynccancel@local.
155
b0e196a4
UD
1562005-05-17 Alan Modra <amodra@bigpond.net.au>
157
158 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
159 all occurrences of JUMPTARGET. Instead append @local to labels.
160
f7d78e18
UD
1612005-05-20 Jakub Jelinek <jakub@redhat.com>
162
163 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
164 size/alignment of struct pthread rather than tcbhead_t.
165 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
166 Likewise.
167 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
168 Likewise.
169 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
170 Likewise.
171
363dd976
UD
1722005-05-19 Richard Henderson <rth@redhat.com>
173
174 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
175 __sync_val_compare_and_swap, not explicit _si variant.
176 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
177
1ad9da69
UD
1782005-05-03 Ulrich Drepper <drepper@redhat.com>
179
180 [BZ #915]
181 * sysdeps/pthread/pthread.h: Avoid empty initializers.
182
5085cd1f
UD
1832005-05-03 Jakub Jelinek <jakub@redhat.com>
184
185 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
186 .eh_frame section, use cfi_* directives.
187
ad529081
UD
1882005-04-27 Jakub Jelinek <jakub@redhat.com>
189
190 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
191 of "" includes.
192
dea99685
UD
1932005-04-27 Ulrich Drepper <drepper@redhat.com>
194
c06aad09 195 [BZ #1075]
dea99685
UD
196 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
197 aio_write blocks.
198
84060bad
RM
1992005-04-27 Roland McGrath <roland@redhat.com>
200
5e2d8ac8
RM
201 * Makefile (tests): Remove tst-clock2.
202
84060bad
RM
203 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
204 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
205 translating to the kernel clockid_t for our own process/thread clock.
206
207 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
208
4a035b9d
RM
2092005-04-15 Jakub Jelinek <jakub@redhat.com>
210
211 * old_pthread_cond_init.c: Include <errno.h>.
212 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
213 process shared or uses clock other than CLOCK_REALTIME.
214 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
215
edac0e8f
UD
2162005-04-13 David S. Miller <davem@davemloft.net>
217
218 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
219 * sysdeps/sparc/sparc64/clone.S: New file.
220
613d8d52
RM
2212005-04-05 Jakub Jelinek <jakub@redhat.com>
222
44d75caf 223 [BZ #1102]
613d8d52
RM
224 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
225 __inline instead of inline.
226 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
227
ee618985
UD
2282005-03-31 Jakub Jelinek <jakub@redhat.com>
229
230 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
231 functionally equivalent, but shorter instructions.
232 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
233 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
234 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
235 Likewise.
236 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
237 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
238 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
239 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
240 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
241 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
242 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
243 Likewise.
244 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
245 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
246 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
247 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
248 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
249
f850220b
AJ
2502005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
251
252 * sysdeps/mips/Makefile: New file.
253 * sysdeps/mips/nptl-sysdep.S: New file.
254 * sysdeps/mips/tcb-offsets.sym: New file.
255 * sysdeps/mips/pthread_spin_lock.S: New file.
256 * sysdeps/mips/pthread_spin_trylock.S: New file.
257 * sysdeps/mips/pthreaddef.h: New file.
258 * sysdeps/mips/tls.h: New file.
259 * sysdeps/mips/jmpbuf-unwind.h: New file.
260 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
261 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
262 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
263 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
264 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
265 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
266 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
267 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
268 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
269 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
270
1e6da2b0
UD
2712005-03-23 Ulrich Drepper <drepper@redhat.com>
272
c06aad09 273 [BZ #1112]
1e6da2b0
UD
274 * pthread_create.c (__pthread_create_2_1): Rename syscall error
275 variable to scerr.
276
5233d576
RM
2772005-03-10 Jakub Jelinek <jakub@redhat.com>
278
279 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
280
3053ff11
RM
2812005-02-25 Roland McGrath <roland@redhat.com>
282
283 * alloca_cutoff.c: Correct license text.
284 * tst-unload.c: Likewise.
285 * sysdeps/pthread/allocalim.h: Likewise.
286 * sysdeps/pthread/pt-initfini.c: Likewise.
287 * sysdeps/pthread/bits/libc-lock.h: Likewise.
288 * sysdeps/pthread/bits/sigthread.h: Likewise.
289 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
290 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
291
9cfe5381
RM
2922005-02-16 Roland McGrath <roland@redhat.com>
293
294 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
295 Use unsigned int * for ptr_nthreads.
296
7de00121
RM
2972005-02-14 Alan Modra <amodra@bigpond.net.au>
298
299 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
300 gcc4.
301
4bae262d
UD
3022005-02-07 Richard Henderson <rth@redhat.com>
303
613d8d52 304 [BZ #787]
4bae262d
UD
305 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
306 argument.
307
75df54b7
RM
3082004-11-03 Marcus Brinkmann <marcus@gnu.org>
309
310 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
311 order of arguments in invocation of atomic_add_zero.
312
ea9c93cc
UD
3132005-01-26 Jakub Jelinek <jakub@redhat.com>
314
9cfe5381 315 [BZ #737]
ea9c93cc
UD
316 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
317 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
318 at least gotntpoff relocation and addition.
319 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
320 Likewise.
321 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
322 Likewise.
323 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
324 Likewise.
325
9dcafc55
UD
3262005-01-06 Ulrich Drepper <drepper@redhat.com>
327
328 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
329 entry for static tls deallocation fix.
330 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
331 also contains information whether the memory pointed to is static
332 TLS or not.
333 * sysdeps/i386/tls.h: Likewise.
334 * sysdeps/ia64/tls.h: Likewise.
335 * sysdeps/powerpc/tls.h: Likewise.
336 * sysdeps/s390/tls.h: Likewise.
337 * sysdeps/sh/tls.h: Likewise.
338 * sysdeps/sparc/tls.h: Likewise.
339 * sysdeps/x86_64/tls.h: Likewise.
340
a71c152c
UD
3412004-12-27 Ulrich Drepper <drepper@redhat.com>
342
343 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
344
d143c49e
UD
3452004-12-21 Jakub Jelinek <jakub@redhat.com>
346
347 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
348 %esp.
349 * Makefile (tests): Add tst-align2.
350 * tst-align2.c: New test.
351 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
352 -mpreferred-stack-boundary=4.
353
50130ded
RM
3542004-12-18 Roland McGrath <roland@redhat.com>
355
356 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
357 New file removed withdrawn for the moment.
358
cbc53df0
RH
3592004-12-17 Richard Henderson <rth@redhat.com>
360
361 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
362 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 363
fb9d5c73
UD
3642004-12-16 Ulrich Drepper <drepper@redhat.com>
365
03332aa6
UD
366 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
367 Increased PTHREAD_STACK_MIN.
368
fb9d5c73
UD
369 * tst-context1.c (stacks): Use bigger stack size.
370
e853ea00
UD
3712004-12-16 Jakub Jelinek <jakub@redhat.com>
372
373 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
374 * sysdeps/sparc/tcb-offsets.sym: Add TID.
375
f23673fc
UD
3762004-12-15 Jakub Jelinek <jakub@redhat.com>
377
378 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
379 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
380 * sysdeps/s390/tcb-offsets.sym (TID): Add.
381
917fbe70
UD
3822004-12-15 Ulrich Drepper <drepper@redhat.com>
383
384 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
385
1f9d7c27
UD
3862004-12-14 Ulrich Drepper <drepper@redhat.com>
387
388 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
389 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
390
391 * tst-getpid1.c: If child crashes, report this first. Print which
392 signal.
393
bf7c04cd
UD
3942004-12-09 Ulrich Drepper <drepper@redhat.com>
395
396 * init.c (__pthread_initialize_minimal_internal): Also unblock
397 SIGSETXID.
398
3992004-12-01 Jakub Jelinek <jakub@redhat.com>
400
401 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
402 _POSIX_THREAD_CPUTIME): Define to 0.
403 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
404 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
405 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
406 __timer_signal_thread_tclk): Remove.
407 (init_module): Remove their initialization.
408 (thread_cleanup): Remove their cleanup assertions.
409 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
410 __timer_signal_thread_tclk): Remove.
411 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 412 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
413 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
414
484cc801
UD
4152004-12-07 Jakub Jelinek <jakub@redhat.com>
416
417 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
418 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
419
420 * Makefile (tests): Add tst-getpid2.
421 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
422 (do_test): Use it. Use __clone2 instead of clone on ia64.
423 * tst-getpid2.c: New test.
424
2da9a6a1
UD
4252004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
426
427 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
428
1ff241b8
UD
4292004-12-04 Ulrich Drepper <drepper@redhat.com>
430
431 * Makefile (tests): Add tst-getpid1.
432 * tst-getpid1.c: New file.
433 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
434 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
435
3f488b9c
RM
4362004-12-02 Roland McGrath <roland@redhat.com>
437
438 * Makefile (libpthread-nonshared): Variable removed.
439 ($(objpfx)libpthread_nonshared.a): Target removed.
440 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
441 These are now handled by generic magic from
442 libpthread-static-only-routines being set.
443
597ce09c
UD
4442004-11-27 Ulrich Drepper <drepper@redhat.com>
445
446 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
447 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
448 _POSIX_THREAD_PRIO_PROTECT): Define.
449 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
450 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
451 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
452
60e4523a
UD
4532004-11-26 Jakub Jelinek <jakub@redhat.com>
454
455 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
456 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
457 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
458 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
459 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
460 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
461 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
462
f1f2cafc
UD
4632004-11-24 Ulrich Drepper <drepper@redhat.com>
464
bca2d208
UD
465 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
466
f1f2cafc
UD
467 * Makefile (libpthread-routines): Add pthread_setschedprio.
468 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
469 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
470 * pthread_setschedprio.c: New file.
471
b639d0c9
UD
4722004-11-20 Jakub Jelinek <jakub@redhat.com>
473
ef2bb413
UD
474 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
475 * pthread_cancel.c (pthread_create): Likewise.
476
b639d0c9
UD
477 * Makefile (libpthread-routines): Add vars.
478 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
479 * init.c (__default_stacksize, __is_smp): Remove.
480 * vars.c: New file.
481 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
482 and define a wrapper macro.
483 (PTHREAD_STATIC_FN_REQUIRE): Define.
484 * allocatestack.c (__find_thread_by_id): Undefine.
485 * pthread_create (__pthread_keys): Remove.
486 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
487 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
488 PTHREAD_STATIC_FN_REQUIRE.
489
3defcff3
UD
4902004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
491
492 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
493 parameter to REGISTER macro.
494
ec188f92
RM
4952004-11-17 Roland McGrath <roland@redhat.com>
496
497 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
498 Make sure SIGCANCEL is blocked as well.
499
ccd8de9a
UD
5002004-11-10 Jakub Jelinek <jakub@redhat.com>
501
502 * sysdeps/pthread/setxid.h: New file.
503 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
504 (struct xid_command): Add forward decl.
505 (struct pthread_functions): Change return type of __nptl_setxid hook
506 to int.
507 * pthreadP.h (__nptl_setxid): Change return type to int.
508 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
509 calling thread, return its return value and set errno on failure.
510 * descr.h (struct xid_command): Change id type to long array.
511
512 * Makefile: Add rules to build and test tst-setuid1 and
513 tst-setuid1-static.
514 * tst-setuid1.c: New test.
515 * tst-setuid1-static.c: New test.
516
ed2ced8a
UD
5172004-11-10 Jakub Jelinek <jakub@redhat.com>
518
519 * Makefile (tests): Add tst-exit3.
520 * tst-exit3.c: New test.
521
948603ee
UD
5222004-11-09 Ulrich Drepper <drepper@redhat.com>
523
524 * Makefile (tests): Add tst-exit2.
525 * tst-exit2.c: New file.
526
ba5ffd2a
RM
5272004-11-09 Roland McGrath <roland@redhat.com>
528
529 [BZ #530]
530 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
531 here, before calling clone.
532 * pthread_create.c (start_thread): Don't do it here.
533
c4d7bd39
RM
5342004-11-02 Jakub Jelinek <jakub@redhat.com>
535
536 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
537
543fb0c8
UD
5382004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
539
540 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
541 Set ETIMEDOUT to errno when time is up. Tweak to avoid
542 assembler warning.
543
a1fbd858
UD
5442004-10-28 Jakub Jelinek <jakub@redhat.com>
545
546 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
547 if sched_priority is not between minprio and maxprio.
548
c2a4357a
UD
5492004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
550
551 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
552 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
553
554 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
555 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
556
78d8d211
UD
5572004-10-24 Ulrich Drepper <drepper@redhat.com>
558
559 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
560 not-cancelable I/O functions.
561
dd28590f
UD
5622004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
563
564 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
565 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
566 make sure 2 is stored in the futex and we looked at the old value.
567 Fix a few other problems to return the correct value.
568
f8c97af7
RH
5692004-10-14 Richard Henderson <rth@redhat.com>
570
571 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
572 make gcc4 happy.
573
3feb8efa
UD
5742004-10-06 Jakub Jelinek <jakub@redhat.com>
575
576 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
577 of pthread-functions.h and pthreaddef.h.
578 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
579
580 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
581 Change __data.__nwaiters from int to unsigned int.
582
583 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
584 sysconf (_SC_THREAD_CPUTIME) returns negative value.
585
586 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
587 before return type.
588
589 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
590 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
591
67060ef5
UD
5922004-10-06 Ulrich Drepper <drepper@redhat.com>
593
594 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
595 test fails, remove message queue.
596 (tf_msgsnd): Likewise.
597
f38a3086
UD
5982004-10-05 Jakub Jelinek <jakub@redhat.com>
599
600 * tst-clock1.c: Change #ifdef to #if defined.
601 * tst-clock2.c: Likewise.
602 * tst-cond11.c: Likewise.
603
2c03b6db
UD
604 * sysdeps/pthread/timer_create.c (timer_create): Use
605 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
606 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
607 THREAD_CPUTIME.
608
6ab5f50d
UD
6092004-10-05 Jakub Jelinek <jakub@redhat.com>
610
611 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
612 _POSIX_THREAD_CPUTIME): Define to 0.
613
e4bb4853
UD
6142004-10-04 Ulrich Drepper <drepper@redhat.com>
615
616 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
617 and _POSIX_THREAD_CPUTIME to zero.
618 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
619 * tst-barrier2.c: Fix testing for POSIX feature.
620 * tst-clock1.c: Likewise.
621 * tst-clock2.c: Likewise.
622 * tst-cond11.c: Likewise.
623 * tst-cond4.c: Likewise.
624 * tst-cond6.c: Likewise.
625 * tst-flock2.c: Likewise.
626 * tst-mutex4.c: Likewise.
627 * tst-mutex9.c: Likewise.
628 * tst-rwlock12.c: Likewise.
629 * tst-rwlock4.c: Likewise.
630 * tst-signal1.c: Likewise.
631 * tst-spin2.c: Likewise.
632 * sysdeps/pthread/posix-timer.h: Likewise.
633 * sysdeps/pthread/timer_create.c: Likewise.
634 * sysdeps/pthread/timer_routines.c: Likewise.
635
c1b48791
UD
6362004-10-01 Ulrich Drepper <drepper@redhat.com>
637
927f0673
UD
638 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
639 (__lll_mutex_timedlock_wait): Address futex correctly.
640
c1b48791 641 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 642 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
643 make sure 2 is stored in the futex and we looked at the old value.
644 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
645 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
646 which might very well made the code not working at all before.
7b87aca6 647 [BZ #417]
c1b48791 648
e9f4e844
UD
6492004-09-28 Ulrich Drepper <drepper@redhat.com>
650
4f21c95d
UD
651 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
652 allow SIGSETXID to be sent.
653 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
654 for SIGSETXID to be defined.
655 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
656 SIGSETXID cannot be blocked.
657
e9f4e844
UD
658 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
659 Add __extension__ to long long types.
660 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
661 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
662 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
663 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
664 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
665 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
666 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
667
5f66b766
UD
6682004-09-25 Ulrich Drepper <drepper@redhat.com>
669
670 * descr.h (struct pthread): Add stopped_start field.
671 * sysdeps/pthread/createthread.c (create_thread): Set
672 start_stopped flag in descriptor for new thread appropriately.
673 * pthread_create.c (start_thread): Only take lock to be stopped on
674 startup if stopped_start flag says so.
675
362038b0
UD
6762004-09-24 Ulrich Drepper <drepper@redhat.com>
677
3f80a99b
UD
678 * pthread_create.c (__pthread_create_2_1): Remember whether thread
679 is created detached and if yes, do not try to free the stack in case
680 the thread creation failed.
681 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
682 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
683 case there has been no error. [BZ #405]
684
362038b0
UD
685 * pthread_create.c (start_thread): Don't wait for scheduler data
686 etc to be set at the beginning of the function. The cancellation
687 infrastructure must have been set up. And enable async
688 cancellation before potentially going to sleep. [BZ #401]
689
65f0beb9
UD
6902004-09-20 Ulrich Drepper <drepper@redhat.com>
691
3c12b91a 692 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
693 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
694 for now.
695 * Makefile: Don't build pthread_set*id code for now.
696
2edb61e3
UD
6972004-09-19 Ulrich Drepper <drepper@redhat.com>
698
699 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
700 internal use.
701 * allocatestack.c (__nptl_setxid): New function.
702 * descr.h (struct xid_command): Define type.
703 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
704 (sighandler_setxid): New function.
705 (__pthread_initialize_minimal): Register sighandler_setxid for
706 SIGCANCEL.
707 * pt-allocrtsig.c: Update comment.
708 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
709 Declare __nptl_setxid.
710 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
711 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
712 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
713 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
714 and pthread_setresuid_np.
715 * pthread_setgid_np.c: New file.
716 * pthread_setuid_np.c: New file.
717 * pthread_setegid_np.c: New file.
718 * pthread_seteuid_np.c: New file.
719 * pthread_setregid_np.c: New file.
720 * pthread_setreuid_np.c: New file.
721 * pthread_setresgid_np.c: New file.
722 * pthread_setresuid_np.c: New file.
723 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
724 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
725 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
726 and pthread_setresuid_np.
727 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
728 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
729 pthread_setregid, and pthread_setresgid.
730
1ab1fa6f
UD
7312004-09-18 Ulrich Drepper <drepper@redhat.com>
732
733 * allocatestack.c (allocate_stack): Return EAGAIN instead of
734 ENOMEM when out of memory.
735
ae9e6b36
RM
7362004-09-10 Roland McGrath <roland@redhat.com>
737
738 [BZ #379]
739 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
740 code, since we don't try to use the broken CLONE_STOPPED any more.
741 * pthread_create.c (start_thread): Likewise.
742
424bd2f8
RH
7432004-09-15 Richard Henderson <rth@redhat.com>
744
745 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
746
17b8a52d
UD
7472004-09-01 David Mosberger <davidm@hpl.hp.com>
748
749 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
750 (__libc_unwind_longjmp): Delete macro and declare as function.
751 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
752 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
753 nptl directory.
754 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
755 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
756 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
757
ccc63b07
UD
7582004-09-12 Ulrich Drepper <drepper@redhat.com>
759
760 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
761 for __USE_XOPEN2K.
762 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
763 types also for __USE_XOPEN2K.
764 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
765 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
766 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
767 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
768 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
769 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
770 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
771 [BZ #320]
772
31f93b3b
UD
7732004-09-08 Ulrich Drepper <drepper@redhat.com>
774
775 * sysdeps/pthread/pthread.h
776 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
777 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
778 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
779 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
780 [BZ #375]
781
e0329987
UD
7822004-09-07 Ulrich Drepper <drepper@redhat.com>
783
590b40f7
UD
784 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
785 PSEUDO to be used with . prefix.
786
67254a97
UD
787 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
788 Use atomic_increment instead of atomic_exchange_and_add.
789 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
790 Likewise.
791 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
792 Likewise.
793 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
794 Likewise.
795
796 * allocatestack.c (allocate_stack): Use atomic_increment_val
797 instead of atomic_exchange_and_add.
798 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
799 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
800 Likewise.
801 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
802 Likewise.
803
e0329987
UD
804 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
805 the initialization function might throw.
806
42d86dd6 8072005-09-05 Richard Henderson <rth@redhat.com>
e0329987 808
42d86dd6
RH
809 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
810 Move definition inside libpthread, libc, librt check. Provide
811 definition for rtld.
812
73f7c32c
UD
8132004-09-02 Ulrich Drepper <drepper@redhat.com>
814
f76c8499
UD
815 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
816 * sysdeps/i386/jmpbuf-unwind.h: Likewise
817 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
818 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
819 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
820 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
821 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
822 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
823 * unwind.c: Use it.
824
73f7c32c
UD
825 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
826 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
827 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
828 Likewise.
829 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
830 Decrement __nwaiters. If pthread_cond_destroy has been called and
831 this is the last waiter, signal pthread_cond_destroy caller and
832 avoid using the pthread_cond_t structure after unlock.
833 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
834 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
835 Read clock type from the least significant bits of __nwaiters instead
836 of __clock.
837 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
838 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
839
8402004-08-31 Jakub Jelinek <jakub@redhat.com>
841
842 [BZ #342]
843 * Makefile (tests): Add tst-cond20 and tst-cond21.
844 * tst-cond20.c: New test.
845 * tst-cond21.c: New test.
846 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
847 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
848 it unsigned int.
849 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
850 Likewise.
851 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
852 (pthread_cond_t): Likewise.
853 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
854 Likewise.
855 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
856 Likewise.
857 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
858 Likewise.
859 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
860 (cond_nwaiters): New.
861 (clock_bits): New.
862 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
863 if there are waiters not signalled yet.
864 Wait until all already signalled waiters wake up.
865 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
866 __nwaiters. If pthread_cond_destroy has been called and this is the
867 last waiter, signal pthread_cond_destroy caller and avoid using
868 the pthread_cond_t structure after unlock.
869 (__pthread_cond_wait): Increment __nwaiters in the beginning,
870 decrement it when leaving. If pthread_cond_destroy has been called
871 and this is the last waiter, signal pthread_cond_destroy caller.
872 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
873 Likewise. Read clock type from the least significant bits of
874 __nwaiters instead of __clock.
875 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
876 whether clock ID can be encoded in COND_CLOCK_BITS bits.
877 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
878 clock type just from the last COND_CLOCK_BITS bits of value.
879 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
880 instead of __clock, just from second bit of condattr's value.
881
409f7493
UD
8822004-08-30 Jakub Jelinek <jakub@redhat.com>
883
884 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
885 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
886 != 64.
887 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
888
92c6ccd1
RM
8892004-08-15 Roland McGrath <roland@frob.com>
890
891 * pthread_atfork.c: Update copyright terms including special exception
892 for these trivial files, which are statically linked into executables
893 that use dynamic linking for the significant library code.
894
4d004cfb
UD
8952004-08-09 Jakub Jelinek <jakub@redhat.com>
896
897 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
898 pthread_rwlock_rdlock.
899 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
900 Decrease __nr_readers_queued after reacquiring lock.
901 * sysdeps/pthread/pthread_rwlock_timedrdlock
902 (pthread_rwlock_timedrdlock): Likewise.
903 Reported by Bob Cook <bobcook47@hotmail.com>.
904
90595fb6
RM
9052004-08-11 Jakub Jelinek <jakub@redhat.com>
906
907 * tst-rwlock14.c (tf): Read main thread handle from *ARG
908 before pthread_barrier_wait.
909
fa46f7ab
UD
9102004-08-07 Ulrich Drepper <drepper@redhat.com>
911
912 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
913 Remove unnecessary exception handling data.
914
15ef4b55
UD
9152004-07-23 Jakub Jelinek <jakub@redhat.com>
916
917 [BZ #284]
918 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
919 instead of clockid_t.
920
4fb907b7
RM
9212004-07-21 Roland McGrath <roland@redhat.com>
922
923 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
924
9252004-07-19 Roland McGrath <roland@redhat.com>
926
927 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
928
8f73811b
RM
9292004-07-02 Roland McGrath <roland@redhat.com>
930
931 * configure: Don't exit.
932
290639c3
UD
9332004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
934
935 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
936 (__pthread_cond_timedwait): Check for invalid nanosecond in
937 timeout value.
938
8e5aaad9
UD
9392004-07-07 Ulrich Drepper <drepper@redhat.com>
940
941 * Makefile: Add rules to build and run tst-fini1.
942 * tst-fini1.c: New file.
943 * tst-fini1mod.c: New file.
944
ce6e047f
UD
9452004-07-05 Ulrich Drepper <drepper@redhat.com>
946
947 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
948 if no cancellation support is needed.
949 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
950 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
951 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
952 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
953 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
954 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
955 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
956 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
957 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
958
959 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
960 only if not already defined.
961
9b9ef823
UD
9622004-07-05 Jakub Jelinek <jakub@redhat.com>
963
2dd18ce2
UD
964 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
965 constraint "m" instead of "0" for futex.
966
9b9ef823
UD
967 * shlib-versions: Add powerpc64-.*-linux.*.
968
38205402
UD
9692004-07-04 Jakub Jelinek <jakub@redhat.com>
970
971 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
972 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
973 for valid tv_nsec.
974 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
975 1 billion and 64-bit tv_nsec which is valid when truncated to 32
976 bits.
977
78a9c837
RM
9782004-06-29 Roland McGrath <roland@redhat.com>
979
980 * Banner: NPTL no longer has its own version number.
981 * Makefile (nptl-version): Variable removed.
982 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
983 using $(version), the glibc version number.
984
d3d35527
UD
9852004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
986
987 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
988 Fix branch offset for a PLT entry.
989 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
990 Likewise.
991 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
992 Likewise.
993 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
994 Likewise.
995 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
996 Likewise.
997
346f18ae
UD
9982004-06-28 Jakub Jelinek <jakub@redhat.com>
999
1000 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
1001 unconditionally.
1002
f3a19754
UD
10032004-06-28 Jakub Jelinek <jakub@redhat.com>
1004
1005 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
1006 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
1007 instead of tv_sec.
1008 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
1009 (pthread_rwlock_timedrdlock): Likewise.
1010
539842a4
UD
10112004-06-22 Jakub Jelinek <jakub@redhat.com>
1012
1013 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1014 Set __r7 to val, not mutex.
1015
46f4c578
UD
10162004-06-27 Ulrich Drepper <drepper@redhat.com>
1017
1018 * Makefile: Add rules to build tst-rwlock14.
1019 * tst-rwlock14.c: New file.
1020
10212004-06-24 Boris Hu <boris.hu@intel.com>
1022
1023 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
1024 check.
1025 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
1026
9898e99c
AJ
10272004-06-19 Andreas Jaeger <aj@suse.de>
1028
1029 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
1030 assembler in last patch.
1031
7c3164bc
UD
10322004-06-17 Ulrich Drepper <drepper@redhat.com>
1033
1034 * sysdeps/pthread/pthread_cond_timedwait.c
1035 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
1036 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1037 (__pthread_cond_timedwait): Check for invalid nanosecond in
1038 timeout value.
1039 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1040 * tst-cond19.c: New file.
1041 * Makefile: Add rules to build and run tst-cond19.
1042
72e61500
UD
10432004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
1044
1045 * tst-context1.c (GUARD_PATTERN): Defined.
1046 (tst_context_t): Define struct containing ucontext_t & guard words.
1047 (ctx): Declare as an array of tst_context_t.
1048 (fct): Verify uc_link & guard words are still valid.
1049 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
1050
7c370086
UD
10512004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1052
1053 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1054 Add __data.__futex field, reshuffle __data.__clock.
1055 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
1056 (__pthread_cond_signal): Increment __futex at the same time as
1057 __wakeup_seq or __total_seq. Pass address of __futex instead of
1058 address of low 32-bits of __wakeup_seq to futex syscall.
1059 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1060 (__pthread_cond_wait): Likewise. Pass __futex value from before
1061 releasing internal lock to FUTEX_WAIT.
1062 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1063 (__pthread_cond_timedwait): Likewise.
1064 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
1065 (FUTEX_CMP_REQUEUE): Define.
1066 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1067 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1068 Pass __futex value from before the unlock and __futex address instead
1069 of address of low 32-bits of __wakeup_seq to futex syscall.
1070 Fallback to FUTEX_WAKE all on any errors.
1071
a9e526e7
RM
10722004-06-08 Jakub Jelinek <jakub@redhat.com>
1073
1074 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
1075 comment typo.
1076 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
1077 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
1078 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
1079 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
1080 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
1081
f1847a84
RM
10822004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
1083
1084 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
1085 Add memory clobber to inline assembly.
1086 (__lll_mutex_trylock): Likewise.
1087 (__lll_mutex_cond_trylock): Likewise.
1088
f7c81e1a
UD
10892004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
1090
1091 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
1092 Pass val argument as 6th system call argument in %r7.
1093
75fccede
UD
10942004-05-21 Jakub Jelinek <jakub@redhat.com>
1095
1096 * Makefile (tests): Add tst-cond16.
1097 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
1098 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
1099 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
1100 Add __data.__futex field, reshuffle __data.__clock.
1101 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
1102 (__pthread_cond_signal): Increment __futex at the same time as
1103 __wakeup_seq or __total_seq. Pass address of __futex instead of
1104 address of low 32-bits of __wakeup_seq to futex syscall.
1105 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
1106 (__pthread_cond_wait): Likewise. Pass __futex value from before
1107 releasing internal lock to FUTEX_WAIT.
1108 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
1109 (__pthread_cond_timedwait): Likewise.
1110 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
1111 (FUTEX_CMP_REQUEUE): Define.
1112 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1113 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1114 Pass __futex value from before the unlock and __futex address instead
1115 of address of low 32-bits of __wakeup_seq to futex syscall.
1116 Fallback to FUTEX_WAKE all on any errors.
1117 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
1118 Define.
1119 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1120 internally. Return non-zero if error, zero if success.
1121 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1122 Add __data.__futex field, reshuffle __data.__clock.
1123 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
1124 Define.
1125 (lll_futex_requeue): Add val argument, return 1 unconditionally
1126 for the time being.
1127 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
1128 Add __data.__futex field, reshuffle __data.__clock.
1129 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1130 Define.
1131 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1132 internally. Return non-zero if error, zero if success.
1133 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
1134 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
1135 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
1136 Define.
1137 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1138 internally. Return non-zero if error, zero if success.
1139 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
1140 Add __data.__futex field, reshuffle __data.__clock.
1141 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
1142 Define.
1143 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
1144 internally. Return non-zero if error, zero if success.
1145 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
1146 Add __data.__futex field, reshuffle __data.__clock.
1147 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
1148 Add __data.__futex field, reshuffle __data.__clock.
1149 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
1150 Increment __futex at the same time as __wakeup_seq or __total_seq.
1151 Pass address of __futex instead of address of low 32-bits of
1152 __wakeup_seq to futex syscall.
1153 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
1154 Pass __futex value from before releasing internal lock
1155 to FUTEX_WAIT.
1156 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1157 Likewise. Avoid unnecessary shadowing of variables.
1158 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
1159 Set __futex to 2 * __total_seq. Pass __futex value from before the
1160 unlock and __futex address instead of address of low 32-bits of
1161 __wakeup_seq to futex_requeue macro, adjust for new return value
1162 meaning.
1163 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
1164 (__pthread_cond_signal): Increment __futex at the same time as
1165 __wakeup_seq or __total_seq. Pass address of __futex instead of
1166 address of low 32-bits of __wakeup_seq to futex syscall.
1167 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
1168 (__pthread_cond_wait): Likewise. Pass __futex value from before
1169 releasing internal lock to FUTEX_WAIT.
1170 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1171 (__pthread_cond_timedwait): Likewise.
1172 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1173 (FUTEX_CMP_REQUEUE): Define.
1174 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
1175 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
1176 Pass __futex value from before the unlock and __futex address instead
1177 of address of low 32-bits of __wakeup_seq to futex syscall.
1178 Fallback to FUTEX_WAKE all on any errors.
1179
11802004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1181
1182 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
1183 Add nop to align the end of critical section.
1184 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
1185
fbf86dda
UD
11862004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1187
1188 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
1189 Add __broadcast_seq field.
1190 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
1191 all waiters as woken with woken_seq and bump broadcast counter.
1192 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
1193 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
1194 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1195 Comment typo fixes. Avoid returning -ETIMEDOUT.
1196
11972004-06-01 Ulrich Drepper <drepper@redhat.com>
1198
1199 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1200 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
1201 Reported by Kaz Kojima.
1202
ffdd5e50
UD
12032004-05-25 Jakub Jelinek <jakub@redhat.com>
1204
1205 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
1206
3abc82c8
UD
12072004-05-21 Jakub Jelinek <jakub@redhat.com>
1208
1209 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
1210 __broadcast_seq with bc_seq after acquiring internal lock instead of
1211 before it.
1212
893a3511
UD
12132004-05-18 Jakub Jelinek <jakub@redhat.com>
1214
1215 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
1216 compilation.
1217 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1218 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
1219 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
1220 (pthread_cond_t): Add __data.__broadcast_seq field.
1221 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1222 (FRAME_SIZE): Define.
1223 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
1224 Comment typo fixes.
1225 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
1226 Define.
1227 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
1228 typo fixes.
1229 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
1230 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
1231 fixes.
1232
12332004-05-18 Ulrich Drepper <drepper@redhat.com>
1234
1235 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
1236 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
1237 Add __broadcast_seq field.
1238 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1239 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1240 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1241 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1242 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1243 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
1244 all waiters as woken with woken_seq and bump broadcast counter.
1245 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
1246 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
1247 __broadcast_seq field.
1248 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1249 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
1250 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
1251 * pthread_cond_init.c: Initialize __broadcast_seq field.
1252 * Makefile (tests): Add tst-cond17 and tst-cond18.
1253 Add .NOTPARALLEL goal.
1254 * tst-cond16.c: New file. From Jakub.
1255 * tst-cond17.c: New file. From Jakub.
1256 * tst-cond18.c: New file. From Jakub.
1257
4123718e
UD
12582004-05-16 Ulrich Drepper <drepper@redhat.com>
1259
1260 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
1261 unwind info.
1262
1263 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1264 Parametrize frame size. Correct some unwind info.
1265 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1266
2d7ae210
UD
12672004-05-04 Jakub Jelinek <jakub@redhat.com>
1268
1269 * tst-stack3.c: Note testing functionality beyond POSIX.
1270
50c2b6d7
UD
12712004-05-04 Jakub Jelinek <jakub@redhat.com>
1272
1273 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
1274 Change conditional from ifdef to if.
1275
27b02589
UD
12762004-04-23 Jakub Jelinek <jakub@redhat.com>
1277
1278 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
1279 SYSDEP_CANCEL_ERROR): Define.
1280 (PSEUDO): Use it.
1281
4bb8fc33
UD
12822004-05-01 Jakub Jelinek <jakub@redhat.com>
1283
1284 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
1285
f9a06dc1
UD
12862004-04-20 Jakub Jelinek <jakub@redhat.com>
1287
1288 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
1289
d3b52028
UD
12902004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1291
1292 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
1293 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
1294 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
1295 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
1296
a5dd0a6c
UD
12972004-04-19 Ulrich Drepper <drepper@redhat.com>
1298
1299 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
1300 thread has all signals blocked.
1301
620c3354
AJ
13022004-04-18 Andreas Jaeger <aj@suse.de>
1303
1304 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
1305 (SEM_VALUE_MAX): Add missing brace.
1306
1683daeb
UD
13072004-04-17 Jakub Jelinek <jakub@redhat.com>
1308
1309 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
1310 in rt subdir.
1311 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
1312 * sysdeps/pthread/tst-mqueue8x.c: New test.
1313 * tst-cancel4.c: Update comment about message queues.
1314
1315 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
1316 return it_value { 0, 0 }.
1317 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
1318 like SIGEV_SIGNAL.
1319 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
1320 assertion for SIGEV_NONE.
1321 (thread_attr_compare): Compare all attributes, not just a partial
1322 subset.
1323
13242004-04-17 Jakub Jelinek <jakub@redhat.com>
1325
1326 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
1327
f532641d
UD
13282004-04-17 Ulrich Drepper <drepper@redhat.com>
1329
1330 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
1331 Just use a plain number.
1332 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
1333 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
1334 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
1335 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
1336 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
1337 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
1338 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
1339
7eb7fdda
UD
13402004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1341
53392906
UD
1342 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
1343 frame info.
1344 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 1345
d7ba1313
UD
13462004-04-15 Jakub Jelinek <jakub@redhat.com>
1347
1348 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
1349 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
1350 of calling sigwaitinfo.
1351
5adac0e4
UD
13522004-04-16 Ulrich Drepper <drepper@redhat.com>
1353
1354 * allocatestack.c (allocate_stack): Set reported_guardsize
1355 unconditionally.
1356 * pthread_getattr_np.c (pthread_getattr_np): Use
1357 reported_guardsize instead of guardsize.
1358 * descr.h (struct pthread): Add reported_guardsize field.
1359
f93fa7d4
UD
13602004-04-13 Jakub Jelinek <jakub@redhat.com>
1361
1362 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
1363
1b82c6c7
UD
13642004-04-12 Ulrich Drepper <drepper@redhat.com>
1365
1366 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
1367
13682004-04-08 Jakub Jelinek <jakub@redhat.com>
1369
1370 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
1371 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
1372 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
1373 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
1374 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
1375 Define.
1376 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
1377 (_POSIX_MESSAGE_PASSING): Define.
1378 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
1379 (_POSIX_MESSAGE_PASSING): Define.
1380 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
1381 (_POSIX_MESSAGE_PASSING): Define.
1382
e6eb894e
UD
13832004-04-04 Ulrich Drepper <drepper@redhat.com>
1384
1385 * tst-context1.c (fct): Check whether correct stack is used.
1386
1e084487
UD
13872004-04-03 Ulrich Drepper <drepper@redhat.com>
1388
4e73e115
UD
1389 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
1390 matching constraints for asm mem parameters.
1391
1e084487
UD
1392 * tst-clock2.c (tf): Don't define unless needed.
1393
feca5e0b
UD
13942004-03-30 H.J. Lu <hongjiu.lu@intel.com>
1395
1396 * Makefile (link-libc-static): Use $(static-gnulib) instead of
1397 $(gnulib).
1398
3fa21fd8
UD
13992004-03-30 Ulrich Drepper <drepper@redhat.com>
1400
1401 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
1402 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
1403 * pthreadP.h: Declare __nptl_deallocate_tsd.
1404 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
1405 Adjust caller.
1406
1407 * Makefile (tests): Add tst-tsd5.
1408 * tst-tsd5.c: New file.
1409
8e32efa6
UD
14102004-03-29 Ulrich Drepper <drepper@redhat.com>
1411
1412 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
1413 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
1414 is SHLIB_COMPAT check.
1415 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
1416 (__pthread_attr_getaffinity_old): Likewise.
1417 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
1418 (__pthread_getaffinity_old): Likewise.
1419 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1420 (__pthread_setaffinity_old): Likewise.
1421
eec8b6ca
UD
14222004-03-26 Ulrich Drepper <drepper@redhat.com>
1423
1424 * allocatestack.c (_make_stacks_executable): Call
1425 _dl_make_stack_executable first.
1426
db2f05ba
RM
14272004-03-24 Roland McGrath <roland@redhat.com>
1428
1429 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
1430 constraint instead of "0".
1431
6abbc501
UD
14322004-03-24 Ulrich Drepper <drepper@redhat.com>
1433
68dc4dcb
UD
1434 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
1435 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
1436
6abbc501
UD
1437 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
1438 code to avoid warning.
1439
865e14d9
AJ
14402004-03-24 Andreas Jaeger <aj@suse.de>
1441
1442 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
1443 (__pthread_attr_setaffinity_old): Remove const.
1444
16b06b70
UD
14452004-03-23 Ulrich Drepper <drepper@redhat.com>
1446
2c0b891a
UD
1447 * sysdeps/unix/sysv/linux/smp.h: New file.
1448 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
1449 * init.c: Define __is_smp.
1450 (__pthread_initialize_minimal_internal): Call is_smp_system to
1451 initialize __is_smp.
1452 * pthreadP.h: Declare __is_smp.
1453 Define MAX_ADAPTIVE_COUNT is necessary.
1454 * pthread_mutex_init.c: Add comment regarding __spins field.
1455 * pthread_mutex_lock.c: Implement adaptive mutex type.
1456 * pthread_mutex_timedlock.c: Likewise.
1457 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
1458 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
1459 Add __spins field.
1460 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1461 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1462 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1463 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1464 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1465 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1466 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1467 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
1468 lll_mutex_cond_trylock.
1469 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1470 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1471 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1472 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1473 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
1474 Define BUSY_WAIT_NOP.
1475 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
1476 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1477
1478 * tst-mutex5.c: Add support for testing adaptive mutexes.
1479 * tst-mutex7.c: Likewise.
1480 * tst-mutex5a.c: New file.
1481 * tst-mutex7a.c: New file.
1482 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
1483
565699e4
UD
1484 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1485 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 1486 vgettimeofday call might destroy the content.
565699e4 1487
7fe1586f
UD
1488 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
1489 @pause in the loop.
1490
e408880b
UD
1491 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
1492 No need to restrict type of ret. Make it int. Add comment.
1493
16b06b70
UD
1494 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
1495 Remove unnecessary setne instruction.
1496
61645263
UD
14972004-03-22 Jakub Jelinek <jakub@redhat.com>
1498
1499 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
1500 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
1501 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
1502 If realloc fails, break out of the loop.
1503
e3d4c585
AJ
15042004-03-20 Andreas Jaeger <aj@suse.de>
1505
1506 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1507 (__pthread_setaffinity_old): Fix interface.
1508 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
1509 (__pthread_getaffinity_old): Likewise.
1510
1511 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
1512 (__pthread_setaffinity_new): Remove duplicate declaration.
1513
3abb1ff7
UD
15142004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1515
1516 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
1517 the return value to a safe register.
1518 (CDISABLE): Set the function argument correctly.
1519
07bd2a3f
UD
15202004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1521
1522 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
1523 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
1524 Rewrite so that only one locked memory operation per round is needed.
1525 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
1526 (pthread_barrier_wait): After wakeup, release lock only when the
1527 last thread stopped using the barrier object.
1528 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1529 (__pthread_cond_wait): Don't store mutex address if the current
1530 value is ~0l. Add correct cleanup support and unwind info.
1531 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
1532 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
1533 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
1534 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
1535 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
1536 Add correct cleanup support and unwind info.
1537 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
1538 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
1539 information for syscall wrappers.
1540
14c35863
UD
15412004-03-18 Ulrich Drepper <drepper@redhat.com>
1542
1543 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
1544 cpusetsize field, remove next.
1545 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
1546 parameter for size of the CPU set.
1547 (pthread_setaffinity_np): Likewise.
1548 (pthread_attr_getaffinity_np): Likewise.
1549 (pthread_attr_setaffinity_np): Likewise.
1550 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
1551 interface change, keep compatibility code.
1552 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
1553 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
1554 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
1555 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
1556 __pthread_getaffinity_np.
1557 * Versions: Add version for changed interfaces.
1558 * tst-attr3.c: Adjust test for interface change.
1559 * pthread_getattr_np.c: Query the kernel about the affinity mask with
1560 increasing buffer sizes.
1561 * pthread_attr_destroy.c: Remove unused list handling.
1562 * pthread_attr_init.c: Likewise.
1563
8e115d80
RM
15642004-03-17 Roland McGrath <roland@redhat.com>
1565
1566 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
1567 first argument to clock_getres so we ever enable kernel timers.
1568
e3b22ad3
UD
15692004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
1570
1571 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
1572
841153fa
RH
15732004-03-12 Richard Henderson <rth@redhat.com>
1574
e3b22ad3
UD
1575 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
1576 oldvalue from CENABLE to CDISABLE.
841153fa 1577
932dfea7
UD
15782004-03-12 Ulrich Drepper <drepper@redhat.com>
1579
1580 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
1581 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
1582 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
1583 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
1584
9852f6dc
RH
15852004-03-11 Richard Henderson <rth@redhat.com>
1586
1587 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
1588 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
1589 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
1590
43513fb7
UD
15912004-03-11 Jakub Jelinek <jakub@redhat.com>
1592
1593 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
1594 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
1595 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
1596
15972004-03-11 Jakub Jelinek <jakub@redhat.com>
1598
1599 * forward.c (__pthread_cond_broadcast_2_0,
1600 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
1601 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
1602 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
1603
8a3e10e0
UD
16042004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1605
1606 * sysdeps/sh/tcb-offsets.sym: Add PID.
1607 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
1608 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
1609
6d3a2bec
UD
16102004-03-10 Ulrich Drepper <drepper@redhat.com>
1611
1612 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
1613 include <sysdep-cancel.h>, vfork is no cancellation point.
1614 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
1615 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
1616 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
1617
d3a4a571
UD
16182004-03-10 Jakub Jelinek <jakub@redhat.com>
1619
73b4ce64
UD
1620 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
1621 libc_hidden_def.
1622 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
1623 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
1624 Likewise.
1625 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
1626 Likewise.
1627 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
1628 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
1629 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
1630 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
1631 of DO_CALL_VIA_BREAK. Work around a gas problem.
1632
d682a515
UD
1633 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
1634 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
1635 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
1636 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
1637 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
1638 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
1639
1640 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
1641 a local register for saving old PID. Negate PID in parent upon exit.
1642
d3a4a571
UD
1643 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
1644 tcb-offsets.h.
1645 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
1646 before syscall, set to the old value in the parent afterwards.
1647 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
1648 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
1649 tcb-offsets.h.
1650 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
1651 before syscall, set to the old value in the parent afterwards.
1652 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
1653 * sysdeps/s390/tcb-offsets.sym: Add PID.
1654
1655 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
1656 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
1657 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
1658 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
1659 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
1660 * sysdeps/sparc/tcb-offsets.sym: Add PID.
1661
16622004-03-10 Andreas Schwab <schwab@suse.de>
1663
1664 * sysdeps/ia64/tcb-offsets.sym: Add PID.
1665 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
1666 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
1667
3f2fb223 16682004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 1669
3f2fb223
UD
1670 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
1671 * tst-cancel21.c (do_one_test): Likewise.
1672 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 1673
8b9d6054
UD
16742004-02-09 Jakub Jelinek <jakub@redhat.com>
1675
1676 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
1677 if non-zero and set to INT_MIN if zero.
1678 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
1679 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
1680 (SAVE_PID, RESTORE_PID): Define.
1681 (__vfork): Use it.
1682 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
1683 Use relative path to avoid including NPTL i386/vfork.S.
1684 (SAVE_PID, RESTORE_PID): Define.
1685 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
1686 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
1687 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
1688 tst-vfork2x.
1689 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
1690 * tst-vfork1.c: New test.
1691 * tst-vfork2.c: New test.
1692 * tst-vfork1x.c: New test.
1693 * tst-vfork2x.c: New test.
1694
02287d05
UD
16952004-03-08 Ulrich Drepper <drepper@redhat.com>
1696
c072ef6d 1697 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 1698 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 1699 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 1700 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 1701
d4acd24b
UD
17022004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
1703
1704 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
1705
8acb4b81
UD
17062004-03-08 H.J. Lu <hongjiu.lu@intel.com>
1707
1708 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
1709 _rtld_global_ro.
1710
4d1a02ef
UD
17112004-03-07 Ulrich Drepper <drepper@redhat.com>
1712
001836c8 1713 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 1714 _rtld_global_ro.
001836c8 1715
4d1a02ef
UD
1716 * tst-once4.c: Remove unnecessary macro definition.
1717
1718 * tst-mutex7.c (do_test): Limit thread stack size.
1719 * tst-once2.c (do_test): Likewise.
1720 * tst-tls3.c (do_test): Likewise.
1721 * tst-tls1.c (do_test): Likewise.
1722 * tst-signal3.c (do_test): Likewise.
1723 * tst-kill6.c (do_test): Likewise.
1724 * tst-key4.c (do_test): Likewise.
1725 * tst-join4.c (do_test): Likewise.
1726 * tst-fork1.c (do_test): Likewise.
1727 * tst-context1.c (do_test): Likewise.
1728 * tst-cond2.c (do_test): Likewise.
1729 * tst-cond10.c (do_test): Likewise.
1730 * tst-clock2.c (do_test): Likewise.
1731 * tst-cancel10.c (do_test): Likewise.
1732 * tst-basic2.c (do_test): Likewise.
1733 * tst-barrier4.c (do_test): Likewise.
1734
aa420660
UD
17352004-03-05 Ulrich Drepper <drepper@redhat.com>
1736
1737 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
1738
cff08c81
UD
17392004-03-01 Ulrich Drepper <drepper@redhat.com>
1740
1741 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1742 (__pthread_cond_timedwait): Optimize wakeup test.
1743 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
1744 (__pthread_cond_wait): Likewise.
1745 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
1746 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
1747 Likewise.
1748
b7fe377c
UD
17492004-02-29 Ulrich Drepper <drepper@redhat.com>
1750
1751 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
1752 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
1753 the atomic instruction needed.
1754 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1755 (__lll_mutex_lock_wait): Likewise.
1756
4c771a3b
UD
17572004-02-28 Ulrich Drepper <drepper@redhat.com>
1758
1759 * Makefile (tests): Add tst-cond14 and tst-cond15.
1760 * tst-cond14.c: New file.
1761 * tst-cond15.c: New file.
1762
a2c33d5a
UD
17632004-02-27 Ulrich Drepper <drepper@redhat.com>
1764
1765 * sysdeps/pthread/createthread.c (create_thread): Remove use of
1766 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
1767 needs to be implemented differently to be useful.
1768
261eada2
UD
17692004-02-26 Ulrich Drepper <drepper@redhat.com>
1770
14ffbc83
UD
1771 * pthread_attr_setschedparam.c: Don't test priority against limits
1772 here. Set ATTR_FLAG_SCHED_SET flag.
1773 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
1774 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
1775 from parent thread to child. If attribute is used and scheduling
1776 parameters are not inherited, copy parameters from attribute or
1777 compute them. Check priority value.
1778 * pthread_getschedparam.c: If the parameters aren't known yet get
1779 them from the kernel.
1780 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
1781 ATTR_FLAG_POLICY_SET flag for thread.
1782 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
1783 and ATTR_FLAG_POLICY_SET.
1784
1785 * sysdeps/pthread/createthread.c: Use tgkill if possible.
1786
261eada2
UD
1787 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
1788 fail if stack address hasn't been set. Just return 0.
1789
701d185c
UD
17902004-02-25 Ulrich Drepper <drepper@redhat.com>
1791
25b8e63c
UD
1792 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
1793 libpthread for the files in this list.
1794 (CFLAGS-tst-unload): Removed.
1795 * tst-unload.c (do_test): Don't use complete path for
1796 LIBPHREAD_SO.
1797
701d185c
UD
1798 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
1799 tst-_res1mod2.
1800
a8fd5a02
UD
18012004-02-22 Ulrich Drepper <drepper@redhat.com>
1802
1803 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
1804 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
1805 operation per round is needed.
1806 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1807 (__lll_mutex_lock_wait): Likewise.
1808
dd0b7b19
UD
18092004-02-20 Ulrich Drepper <drepper@redhat.com>
1810
1811 * tst-cancel9.c (cleanup): Don't print to stderr.
1812
5990e1fe
UD
18132004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1814
1815 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
1816
33ab3b66
UD
18172004-02-20 Jakub Jelinek <jakub@redhat.com>
1818
1be3130e
UD
1819 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
1820 (__syscall_error_handler2): Call CDISABLE.
1821 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
1822 (__syscall_error_handler2): Call CDISABLE.
1823
8ba5025a
UD
1824 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
1825 Release lock before the loop, don't reacquire it.
8ba5025a 1826
33ab3b66
UD
1827 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
1828
11986c68
UD
18292004-02-19 Andreas Schwab <schwab@suse.de>
1830
1831 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
1832 Fix last change.
1833
dc391246
UD
18342004-02-18 Ulrich Drepper <drepper@redhat.com>
1835
37c054c7
UD
1836 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
1837 (pthread_barrier_wait): After wakeup, release lock only when the
1838 last thread stopped using the barrier object.
1839 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
1840 (pthread_barrier_wait): Likewise.
1841 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
1842 Likewise.
1843 * Makefile (tests): Add tst-barrier4.
1844 * tst-barrier4.c: New file.
dc391246
UD
1845
1846 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1847 (__pthread_cond_timedwait): Perform timeout test while holding
1848 internal lock to prevent wakeup race.
1849 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
1850 * sysdeps/pthread/pthread_cond_timedwait.c
1851 (__pthread_cond_timedwait): Likewise.
1852 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1853 (__pthread_cond_timedwait): Likewise.
1854
4a08113c
UD
18552004-02-18 Jakub Jelinek <jakub@redhat.com>
1856
1857 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
1858 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
1859 * Makefile (tests): Add tst-rwlock13.
1860 * tst-rwlock13.c: New test.
1861
71b1675e
UD
18622004-02-16 Ulrich Drepper <drepper@redhat.com>
1863
1864 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1865 (__condvar_tw_cleanup): Little optimization.
1866 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
1867
cd9fdc72
UD
18682004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
1869
1870 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
1871 libpthread as "lib" parameter to SHLIB_COMPAT.
1872 (__novmx_siglongjmp): Fix typo in function name.
1873 (__novmx_longjmp): Fix typo in function name.
1874
82038750
UD
18752004-02-13 Ulrich Drepper <drepper@redhat.com>
1876
b078c591
UD
1877 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
1878 __builtin_expect.
1879
82038750
UD
1880 * sysdeps/generic/pt-longjmp.c: Moved to...
1881 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
1882
e2982bf0
UD
18832004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
1884
1885 * Makefile (libpthread-routines): Add pt-cleanup.
1886 * pt-longjmp.c: Removed.
1887 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
1888 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
1889 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
1890 Version longjmp, siglongjmp for GLIBC_2.3.4.
1891 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
1892
3730d95c
UD
18932004-02-13 Ulrich Drepper <drepper@redhat.com>
1894
219304ec
UD
1895 * sysdeps/pthread/pthread_cond_timedwait.c
1896 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
1897 Reuse code. Add __builtin_expects.
1898
3730d95c
UD
1899 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
1900 (__pthread_cond_timedwait): Get internal lock in case timeout has
1901 passed before the futex syscall.
1902 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1903
5673ccc1
UD
19042004-01-20 Ulrich Drepper <drepper@redhat.com>
1905
debddf64
UD
1906 * allocatestack.c: Pretty printing.
1907
5673ccc1
UD
1908 * sysdeps/pthread/createthread.c (create_thread): Don't add
1909 CLONE_DETACHED bit if it is not necessary.
1910
6bae8725
UD
19112004-01-16 Ulrich Drepper <drepper@redhat.com>
1912
1913 * pthread_getattr_np.c: Include ldsodefs.h.
1914
ff151400
RH
19152004-01-16 Richard Henderson <rth@redhat.com>
1916
6bae8725
UD
1917 * allocatestack.c: Don't declare __libc_stack_end.
1918 * init.c (__pthread_initialize_minimal_internal): Likewise.
1919 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 1920
ba683832
RH
19212004-01-15 Richard Henderson <rth@redhat.com>
1922
1923 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
1924 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
1925 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
1926 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
1927 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
1928 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
1929 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
1930 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
1931
630d93a7
UD
19322004-01-14 Ulrich Drepper <drepper@redhat.com>
1933
219304ec 1934 * init.c (pthread_functions): Make array const.
630d93a7 1935
d1fc817e
UD
19362004-01-13 Ulrich Drepper <drepper@redhat.com>
1937
1938 * allocatestack.c (__make_stacks_executable): Change interface.
1939 Check parameters. Pass parameter on to libc counterpart.
1940 * pthreadP.h: Change declaration.
1941
dc927809
RH
19422004-01-13 Richard Henderson <rth@redhat.com>
1943
10677727
UD
1944 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
1945 prototype form.
1946 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
1947 Likewise.
1948
d1fc817e
UD
1949 * sysdeps/alpha/Makefile: New file.
1950 * sysdeps/alpha/tcb-offsets.sym: New file.
1951 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
1952 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 1953
d1fc817e
UD
1954 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
1955 on powerpc version.
dc927809 1956
249a3d0c
UD
19572004-01-08 Jakub Jelinek <jakub@redhat.com>
1958
1959 * Makefile (tests): Add tst-backtrace1.
1960 * tst-backtrace1.c: New test.
1961
763c0490
RM
19622003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
1963
1964 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
1965 register as second parameter to the REGISTER macro.
1966 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
1967 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
1968 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
1969 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
1970 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
1971 of thread register as second parameter to REGISTER macro in 64 case.
1972
c7baafd5
UD
19732004-01-03 Ulrich Drepper <drepper@redhat.com>
1974
1975 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
1976 (CFLAGS-getpid.o): Defined.
1977 (CFLAGS-getpid.os): Defined.
1978
25ac0258
UD
19792003-12-31 Ulrich Drepper <drepper@redhat.com>
1980
1981 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
1982 returned for main thread does not overlap with any other VMA.
1983 Patch by Jakub Jelinek.
1984
795985e4
UD
19852003-12-29 Jakub Jelinek <jakub@redhat.com>
1986
1987 * tst-raise1.c: Include stdio.h.
1988
cb5b9388
UD
19892003-12-23 Jakub Jelinek <jakub@redhat.com>
1990
1991 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
1992 setting with __ASSUME_TGKILL || defined __NR_tgkill.
1993 If pid is 0, set it to selftid.
1994 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
1995 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
1996 != 0, return self->tid without doing a syscall.
1997 * descr.h (struct pthread): Move pid field after tid.
1998
1999 * Makefile (tests): Add tst-raise1.
2000 * tst-raise1.c: New file.
2001
432aaf5b
RM
20022003-12-23 Roland McGrath <roland@redhat.com>
2003
2004 * tst-oddstacklimit.c: New file.
2005 * Makefile (tests): Add it.
2006 (tst-oddstacklimit-ENV): New variable.
2007
2008 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
2009 value up to page size for __default_stacksize.
2010
33ebea17
UD
20112003-12-21 Ulrich Drepper <drepper@redhat.com>
2012
2013 * Makefile (tests): Add tst-eintr5.
2014 * tst-eintr5.c: New file.
2015
2016 * eintr.c (eintr_source): Prevent sending signal to self.
2017
2018 * tst-eintr2.c (tf1): Improve error message.
2019
bbe35eb5
UD
20202003-12-20 Ulrich Drepper <drepper@redhat.com>
2021
2022 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
2023 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
2024 * pthread_cancel.c: Add comment explaining use of PID field.
2025 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
2026 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
2027 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
2028 temporarily to signal the field must not be relied on and updated
2029 by getpid().
2030 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
2031 temporarily negative.
2032 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 2033
4efdd8d3
UD
20342003-12-19 Ulrich Drepper <drepper@redhat.com>
2035
2036 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
2037 (eintr_source): If ARG != NULL, use pthread_kill.
2038 * tst-eintr1.c: Adjust for this change.
2039 * tst-eintr2.c: Likewise.
2040 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
2041 * tst-eintr3.c: New file.
2042 * tst-eintr4.c: New file.
2043
20442003-12-19 Jakub Jelinek <jakub@redhat.com>
2045
2046 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
2047 if CANCELSTATE_BITMASK is set.
2048 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
2049 Likewise.
2050
2051 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
2052 (tests-reverse): Add tst-cancel23.
2053 * tst-cancel22.c: New test.
2054 * tst-cancel23.c: New test.
2055
675620f7
UD
20562003-12-18 Ulrich Drepper <drepper@redhat.com>
2057
2058 * tst-eintr1.c: Better error messages.
2059
2060 * Makefile (tests): Add tst-eintr2.
2061 * tst-eintr2.c: New file.
2062
20632003-12-18 Jakub Jelinek <jakub@redhat.com>
2064
2065 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
2066 (CFLAGS-tst-cancelx21.c): Set.
2067 * tst-cancel21.c: New test.
2068 * tst-cancelx21.c: New test.
2069
2070 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
2071 comparison operand.
2072 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
2073 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
2074 * pt-longjmp.c: Include jmpbuf-unwind.h.
2075 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
2076 _JMPBUF_UNWINDS. Adjust compared pointers.
2077 * init.c (__pthread_initialize_minimal_internal): Initialize
2078 pd->stackblock_size.
2079 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
2080 * sysdeps/alpha/jmpbuf-unwind.h: New file.
2081 * sysdeps/i386/jmpbuf-unwind.h: New file.
2082 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
2083 * sysdeps/s390/jmpbuf-unwind.h: New file.
2084 * sysdeps/sh/jmpbuf-unwind.h: New file.
2085 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
2086 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 2087 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
2088 (_JMPBUF_CFA_UNWINDS): Remove.
2089 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
2090
20912003-12-12 Jakub Jelinek <jakub@redhat.com>
2092
2093 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
2094 (CFLAGS-tst-cancelx20.c): Set.
2095 * tst-cancel20.c: New test.
2096 * tst-cancelx20.c: New test.
2097
2d951ab6
UD
20982003-12-17 Ulrich Drepper <drepper@redhat.com>
2099
2100 * init.c (__pthread_initialize_minimal_internal): Don't treat
2101 architectures with separate register stack special here when
2102 computing default stack size.
2103
f8a3a2e7
RM
21042003-12-17 Roland McGrath <roland@redhat.com>
2105
2106 * Makefile (tst-cancelx7-ARGS): New variable.
2107 Reportd by Greg Schafer <gschafer@zip.com.au>.
2108
e796f92f
UD
21092003-12-17 Jakub Jelinek <jakub@redhat.com>
2110
2111 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
2112 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
2113 (tst-stack3-ENV): Set.
2114 ($(objpfx)tst-stack3-mem): New.
2115 * tst-stack3.c: New test.
2116
092eb73c
UD
21172003-12-10 David Mosberger <davidm@hpl.hp.com>
2118
2119 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
2120 Add unwind directives. Drop unused .regstk directive.
2121 (_fini_EPILOG_BEGINS): Add unwind directives.
2122
ff48874d
UD
21232003-12-11 Ulrich Drepper <drepper@redhat.com>
2124
2125 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
2126 Assume parameter is a pointer.
2127 (lll_futex_wake): Likewise.
20945457
UD
2128 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
2129 Likewise.
2130 (lll_futex_wake): Likewise.
ff48874d
UD
2131 Reported by Boris Hu.
2132 * sysdeps/unix/sysv/linux/unregister-atfork.c
2133 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
2134
2135 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
2136
1d9d0b80
UD
21372003-12-10 Ulrich Drepper <drepper@redhat.com>
2138
2139 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
2140 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
2141 __rtld_lock_initialize for ld.so lock.
2142 Patch in part by Adam Li <adam.li@intel.com>.
2143
c776b3d7
UD
21442003-12-02 David Mosberger <davidm@hpl.hp.com>
2145
2146 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
2147 in $(gnulib). Also, remove stale comment.
2148
21492003-11-12 David Mosberger <davidm@hpl.hp.com>
2150
2151 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
2152 advantage of new syscall stub and optimize accordingly.
2153
2154 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
2155 from SYS_futex, to match expectations of
2156 sysdep.h:DO_INLINE_SYSCALL.
2157 (lll_futex_clobbers): Remove.
2158 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
2159 (lll_futex_wake): Likewise.
2160 (lll_futex_requeue): Likewise.
2161 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
2162 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
2163 Jelinek).
2164 (__lll_mutex_lock): Likewise.
2165 (__lll_mutex_cond_lock): Likewise.
2166 (__lll_mutex_timed_lock): Likewise.
2167 (__lll_mutex_unlock): Likewise.
2168 (__lll_mutex_unlock_force): Likewise.
2169
2170 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
2171 comes before the include of <sysdep.h>.
2172 (THREAD_SELF_SYSINFO): New macro.
2173 (THREAD_SYSINFO): Likewise.
2174 (INIT_SYSINFO): New macro.
2175 (TLS_INIT_TP): Call INIT_SYSINFO.
2176
2177 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
2178
2179 * sysdeps/pthread/createthread.c (create_thread): Use
2180 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
2181 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
2182 THREAD_SELF_SYSINFO instead of open code.
2183 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
2184 (THREAD_SYSINFO): Likewise.
2185
2186 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
2187
2188 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
2189
57d20ee7
UD
21902003-12-06 Ulrich Drepper <drepper@redhat.com>
2191
2192 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
2193 instead of .init. Patch by David Mosberger.
2194
67aeab2a
AJ
21952003-11-30 Thorsten Kukuk <kukuk@suse.de>
2196
2197 * sysdeps/pthread/configure.in: Remove broken declaration in C
2198 cleanup handling check.
2199
8ca203e6
AJ
22002003-11-30 Andreas Jaeger <aj@suse.de>
2201
2202 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
2203 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
2204 Likewise.
2205
46bf9de7
UD
22062003-11-27 Jakub Jelinek <jakub@redhat.com>
2207
2208 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
2209 * pthread_attr_destroy.c: Include shlib-compat.h.
2210 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
2211 is set in iattr->flags.
2212 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
2213
1d9b73ab
UD
22142003-11-21 Jakub Jelinek <jakub@redhat.com>
2215
2216 * Makefile (distribute): Add tst-cleanup4aux.c.
2217
2218 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
2219 include.
2220
53f9084e
UD
22212003-11-21 Ulrich Drepper <drepper@redhat.com>
2222
1d9b73ab
UD
2223 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
2224 pthread_cond_signal.
2225
e42a990e
UD
2226 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
2227 store mutex address if the current value is ~0l.
2228 * sysdeps/pthread/pthread_cond_timedwait.c
2229 (__pthread_cond_timedwait): Likewise.
2230 * sysdeps/pthread/pthread_cond_broadcast.c
2231 (__pthread_cond_broadcast): Don't use requeue for pshared
2232 condvars.
2233
2234 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2235 (__pthread_cond_wait): Don't store mutex address if the current
2236 value is ~0l.
2237 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2238 (__pthread_cond_timedwait): Likewise.
2239 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
2240 (__pthread_cond_broadcast): Don't use requeue for pshared
2241 condvars.
2242
2243 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
2244 element with ~0l for pshared condvars, with NULL otherwise.
2245
2246 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2247 (__pthread_cond_wait): Don't store mutex address if the current
2248 value is ~0l.
2249 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2250 (__pthread_cond_timedwait): Likewise.
2251 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
2252 (__pthread_cond_broadcast): Don't use requeue for pshared
2253 condvars.
2254
bf68b236 2255 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 2256 * tst-cond12.c: New file.
bf68b236 2257 * tst-cond13.c: New file.
53f9084e 2258
9780c971
UD
22592003-11-17 Ulrich Drepper <drepper@redhat.com>
2260
2261 * sysdeps/pthread/configure.in: Make missing forced unwind support
2262 fatal.
2263
74e12fbc
UD
22642003-11-11 Ulrich Drepper <drepper@redhat.com>
2265
2266 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
2267
c685b2b0
UD
22682003-11-06 Ulrich Drepper <drepper@redhat.com>
2269
2270 * Makefile: Add magic to clean up correctly.
2271
44e94149
UD
22722003-11-05 Jakub Jelinek <jakub@redhat.com>
2273
2274 * unwind.c (FRAME_LEFT): Define.
2275 (unwind_stop): Handle old style cleanups here.
2276 (__pthread_unwind): Handle old style cleanups only if
2277 !HAVE_FORCED_UNWIND.
2278 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
2279 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
2280 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
2281 ($(objpfx)tst-cleanupx4): Likewise.
2282 * tst-cleanup4.c: New test.
2283 * tst-cleanup4aux.c: New.
2284 * tst-cleanupx4.c: New test.
2285
c28422b5
UD
22862003-11-04 Ulrich Drepper <drepper@redhat.com>
2287
2288 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
2289 lll_mutex_*lock macros to skip atomic operations on some archs.
2290
27176677
UD
22912003-11-03 Ulrich Drepper <drepper@redhat.com>
2292
2293 * sysdeps/pthread/tst-timer.c (main): Initialize
2294 sigev2.sigev_value as well.
2295
026395a2
RM
22962003-10-15 Roland McGrath <roland@redhat.com>
2297
2298 * sysdeps/pthread/configure.in: Barf if visibility attribute support
2299 is missing.
2300 * sysdeps/pthread/configure: Regenerated.
2301
fa3cbe3d
UD
23022003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2303
2304 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
2305 locking macros. No distinction between normal and mutex locking
2306 anymore.
2307 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
2308 Merge bits from lowlevelmutex.S we still need.
2309 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
2310 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
2311 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
2312 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
2313 new mutex implementation.
2314 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
2315 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
2316 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2317 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
2318 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
2319 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2320 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2321 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
2322 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2323 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
2324 symbol for entry point to avoid cancellation.
2325
e700a908
UD
23262003-10-07 Jakub Jelinek <jakub@redhat.com>
2327
2328 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
2329 changes.
2330 (SAVE_OLDTYPE_0): Fix a typo.
2331
c70a86b6
UD
23322003-10-03 Ulrich Drepper <drepper@redhat.com>
2333
2334 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
2335 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
2336
134abcb5
UD
23372003-10-02 Ulrich Drepper <drepper@redhat.com>
2338
2339 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
2340 correct offset.
2341
b77ca0e8
UD
23422003-10-02 Jakub Jelinek <jakub@redhat.com>
2343
2344 * Makefile (tests): Add tst-cancel19.
2345 * tst-cancel19.c: New test.
2346
4d961dc7
UD
23472003-10-02 Ulrich Drepper <drepper@redhat.com>
2348
2349 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
2350 restoring of the old cancellation type.
2351
1d5b20ad 23522003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 2353
1d5b20ad
UD
2354 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
2355
4106a403
RM
23562003-09-27 Wolfram Gloger <wg@malloc.de>
2357
4d961dc7 2358 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 2359
fca9d8e4
RM
23602003-09-24 Roland McGrath <roland@redhat.com>
2361
2362 * allocatestack.c (__make_stacks_executable): Don't ignore return
2363 value from _dl_make_stack_executable.
2364
c9c60884
UD
23652003-09-24 Ulrich Drepper <drepper@redhat.com>
2366
69c9fa04
UD
2367 * allocatestack.c (__make_stacks_executable): Also change
2368 permission of the currently unused stacks.
2369
279f1143
UD
2370 * allocatestack.c (change_stack_perm): Split out from
2371 __make_stacks_executable.
2372 (allocate_stack): If the required permission changed between the time
2373 we started preparing the stack and queueing it, change the permission.
2374 (__make_stacks_executable): Call change_stack_perm.
2375
c9c60884
UD
2376 * Makefile: Build tst-execstack-mod locally.
2377 * tst-execstack-mod.c: New file.
2378
54ee14b3
UD
23792003-09-23 Jakub Jelinek <jakub@redhat.com>
2380
2381 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
2382
23832003-09-23 Roland McGrath <roland@redhat.com>
2384
2385 * tst-execstack.c: New file.
2386 * Makefile (tests): Add it.
2387 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
2388 (LDFLAGS-tst-execstack): New variable.
2389
2390 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
2391 whether to use PROT_EXEC for stack mmap.
2392 (__make_stacks_executable): New function.
2393 * pthreadP.h: Declare it.
2394 * init.c (__pthread_initialize_minimal_internal): Set
2395 GL(dl_make_stack_executable_hook) to that.
2396
365b1602
UD
23972003-09-22 Ulrich Drepper <drepper@redhat.com>
2398
2399 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
2400 recommendation from AMD re avoidance of lock prefix.
2401
39358e8b
UD
24022003-09-22 Jakub Jelinek <jakub@redhat.com>
2403
2404 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
2405 lll_futex_timed_wait instead of lll_futex_wait.
2406 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
2407 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
2408 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
2409 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
2410 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
2411 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
2412 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
2413 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
2414 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
2415 Completely revamp the locking macros. No distinction between
2416 normal and mutex locking anymore.
2417 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
2418 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
2419 __lll_lock_timedwait): Fix prototypes.
2420 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
2421 __lll_lock_timedwait): Likewise.
2422 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
2423 macros, add __builtin_expect.
2424 (lll_mutex_timedlock): Likewise. Fix return value.
2425 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
2426 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
2427 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
2428 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
2429 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
2430 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
2431 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
2432 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
2433
9d08fbbb
UD
24342003-09-22 Ulrich Drepper <drepper@redhat.com>
2435
c0df57e1
UD
2436 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2437 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
2438 operation if possible.
2439
9d08fbbb
UD
2440 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
2441 like jumping over the lock prefix.
2442
71451de2
UD
24432003-09-21 Ulrich Drepper <drepper@redhat.com>
2444
2445 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
2446 locking macros. No distinction between normal and mutex locking
2447 anymore.
3a226d33 2448 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
2449 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2450 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
2451 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
2452 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 2453 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 2454 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 2455 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 2456 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
2457 * Makefile (routines): Remove libc-lowlevelmutex.
2458 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
2459 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
2460 for new mutex implementation.
2461 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
2462 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2463 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2464 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
2465 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2466 Likewise.
2467 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2468 Likewise.
2469 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2470 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2471 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
2472 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
2473 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2474 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2475 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
2476 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
2477 Likewise.
2478 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
2479 Likewise.
2480 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
2481 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2482 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
2483 Don't use requeue.
2484 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 2485 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 2486
8f31c0ef
UD
24872003-09-20 Ulrich Drepper <drepper@redhat.com>
2488
56a4aa98
UD
2489 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
2490 in parameters of asm with output parameters.
2491
8f31c0ef
UD
2492 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
2493 type of DECR parameter to int.
2494 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
2495
8b8074da
UD
24962003-09-18 Jakub Jelinek <jakub@redhat.com>
2497
2498 * tst-attr3.c (tf, do_test): Print stack start/end/size and
2499 guardsize for each thread.
2500
65af7e61
UD
25012003-09-17 Jakub Jelinek <jakub@redhat.com>
2502
9ba96eda
UD
2503 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
2504 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
2505 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
2506
06f6ca90
UD
2507 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
2508 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
2509 NULL.
2510 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
2511 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
2512 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
2513 (pthread_getaffinity_np): Add hidden_def.
2514
2515 * Makefile (tests): Add tst-attr3.
2516 * tst-attr3.c: New test.
2517
65af7e61
UD
2518 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
2519
3402852c
UD
25202003-09-15 Jakub Jelinek <jakub@redhat.com>
2521
2522 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
2523 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
2524
a4db3439
UD
25252003-09-17 Jakub Jelinek <jakub@redhat.com>
2526
2527 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
2528 * tst-align.c: Include tst-stack-align.h.
2529 (tf, do_test): Use TEST_STACK_ALIGN macro.
2530
25312003-09-17 Ulrich Drepper <drepper@redhat.com>
2532
2533 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
2534 variable.
2535
92ce4676
UD
25362003-09-16 Ulrich Drepper <drepper@redhat.com>
2537
2538 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
2539 stack-related values for the initial thread.
2540
e07bb02a
UD
25412003-09-15 Jakub Jelinek <jakub@redhat.com>
2542
2543 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
2544
d087b5dc
UD
25452003-09-11 Ulrich Drepper <drepper@redhat.com>
2546
2547 * pthread_mutex_lock.c: Minor code rearrangements.
2548
7f08f55a
RM
25492003-09-05 Roland McGrath <roland@redhat.com>
2550
2551 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
2552 Instead, include ../nptl_db/db_info.c to do its magic.
2553 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
2554 (__pthread_pthread_key_2ndlevel_size): Likewise.
2555 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
2556 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
2557 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
2558 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
2559 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
2560 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
2561 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
2562 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
2563 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
2564 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
2565 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
2566 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
2567 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
2568 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
2569 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
2570 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
2571 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
2572
806e4a4a
UD
25732003-09-08 Ulrich Drepper <drepper@redhat.com>
2574
2575 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
2576 of pthread_t to be compatible with LT.
2577 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
2578 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
2579 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
2580 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
2581 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
2582 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
2583 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
2584
17f83e56
UD
25852003-09-04 Ulrich Drepper <drepper@redhat.com>
2586
2587 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
2588
58e8ec84
UD
25892003-09-04 Jakub Jelinek <jakub@redhat.com>
2590
2591 * unwind-forcedunwind.c: Move to...
2592 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
2593 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
2594 * sysdeps/pthread/jmpbuf-unwind.h: New file.
2595 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
2596 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
2597 * unwind.c: Include jmpbuf-unwind.h.
2598 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
2599
abf1cf21
JJ
26002003-09-02 Jakub Jelinek <jakub@redhat.com>
2601
4a244f0d
UD
2602 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
2603 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
2604 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
2605 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
2606 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
2607 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
2608 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
2609 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
2610 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
2611 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
2612 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
2613 function.
2614 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
2615 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
2616 * Makefile (tests): Add tst-stack2.
2617 * tst-stack2.c: New test.
2618 * tst-stack1.c: Include limits.h and sys/param.h.
2619 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
2620
e29ef647
UD
2621 * pthread_condattr_setpshared.c: Include errno.h.
2622 (pthread_condattr_setpshared): Return EINVAL if pshared
2623 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
2624
5777d565
UD
2625 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
2626 defined symbol for entry point to avoid cancellation.
2627 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
2628 Likewise.
2629 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
2630 Likewise.
2631 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
2632 Likewise.
2633 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
2634 Likewise.
2635 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
2636 Likewise.
2637 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
2638 __close_nocancel, __read_nocancel, __write_nocancel,
2639 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
2640 libpthread.so or librt.so, define to corresponding function
2641 without _nocancel suffix.
2642 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
2643 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
2644 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
2645
abf1cf21
JJ
2646 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
2647
8348dcc8
UD
26482003-09-02 Ulrich Drepper <drepper@redhat.com>
2649
2650 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 2651 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
2652
2653 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
2654 in subsections has a symbol associated with it.
2655
2656 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
2657 defined symbol for entry point to avoid cancellation.
2658 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
2659
c874a32e
UD
26602003-09-01 Jakub Jelinek <jakub@redhat.com>
2661
2662 * Makefile (tests): Add tst-tls5.
2663 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
2664 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
2665 ($(objpfx)tst-tls5): New.
2666 ($(objpfx)tst-tls6.out): Likewise.
2667 (tests): Depend on $(objpfx)tst-tls6.out.
2668 * tst-tls3.c: Include stdint.h and pthreaddef.h.
2669 (do_test): Check pthread_self () return value alignment.
2670 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
2671 (tf): Check pthread_self () return value alignment.
2672 * tst-tls5.c: New test.
2673 * tst-tls5.h: New.
2674 * tst-tls5mod.c: New.
2675 * tst-tls5moda.c: New.
2676 * tst-tls5modb.c: New.
2677 * tst-tls5modc.c: New.
2678 * tst-tls5modd.c: New.
2679 * tst-tls5mode.c: New.
2680 * tst-tls5modf.c: New.
2681 * tst-tls6.sh: New test.
2682
c503d3dc
UD
2683 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
2684 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
2685 * init.c (pthread_functions): Initialize them.
2686 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
2687 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
2688 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
2689 pthread_cond_timedwait@@GLIBC_2.3.2.
2690
48614753
JJ
26912003-09-01 Jakub Jelinek <jakub@redhat.com>
2692
56a1b877
JJ
2693 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
2694 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
2695 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
2696 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
2697 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
2698 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
2699
2700 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
2701
48614753
JJ
2702 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
2703 _POSIX_THREAD_PRIORITY_SCHEDULING.
2704 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
2705
28c97261
UD
27062003-08-31 Ulrich Drepper <drepper@redhat.com>
2707
eef80cf8
UD
2708 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
2709 nested function, use static inline function from libio.h.
2710 Code by Richard Henderson.
2711
28c97261
UD
2712 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
2713 weak.
2714
cd2fbe58
UD
27152003-08-30 Jakub Jelinek <jakub@redhat.com>
2716
2717 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
2718 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
2719 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
2720 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
2721 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
2722 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
2723 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
2724 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
2725 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
2726 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
2727 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
2728 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
2729 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
2730 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
2731 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
2732 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
2733 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
2734 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
2735 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
2736 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
2737 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
2738 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
2739 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
2740 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
2741 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
2742 * sysdeps/sparc/tls.h: New file.
2743 * sysdeps/sparc/tcb-offsets.sym: New file.
2744 * sysdeps/sparc/Makefile: New file.
2745 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
2746 * init.c [__sparc__] (__NR_set_tid_address): Define.
2747
feda52c0
UD
27482003-08-29 Jakub Jelinek <jakub@redhat.com>
2749
2750 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
2751 _IO_release_lock): Define.
2752
7c868816
JJ
27532003-08-29 Jakub Jelinek <jakuB@redhat.com>
2754
0261d33f 2755 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
2756 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
2757
68b9e1ae
UD
27582003-08-27 Ulrich Drepper <drepper@redhat.com>
2759
2760 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
2761 (__pthread_cleanup_class): Add missing return types of member
2762 functions.
2763
13b3edfc
UD
27642003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
2765
2766 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
2767 (lll_mutex_unlock_force): Add memory barrier between store and futex
2768 syscall.
2769
bb606fbe
UD
27702003-08-25 Ulrich Drepper <drepper@redhat.com>
2771
2772 * tst-cancel4.c (do_test): Also unlink tempfname and remove
2773 tempmsg in first loop.
2774
ee4e5a3d
UD
27752003-08-18 Ulrich Drepper <drepper@redhat.com>
2776
2777 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2778 _POSIX_THREAD_PRIORITY_SCHEDULING.
2779 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
2780
334fcf2a
UD
27812003-08-07 Jakub Jelinek <jakub@redhat.com>
2782
2783 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
2784 (__rtld_lock_default_lock_recursive,
2785 __rtld_lock_default_unlock_recursive): Define.
2786 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
2787 __rtld_lock_unlock_recursive): Define using
2788 GL(_dl_rtld_*lock_recursive).
2789 * init.c (__pthread_initialize_minimal_internal): Initialize
2790 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
2791 Lock GL(_dl_load_lock) the same number of times as
2792 GL(_dl_load_lock) using non-mt implementation was nested.
2793
2794 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
2795 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
2796
a30fb2df
UD
27972003-08-06 Jakub Jelinek <jakub@redhat.com>
2798
2799 * tst-cancel17.c (do_test): Make len2 maximum of page size and
2800 PIPE_BUF.
2801
ce0d30a0
JJ
28022003-08-07 Jakub Jelinek <jakub@redhat.com>
2803
2804 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
2805
9c988b83
UD
28062003-08-03 Jakub Jelinek <jakub@redhat.com>
2807
2808 * sysdeps/pthread/createthread.c (do_clone): Move error handling
2809 to first syscall error check. Move syscall error check for tkill
2810 into __ASSUME_CLONE_STOPPED #ifdef.
2811
5c5252bd
UD
28122003-08-02 Ulrich Drepper <drepper@redhat.com>
2813
f1205aa7
UD
2814 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
2815 is not defined, do explicit synchronization.
2816 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
2817 is not defined also unlock pd->lock for non-debugging case in case
2818 it is necessary.
2819 * pthread_create.c (start_thread): Always get and release pd->lock
2820 if __ASSUME_CLONE_STOPPED is not defined.
2821 (start_thread_debug): Removed. Adjust users.
2822 * allocatestack.c (allocate_stack): Always initialize lock if
2823 __ASSUME_CLONE_STOPPED is not defined.
2824 * Makefile (tests): Add tst-sched1.
2825 * tst-sched1.c: New file.
2826
5c5252bd
UD
2827 * sysdeps/pthread/createthread.c (do_clone): Only use
2828 sched_setschduler and pass correct parameters.
2829
973d66e4
UD
28302003-07-31 Jakub Jelinek <jakub@redhat.com>
2831
2832 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
2833 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
2834 PTHREAD_STACK_MIN in comments.
2835
d347a4ab
UD
28362003-07-31 Jakub Jelinek <jakub@redhat.com>
2837
2838 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
2839 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
2840 argument.
2841 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
2842 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
2843 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
2844 (__pthread_cleanup_upto): Fix prototype.
2845 (_longjmp_unwind): Adjust caller.
2846 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
2847 Change second argument to const struct pointer.
2848 * tst-sem8.c (main): Remove unused s2 and s3 variables.
2849 * tst-sem9.c (main): Likewise.
2850 * unwind.c: Include string.h for strlen prototype.
2851
1b26e9a5
UD
28522003-07-31 Ulrich Drepper <drepper@redhat.com>
2853
2854 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
2855 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
2856 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
2857 Define HAVE_CMOV.
2858 Patch by Nicholas Miell <nmiell@attbi.com>.
2859
adc12574
UD
28602003-07-30 Jakub Jelinek <jakub@redhat.com>
2861
2862 * init.c (__pthread_initialize_minimal_internal): Initialize
2863 GL(dl_init_static_tls).
2864 * pthreadP.h (__pthread_init_static_tls): New prototype.
2865 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
2866 New functions.
2867 * Makefile (tests): Add tst-tls4.
2868 (modules-names): Add tst-tls4moda and tst-tls4modb.
2869 ($(objpfx)tst-tls4): Link against libdl and libpthread.
2870 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
2871 tst-tls4modb.so.
2872 * tst-tls4.c: New file.
2873 * tst-tls4moda.c: New file.
2874 * tst-tls4modb.c: New file.
2875
a7f6c66e
RM
28762003-06-19 Daniel Jacobowitz <drow@mvista.com>
2877
2878 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
2879 before __timer_dealloc.
2880 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
2881 Don't call list_unlink.
2882
172ce013
RM
28832003-07-29 Roland McGrath <roland@redhat.com>
2884
2885 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
2886
7b787f85
UD
28872003-07-25 Jakub Jelinek <jakub@redhat.com>
2888
2889 * tst-cancel17.c (do_test): Check if aio_cancel failed.
2890 Don't reuse struct aiocb A if it failed.
2891 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
2892 not just one byte, as that does not block.
2893
0e9d6240
UD
28942003-07-22 Jakub Jelinek <jakub@redhat.com>
2895
9d79e037
UD
2896 * sysdeps/pthread/unwind-resume.c: New file.
2897 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
2898 unwind-resume in csu subdir.
2899 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
2900 exceptions.
2901 (librt-sysdep_routines, librt-shared-only-routines): Add
2902 rt-unwind-resume.
2903 * sysdeps/pthread/rt-unwind-resume.c: New file.
2904 * unwind-forcedunwind.c: New file.
2905 * Makefile (libpthread-routines): Add unwind-forcedunwind.
2906 (libpthread-shared-only-routines): Likewise.
2907 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
2908 * pthreadP.h (pthread_cancel_init): New prototype.
2909 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
2910
2911 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
2912 attr argument const struct pthread_attr *.
2913
0e9d6240
UD
2914 * res.c (__res_state): Return __resp.
2915 * descr.h: Include resolv.h.
2916 (struct pthread): Add res field.
2917 * pthread_create.c: Include resolv.h.
2918 (start_thread): Initialize __resp.
2919 * Makefile (tests): Add tst-_res1.
2920 (module-names): Add tst-_res1mod1, tst-_res1mod2.
2921 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
2922 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
2923 libpthread.
2924 * tst-_res1.c: New file.
2925 * tst-_res1mod1.c: New file.
2926 * tst-_res1mod2.c: New file.
2927
1a379ea0
UD
29282003-07-21 Ulrich Drepper <drepper@redhat.com>
2929
7e939b21
UD
2930 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
2931
1a379ea0
UD
2932 * Makefile: Define various *-no-z-defs variables for test DSOs
2933 which has undefined symbols.
2934
ca86a763
UD
29352003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
2936
2937 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
2938 Retry if the stwcx fails to store once_control.
2939
80f536db
UD
29402003-07-20 Ulrich Drepper <drepper@redhat.com>
2941
2942 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
2943 pthread_attr_setaffinity.
2944 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
2945 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
2946 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
2947 * pthread_attr_destroy.c: Free cpuset element if allocated.
2948 * pthread_create.c: Pass iattr as additional parameter to
2949 create_thread.
2950 * sysdeps/pthread/createthread.c: If attribute is provided and
2951 a new thread is created with affinity set or scheduling parameters,
2952 start thread with CLONE_STOPPED.
2953 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
2954 pthread_attr_setaffinity.
2955 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
2956 cpuset element.
2957
73299943
UD
29582003-07-15 Ulrich Drepper <drepper@redhat.com>
2959
2960 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
2961
da35d15e
UD
29622003-07-14 Ulrich Drepper <drepper@redhat.com>
2963
2964 * sysdeps/pthread/configure.in: Require CFI directives also for
2965 ppc and s390.
2966
75540d8a
UD
29672003-07-15 Jakub Jelinek <jakub@redhat.com>
2968
2969 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
2970 Add cfi directives.
2971
4a17085f
UD
29722003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2973
2974 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
2975 CLEANUP_JMP_BUF.
2976 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
2977 registers as variables. Call __pthread_mutex_unlock_usercnt.
2978 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
2979 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
2980 not self pointer in __writer. Compare with TID to determine
2981 deadlocks.
2982 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2983 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
2984 Likewise.
2985 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
2986 Likewise.
2987 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
2988 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
2989 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
2990 macros also when compiling librt.
2991
6080ecdf
UD
29922003-07-11 Jakub Jelinek <jakub@redhat.com>
2993
2994 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
2995 -fasynchronous-unwind-tables.
2996 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
2997 (PSEUDO): Add cfi directives.
2998 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
2999 Likewise.
3000 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
3001 Likewise.
3002
da0c02ee
UD
30032003-07-08 Jakub Jelinek <jakub@redhat.com>
3004
3005 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
3006 __pthread_unregister_cancel): Add prototypes and hidden_proto.
3007 * unwind.c (__pthread_unwind_next): Add hidden_def.
3008 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
3009 Likewise.
3010 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
3011 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
3012 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
3013 Likewise.
3014 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
3015 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
3016 Likewise.
3017 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
3018 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
3019 __pthread_unregister_cancel and __pthread_unwind_next.
3020
57a5ea02
UD
30212003-07-04 Jakub Jelinek <jakub@redhat.com>
3022
3023 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
3024 different symbol for the cancellation syscall wrapper and
3025 non-cancellation syscall wrapper.
3026 (PSEUDO_END): Define.
3027
d810b358
UD
30282003-07-05 Richard Henderson <rth@redhat.com>
3029
3030 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
3031 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
3032 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3033 return actual return value from the syscall, not 0.
d810b358 3034
db54f488
UD
30352003-07-07 Ulrich Drepper <drepper@redhat.com>
3036
3037 * descr.h (struct pthread): Add pid field.
3038 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
3039 (__reclaim_stacks): Likewise.
3040 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
3041 also check for PID of the signal source.
3042 (__pthread_initialize_minimal_internal): Also initialize pid field
3043 of initial thread's descriptor.
3044 * pthread_cancel.c: Use tgkill instead of tkill if possible.
3045 * sysdeps/unix/sysv/linux/fork.c: Likewise.
3046 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
3047 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
3048 * sysdeps/unix/sysv/linux/raise.c: Likewise.
3049
5e497a41
UD
30502003-07-05 Ulrich Drepper <drepper@redhat.com>
3051
3052 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
3053 Fix use of parameter.
3054 (__libc_cleanup_pop): Likewise.
3055
86a0c4fa
UD
30562003-07-04 Ulrich Drepper <drepper@redhat.com>
3057
3058 * init.c (sigcancel_handler): Change parameters to match handler
3059 for SA_SIGACTION. Check signal number and code to recognize
3060 invalid invocations.
3061
bdbecaa3
RM
30622003-07-03 Roland McGrath <roland@redhat.com>
3063
3064 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
3065 Apply sizeof (struct pthread) bias to r13 value.
3066
56421b23
UD
30672003-07-03 Ulrich Drepper <drepper@redhat.com>
3068
fbd90f6c
UD
3069 * sysdeps/pthread/configure.in: Require CFI directives.
3070
56421b23
UD
3071 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
3072 definition.
3073 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
3074 libpthread compilation.
3075 * unwind.c (__pthread_unwind): Add hidden_def.
3076 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
3077
ca2b4cd7
UD
30782003-07-01 Ulrich Drepper <drepper@redhat.com>
3079
3080 * libc-cancellation.c (__libc_cleanup_routine): Define.
3081 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
3082 (__pthread_cleanup_pop): Define.
3083
f036e569
UD
30842003-07-01 Richard Henderson <rth@redhat.com>
3085
3086 * sysdeps/alpha/elf/pt-initfini.c: New file.
3087 * sysdeps/alpha/pthread_spin_lock.S: New file.
3088 * sysdeps/alpha/pthread_spin_trylock.S: New file.
3089 * sysdeps/alpha/pthreaddef.h: New file.
3090 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
3091 * sysdeps/alpha/tls.h: New file.
3092 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
3093 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
3094 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
3095 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
3096 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
3097 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
3098 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
3099 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
3100 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
3101 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
3102
3b985826
UD
31032003-07-01 Ulrich Drepper <drepper@redhat.com>
3104
3105 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
3106 cleanup support and unwind info.
3107
3a4d1e1e
UD
31082003-06-30 Ulrich Drepper <drepper@redhat.com>
3109
3110 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
3111 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
3112 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
3113 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
3114 * tst-once3.c: Add cleanup handler and check it is called.
3115 * tst-once4.c: Likewise.
3116 * tst-oncex3.c: New file.
3117 * tst-oncex4.c: New file.
3118 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
3119
e479cc8e
UD
31202003-06-29 Ulrich Drepper <drepper@redhat.com>
3121
3122 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
3123
7d7ff54c
UD
31242003-06-27 Ulrich Drepper <drepper@redhat.com>
3125
483e95d0
UD
3126 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
3127 (tf_msgsnd): Likewise.
3128
7d7ff54c
UD
3129 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
3130 premature returns a bit more.
3131
7539c7ec
UD
31322003-06-26 Ulrich Drepper <drepper@redhat.com>
3133
3134 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
3135 definition to the front.
3136
3137 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
3138 the cleanup functions to make the names unique. Fix dwarf opcode
3139 un unwind table.
3140 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
3141 functions to make the names unique. Fix CFA offset for two blocks.
3142
0af6a1d9
UD
31432003-06-25 Ulrich Drepper <drepper@redhat.com>
3144
3145 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
3146 missing closing braces.
3147 Patch by Christophe Saout <christophe@saout.de>.
3148
eef4a9f3
RM
31492003-06-24 Roland McGrath <roland@redhat.com>
3150
3151 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
3152
4165d44d
UD
31532003-06-24 Ulrich Drepper <drepper@redhat.com>
3154
7f8f7b9d
UD
3155 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
3156 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
3157
4165d44d
UD
3158 * pthreadP.h: Declare __find_thread_by_id.
3159 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
3160 * pthread_clock_gettime.c: Allow using other thread's clock.
3161 * pthread_clock_settime.c: Likewise.
3162 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
3163 * Makefile: Add rules to build and run tst-clock2.
3164 * tst-clock2.c: New file.
3165
67b78ef9
UD
31662003-06-23 Ulrich Drepper <drepper@redhat.com>
3167
3168 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
3169 to use exception-based cleanup handler.
3170 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3171
3172 * tst-cond8.c (ch): Announce that we are done.
3173
3174 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
3175
3176 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
3177 Also test aio_suspend with timeout value.
3178
61623643
UD
31792003-06-22 Ulrich Drepper <drepper@redhat.com>
3180
3a4f2043
UD
3181 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
3182 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
3183 attribute_hidden.
3184
61623643
UD
3185 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
3186 (__pthread_mutex_lock_internal): Likewise.
3187 (__pthread_mutex_unlock_internal): Likewise.
3188 (__pthread_mutex_unlock_usercnt): Declare.
3189 * pthread_mutex_destroy.c: Always fail if used in any way.
3190 * pthread_mutex_init.c: Update comment.
3191 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
3192 * pthread_mutex_timedlock.c: Adjust __nusers.
3193 * pthread_mutex_trylock.c: Adjust __nusers.
3194 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
3195 and public interfaces are wrapper with pass additional parameter.
3196 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
3197 parameter zero.
3198 * tst-mutex8.c: New file.
3199 * Makefile (tests): Add tst-mutex8.
3200 * sysdeps/pthread/pthread_cond_timedwait.c: Call
3201 __pthread_mutex_unlock_usercnt.
3202 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
3203 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3204 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3205 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3206 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3207 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
3208 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3209 Add __nusers.
3210 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3211 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3212 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3213 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3214 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3215
3216 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
3217 * pthread_mutex_timedlock.c: Likewise.
3218 * pthread_mutex_trylock.c: Adjust __nusers.
3219 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
3220 * tst-mutex9.c: New file.
3221 * Makefile (tests): Add tst-mutex9.
3222 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
3223 * sysdeps/ia64/tls.h: Likewise.
3224 * sysdeps/powerpc/tls.h: Likewise.
3225 * sysdeps/s390/tls.h: Likewise.
3226 * sysdeps/sh/tls.h: Likewise.
3227 * sysdeps/x86_64/tls.h: Likewise.
3228 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
3229 Change type of __owner.
3230 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3231 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3232 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3233 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
3234 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3235
9bdabb94
UD
32362003-06-19 Jakub Jelinek <jakub@redhat.com>
3237
3238 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
3239 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
3240
3241 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
3242 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
3243 instead of nr to lll_futex_wake. Only set errno and return -1
3244 if err < 0.
3245
3246 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
3247 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
3248 return actual return value from the syscall, not 0.
3249
f6c93bd9
UD
32502003-06-18 Ulrich Drepper <drepper@redhat.com>
3251
ca343e73
UD
3252 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
3253 find a random value.
3254 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
3255 errno==EIDRM.
3256
50441a98
UD
3257 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
3258 compat_timer_settime.
3259 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
3260 compat_timer_gettime.
3261 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 3262 compat_timer_getoverrun.
50441a98
UD
3263 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
3264 compat_timer_delete.
3265
f6c93bd9
UD
3266 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
3267 error-checking mutex detect busy mutexes.
3268
047aec8f
UD
32692003-06-17 Ulrich Drepper <drepper@redhat.com>
3270
1d53508d
UD
3271 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
3272 Add ax to clobber list.
3273 (lll_mutex_cond_lock): Likewise.
3274 (lll_mutex_unlock): Likewise.
3275 (lll_lock): Likewise.
3276 (lll_unlock): Likewise.
3277
f23b30e2
UD
3278 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
3279 * tst-cancel18.c: New file.
3280 * tst-cancelx18.c: New file.
3281
3282 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
3283 and tcdrain.
3284
3285 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
3286 * tst-cancel17.c: New file.
3287 * tst-cancelx17.c: New file.
3288
3289 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
3290 * sysdeps/unix/sysv/linux/sigwait.c: New file.
3291 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
3292
047aec8f
UD
3293 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
3294
bbde8527
UD
32952003-06-16 Jakub Jelinek <jakub@redhat.com>
3296
3297 * sysdeps/pthread/createthread.c (create_thread): Set
3298 header.multiple_threads unconditionally.
3299 * allocatestack.c (allocate_stack): Likewise.
3300 * descr.h (struct pthread): Add header.multiple_threads
3301 unconditionally.
3302 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
3303 Define for librt. #error if neither libpthread, libc nor librt.
3304 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
3305 Likewise.
3306 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
3307 CDISABLE): Likewise.
3308 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
3309 CDISABLE): Likewise.
3310 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
3311 CDISABLE): Likewise.
3312 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
3313 CDISABLE): Likewise. Access header.multiple_threads outside of
3314 libc and libpthread.
3315 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
3316 Likewise.
3317 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
3318 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
3319
26676450
UD
33202003-06-17 Ulrich Drepper <drepper@redhat.com>
3321
3322 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
3323 Also test early cancellation before the thread reaches the cancellation
3324 point.
3325
3326 * Makefile: Compile forward.c with exceptions.
3327
3328 * sysdeps/unix/sysv/linux/sleep.c: New file.
3329
301a6724
UD
33302003-06-16 Ulrich Drepper <drepper@redhat.com>
3331
0e0deb03
UD
3332 * Makefile: Add CFLAGS definition to compile function wrappers
3333 duplicated from libc with exceptions.
3334 * tst-cancel4.c: Also check cancellation handlers.
3335
301a6724
UD
3336 * Makefile: Add rules to build and run tst-cancel16 and
3337 tst-cancelx16. Add missing CFLAGS definitions.
3338 * tst-cancel16.c: New file.
3339 * tst-cancelx16.c: New file.
3340
7a114794
UD
33412003-06-15 Ulrich Drepper <drepper@redhat.com>
3342
452aea84
UD
3343 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
3344 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
3345 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
3346 (DL_SYSINFO_IMPLEMENTATION): Likewise.
3347
7a114794
UD
3348 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
3349 (LIBC_CANCEL_RESET): Likewise.
3350 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
3351 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
3352 librt-cancellation.
3353 (CFLAGS-libcrt-cancellation.c): Define.
3354 * sysdeps/pthread/librt-cancellation.c: New file.
3355 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
3356 macros also when compiling librt.
3357 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
3358 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
3359 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
3360 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
3361 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
3362 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
3363 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
3364
3365 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
3366 compat_timer_create.
3367
8ba1d429
UD
33682003-06-14 Ulrich Drepper <drepper@redhat.com>
3369
cc8fb6f3
UD
3370 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
3371
8ba1d429
UD
3372 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
3373 __register_atfork.
3374 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
3375 Add libc_hidden_def.
3376
d4f100e2
RM
33772003-06-13 Roland McGrath <roland@redhat.com>
3378
3379 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
3380 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
3381
dd9423a6
UD
33822003-06-11 Ulrich Drepper <drepper@redhat.com>
3383
3384 * allocatestack.c (queue_stack): Always inline.
3385 * ptreadhP.h (__do_cancel): Likewise.
3386
ed24330d
JJ
33872003-06-10 Jakub Jelinek <jakub@redhat.com>
3388
3389 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
3390 a typo.
3391
06120d79
UD
33922003-06-10 Ulrich Drepper <drepper@redhat.com>
3393
3394 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3395 (__pthread_cond_signal): Remove incorrect second addition for
3396 cond_lock!=0.
3397
b1720346
UD
33982003-06-09 Ulrich Drepper <drepper@redhat.com>
3399
5b318f85
UD
3400 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3401 (__pthread_cond_signal): Use correct futex pointer in
3402 __lll_mutex_lock_wait call.
3403
b1720346
UD
3404 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3405 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
3406
3e36c37d
UD
34072003-06-08 Ulrich Drepper <drepper@redhat.com>
3408
ecf7955d
UD
3409 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
3410 cancelable.
ed24330d 3411 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
3412 Likewise.
3413
3e36c37d
UD
3414 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
3415 hand-written CFI generation code. Since ENTRY/END also initiated
3416 CFI frames this caused two CFI sets to be generated.
3417
7726edc2
UD
34182003-06-07 Ulrich Drepper <drepper@redhat.com>
3419
3420 * cleanup_routine.c: New file.
3421 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
3422 * sysdeps/pthread/pthread.h: Add support for fully exception-based
3423 cleanup handling.
3424 * Makefile (libpthread-routines): Add cleanup_routine.
3425 Add more CFLAGS variables to compile with exceptions. Add comments
3426 why which file needs unwind tables.
3427 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
3428 tests.
3429 * tst-cancelx1.c: New file.
3430 * tst-cancelx2.c: New file.
3431 * tst-cancelx3.c: New file.
3432 * tst-cancelx4.c: New file.
3433 * tst-cancelx5.c: New file.
3434 * tst-cancelx6.c: New file.
3435 * tst-cancelx7.c: New file.
3436 * tst-cancelx8.c: New file.
3437 * tst-cancelx9.c: New file.
3438 * tst-cancelx10.c: New file.
3439 * tst-cancelx11.c: New file.
3440 * tst-cancelx12.c: New file.
3441 * tst-cancelx13.c: New file.
3442 * tst-cancelx14.c: New file.
3443 * tst-cancelx15.c: New file.
3444 * tst-cleanupx0.c: New file.
3445 * tst-cleanupx0.expect: New file.
3446 * tst-cleanupx1.c: New file.
3447 * tst-cleanupx2.c: New file.
3448 * tst-cleanupx3.c: New file.
3449
3450 * tst-cleanup0.c: Make standard compliant.
3451 * tst-cleanup1.c: Likewise.
3452
3453 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
3454 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
3455 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
3456 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
3457 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
3458 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
3459 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
3460 CLEANUP_JMP_BUF.
3461 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3462 * tst-cancel12.c: New file.
3463 * tst-cancel13.c: New file.
3464 * tst-cancel14.c: New file.
3465 * tst-cancel15.c: New file.
3466 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
3467 and tst-cancel15.
3468
3469 * tst-cancel1.c: Add some comments.
3470
3471 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
3472 timeout correctly.
3473
7a8a8e21
UD
34742003-06-06 Ulrich Drepper <drepper@redhat.com>
3475
3476 * Makefile (CFLAGS-pthread_cancel.c): Define.
3477
4ad0bbf4
UD
34782003-06-05 Ulrich Drepper <drepper@redhat.com>
3479
3480 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
3481 Change type of __writer element to int.
3482 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3483 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3484 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3485 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3486 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3487 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
3488 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3489 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
3490 Compare with TID to determine deadlocks.
3491 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
3492 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
3493 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
3494 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3495 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3496 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3497 Likewise.
3498 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3499 Likewise.
3500 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3501 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3502 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3503 Likewise.
3504 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3505 Likewise.
3506 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3507 * Makefile (tests): Add tst-rwlock12.
3508 * tst-rwlock12.c: New file.
3509
332faa96
JJ
35102003-06-05 Jakub Jelinek <jakub@redhat.com>
3511
3512 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
3513 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
3514 Remove bogus hidden_proto.
3515 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
3516 Likewise.
3517 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
3518 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
3519 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
3520 ___lll_mutex_timedlock): Likewise.
3521
29d9e2fd
UD
35222003-06-04 Ulrich Drepper <drepper@redhat.com>
3523
3524 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
3525 (__pthread_cond_signal): Add some code to eventually handle
3526 cond_lock!=0.
3527
6f1acb30
UD
35282003-06-01 Ulrich Drepper <drepper@redhat.com>
3529
3530 * Makefile (tests): Add tst-exec4.
3531 (tst-exec4-ARGS): Define.
3532 * tst-exec4.c: New file.
3533
49b65043
UD
35342003-05-31 Ulrich Drepper <drepper@redhat.com>
3535
31195be2
UD
3536 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
3537 Also fail if tv_nsec < 0.
3538 (__lll_timedwait_tid): Likewise.
3539 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
3540 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
3541 Likewise.
3542 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
3543 Likewise.
3544 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
3545 Likewise.
3546 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
3547 Likewise.
80b54217
UD
3548 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
3549 Likewise.
3550 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
3551 Likewise.
31195be2 3552
dcfc8224
UD
3553 * Makefile (tests): Add tst-sem8 and tst-sem9.
3554 * tst-sem8.c: New file.
3555 * tst-sem9.c: New file.
3556 * sem_open.c: Fix creation of in_use record if the file exists but
3557 no internal record.
3558
49b65043
UD
3559 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
3560 definitions.
3561
3562 * sysdeps/pthread/timer_create.c (timer_create): In case
3563 evp==NULL, assign timer ID to sival_ptr.
3564
3565 * descr.h (struct pthread_unwind_buf): Change type of prev element to
3566 struct pthread_unwind_buf *.
3567 (struct pthread): Likewise for cleanup_jmp_buf element.
3568
3569 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
3570 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
3571 * unwind.c (__pthread_unwind_next): Likewise.
3572
50794a45
UD
35732003-05-30 Ulrich Drepper <drepper@redhat.com>
3574
5d4f57bd
UD
3575 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
3576 (lll_futex_timed_wait): Use int for futex value parameter.
3577 (lll_futex_wake): Likewise.
3578 (lll_futex_requeue): Likewise.
3579
3580 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
3581 Replace one memory operation with one register operation.
3582
3583 * tst-join4.c (do_test): Fix error message.
3584
7ab7ea33
UD
3585 * tst-rwlock6.c (do_test): Use correct format specifier.
3586
3587 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
3588 (__lll_mutex_lock_wait): Replace one memory operation with one
3589 register operation.
3590 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
3591 (__lll_mutex_lock_wait): Likewise.
3592
50794a45
UD
3593 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
3594 (__lll_mutex_cond_lock): Add one to value parameter of
3595 __lll_lock_wait to reflect reality in the futex syscall.
3596 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3597 (lll_mutex_cond_lock): Likewise.
3598
5a70784e
JJ
35992003-05-30 Jakub Jelinek <jakub@redhat.com>
3600
3601 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
3602 New function.
3603 (lll_mutex_cond_lock): Define.
3604
e7c5ac68
UD
36052003-05-29 Ulrich Drepper <drepper@redhat.com>
3606
586d1748
UD
3607 * Makefile (tests): Add tst-signal6.
3608 * tst-signal6.c: New file.
3609
b8ba4a27
UD
3610 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
3611 (__lll_mutex_unlock_force): New function
3612 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
3613
65d46efe
UD
3614 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
3615 (__lll_mutex_unlock_force): New function.
3616 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
3617
3618 * tst-rwlock7.c (do_test): Use correct format specifier.
3619
e7c5ac68
UD
3620 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
3621 Find break parameter in correct asm argument.
3622
284bdc42
UD
36232003-05-27 Jakub Jelinek <jakub@redhat.com>
3624
3625 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
3626 Remove out4.
3627 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
3628 error occured.
3629 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
3630 Add __mutex.
3631 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
3632 lll_futex_requeue, lll_mutex_unlock_force): Define.
3633
e7c5ac68
UD
36342003-05-30 Jakub Jelinek <jakub@redhat.com>
3635
3636 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3637 (pthread_cond_t): Add __mutex.
3638 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
3639 lll_futex_requeue, lll_mutex_unlock_force): Define.
3640
ea2630c6
UD
36412003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3642
3643 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
3644 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 3645 Add __mutex field.
ea2630c6
UD
3646 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
3647 Define.
3648 (lll_futex_wait, lll_futex_wake): Define.
3649 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
3650 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
3651 FUTEX_REQUEUE instead of FUTEX_WAIT.
3652 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
3653 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
3654 mutex which was used in condvar structure. Call
3655 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
3656 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
3657
3658 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
3659 include tcb-offsets.h. Read wakeup value in locked region.
3660 Use the value of gbr register as THREAD_ID.
3661 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
3662 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
3663 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
3664
3665 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
3666 macros.
3667
5a77f150
UD
36682003-05-28 Ulrich Drepper <drepper@redhat.com>
3669
3670 * sysdeps/pthread/pthread_cond_broadcast.c
3671 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
3672
7661d9f7
UD
36732003-05-26 Ulrich Drepper <drepper@redhat.com>
3674
3675 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
3676 typo in register name.
3677 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
3678 correctly. Actually use requeue. Little optimization.
3679 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
3680 mutex address early. Handle cancellation state as 32-bit value.
3681 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3682 Remove unnecessary label.
3683
69431c9a
UD
36842003-05-25 Ulrich Drepper <drepper@redhat.com>
3685
3686 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
3687 instead of FUTEX_WAIT.
3688 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
3689 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
3690 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
3691 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
3692 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
3693 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
3694 used in condvar structure. Call __pthread_mutex_cond_lock instead
3695 of __pthread_mutex_lock_internal.
3696 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3697 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3698 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
3699 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
3700 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3701 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3702 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
3703 Add pthread_mutex_cond_lock.
3704 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
3705 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
3706 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
3707 lll_mutex_cond_lock.
3708 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3709 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 3710 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 3711 Add __mutex field.
248a3490 3712 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
3713 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3714
3715 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
3716 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
3717
3718 * pthreadP.h: Declare __pthread_mutex_cond_lock.
3719 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
3720 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
3721 macro don't define aliases.
3722
3723 * cancellation.c: Remove __pthread_enable_asynccancel_2.
3724 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
3725 * sysdeps/pthread/pthread_cond_timedwait.c: Use
3726 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
3727 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3728 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3729 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
3730 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
3731 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
3732
fddfebbd
UD
37332003-05-17 Ulrich Drepper <drepper@redhat.com>
3734
3735 * sem_open.c: Fix one endless loop. Implement correct semantics
3736 wrt opening the same semaphore more then once.
3737 * sem_close.c: Adjust for sem_open change.
3738 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
3739 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
3740 * Makefile (tests): Add tst-sem7.
3741 * tst-sem7.c: New file.
3742
1eefffb0
RM
37432003-05-16 Roland McGrath <roland@redhat.com>
3744
3745 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
3746 uninitialized variable braino.
3747
6e66dc78
UD
37482003-05-16 Ulrich Drepper <drepper@redhat.com>
3749
23ae6451
UD
3750 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
3751 test for syscall availability.
3752
3753 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
3754 __no_posix_timers to -1 if the syscalls don't exist.
3755
7ac5b8e2
UD
3756 * pthread_join.c (pthread_join): Set tid field of the joined
3757 thread to -1. This isn't necessary but helps to recognize some
3758 error conditions with almost no cost.
3759
3760 * allocatestack.c (FREE_P): Also negative values indicate an
3761 unused stack.
3762
6e66dc78
UD
3763 * unwind.c: Include <unistd.h>.
3764
855dba3c
UD
37652003-05-14 Ulrich Drepper <drepper@redhat.com>
3766
3767 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
3768
81f3ac4c
UD
37692003-05-14 Jakub Jelinek <jakub@redhat.com>
3770
3771 * Makefile (crti-objs, crtn-objs): New variables.
3772 (omit-deps, extra-objs): Add crtn.
3773 ($(objpfx)libpthread.so): Depend on both crti and crtn
3774 and links to them in multidir.
3775 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
3776
7158eae4
UD
37772003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
3778
3779 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3780 (lll_mutex_unlock): Use atomic_exchange_rel.
3781
edf205d5
UD
37822003-05-11 Ulrich Drepper <drepper@redhat.com>
3783
3784 * cond-perf.c (cons): Add missing locking around setting of alldone.
3785
a3f979a7
UD
37862003-05-10 Ulrich Drepper <drepper@redhat.com>
3787
3788 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
3789 related macros.
3790 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
3791
880867a4
UD
37922003-05-09 Ulrich Drepper <drepper@redhat.com>
3793
949ec764
UD
3794 * tst-sem6.c: New file.
3795 * Makefile (tests): Add tst-sem6.
3796
3797 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
3798 Use atomic_exchange_rel instead of atomic_exchange.
3799 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
3800 Likewise.
3801
3802 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
3803 code for lll_futex_wait and lll_futex_wake in static apps. Use
3804 vsyscall is possible.
3805
3806 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
3807 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
3808 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
3809 pthread_setaffinity_np.
3810 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
3811 and pthread_setaffinity_np.
3812 * Makefile (libpthread-routines): Add pthread_getaffinity and
3813 pthread_setaffinity.
3814
880867a4
UD
3815 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
3816 use it in case mmap to allocate the stack fails.
3817 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
3818 ARCH_MAP_FLAGS here.
3819 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
3820 ARCH_RETRY_MMAP.
3821
92d83c72
UD
38222003-05-08 Ulrich Drepper <drepper@redhat.com>
3823
3824 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
3825 handler implementation. It is now lockless in fork().
3826 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
3827 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
3828 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
3829 declare the __fork_*_lists.
3830 (struct fork_handler): Include pointers to all three functions.
3831 Add next, refcntr and need_signal elements.
3832 (__fork_handlers): New declaration.
3833 (__register_atfork_malloc): Remove declaration.
3834 (HAVE_register_atfork_malloc): Remove definition.
3835 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
3836 __pthread_child_handler variable.
3837 (__libc_pthread_init): Use __register_atfork instead of explicitly
3838 adding to the list.
3839 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
3840 and lll_futex_wake.
3841 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3842
3843 * unwind.c (unwind_cleanup): Print error message and then abort. This
3844 function must never be reached.
3845
3846 * cond-perf.c: New file.
3847
be4d8038
UD
38482003-05-05 Ulrich Drepper <drepper@redhat.com>
3849
3850 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
3851
c6696b79
RM
38522003-05-04 Roland McGrath <roland@redhat.com>
3853
3854 * Makefile ($(objpfx)../libc.so): New target.
3855
7da168bf
UD
38562003-05-02 Ulrich Drepper <drepper@redhat.com>
3857
3858 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3859 (pthread_condattr_t): Size is only an int, don't use long for
3860 alignment.
3861 (pthread_mutexattr_t): Likewise.
7da168bf
UD
3862 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
3863 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
3864 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
3865
9a7178d6
UD
38662003-05-01 Ulrich Drepper <drepper@redhat.com>
3867
3868 * sysdeps/i386/tls.h: Define THREAD_ID.
3869 * sysdeps/ia64/tls.h: Likewise.
3870 * sysdeps/powerpc/tls.h: Likewise.
3871 * sysdeps/s390/tls.h: Likewise.
3872 * sysdeps/sh/tls.h: Likewise.
3873 * sysdeps/x86_64/tls.h: Likewise.
3874 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
3875 record ownership.
3876 * pthread_mutex_timedlock.c: Likewise.
3877 * pthread_mutex_trylock.c: Likewise.
3878 * pthread_mutex_unlock.c: Likewise.
3879 * pthread_rwlock_trywrlock.c: Likewise.
3880 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
3881 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
3882 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
3883 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3884
3885 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
3886 flag.
3887
a234e27d
UD
38882003-04-29 Jakub Jelinek <jakub@redhat.com>
3889
3890 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
3891 (__SIZEOF_PTHREAD_COND_T): Define to 48.
3892 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
3893 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
3894 Make __align long long instead of long.
3895 (pthread_rwlock_t): Formatting.
3896 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
3897 (pthread_rwlock_t): Formatting.
3898 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
3899 (pthread_cond_t): Make __align long long instead of long.
3900 (pthread_rwlock_t): Move __flags field to the same position as in
3901 linuxthreads.
3902
f025c136
UD
39032003-04-30 Ulrich Drepper <drepper@redhat.com>
3904
3905 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
3906 * tst-rwlock7.c (do_test): Likewise.
3907
7531ab9e
RM
39082003-04-26 Roland McGrath <roland@redhat.com>
3909
3910 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
3911
299601a1
UD
39122003-04-22 Jakub Jelinek <jakub@redhat.com>
3913
299601a1
UD
3914 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
3915 sizeof (struct pthread).
3916 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 3917 1 struct pthread.
299601a1
UD
3918 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
3919 to 0.
3920 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
3921 struct pthread.
3922 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
3923 to 32-bit bytes.
3924 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
3925 tcbp.
3926 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
3927 unneccessarily.
3928 (NO_TLS_OFFSET): Define.
299601a1
UD
3929 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
3930 add TLS_TCB_SIZE unnecessarily.
299601a1 3931
950094f8
RM
39322003-04-22 Roland McGrath <roland@redhat.com>
3933
3934 * Makeconfig (shared-thread-library): Reverse link order to work
3935 around linker bug.
3936
dc2f6455
UD
39372003-04-22 Ulrich Drepper <drepper@redhat.com>
3938
3939 * semaphore.h: Fix typo in comment.
3940
e7608d77
UD
39412003-04-21 Ulrich Drepper <drepper@redhat.com>
3942
6a87ee19
UD
3943 * sysdeps/pthread/sigfillset.c: New file.
3944
e7608d77
UD
3945 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
3946 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
3947 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
3948 * sysdeps/pthread/sigaction.c: Likewise.
3949 * sysdeps/pthread/sigprocmask.c: New file.
3950 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
3951 __SIGRTMIN+1.
3952 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
3953 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
3954 in this case.
3955
0b3df49e
UD
39562003-04-19 Ulrich Drepper <drepper@redhat.com>
3957
58a7a325
UD
3958 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
3959 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
3960
0b3df49e
UD
3961 * sysdeps/unix/sysv/linux/unregister-atfork.c
3962 (__unregister_atfork): Don't free memory not allocated dynamically.
3963
3964 * semaphore.h: Remove __THROW marker from cancellation points.
3965 * nptl/sysdeps/pthread/pthread.h: Likewise.
3966
7d74651e
UD
39672003-04-18 Ulrich Drepper <drepper@redhat.com>
3968
76a67697
UD
3969 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
3970 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
3971 __THROW.
3972
dd9d6538
JJ
39732003-04-16 Jakub Jelinek <jakub@redhat.com>
3974
3975 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
3976
4ab6f47c
RM
39772003-04-15 Roland McGrath <roland@redhat.com>
3978
3979 * forward.c (__pthread_unwind): Tweak to avoid warning.
3980
162434a6
UD
39812003-04-15 Ulrich Drepper <drepper@redhat.com>
3982
3983 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
3984
35909161
UD
39852003-04-14 Ulrich Drepper <drepper@redhat.com>
3986
18ddd3aa 3987 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
3988 overflow CFA advance instructions.
3989 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3990
18a8e730
UD
39912003-04-14 Jakub Jelinek <jakub@redhat.com>
3992
bd4f43b4
UD
3993 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
3994 * sysdeps/i386/pthread_spin_lock.c: Likewise.
3995 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
3996 defined.
3997
18a8e730
UD
3998 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
3999 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
4000 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
4001 DW_CFA_advance_loc for .Laddl-.Lsubl.
4002
08c765fa
UD
40032003-04-13 Ulrich Drepper <drepper@redhat.com>
4004
18a8e730
UD
4005 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
4006 position-independent unwind data for static libraries.
4007 Add missing unwind info. Add comments.
4008
ad2be852
UD
4009 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
4010 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4011 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
4012 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4013
177d1ad3
UD
40142003-04-12 Ulrich Drepper <drepper@redhat.com>
4015
08c765fa
UD
4016 * Makefile: Make sure all cancellation points are compiled with
4017 exception and asynchronous unwind tables.
4018
177d1ad3
UD
4019 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
4020 which mishandles loading of global object addresses in PIC.
4021 (THREAD_SETMEM_NC): Likewise.
4022
09d65ff3
UD
40232003-04-11 Ulrich Drepper <drepper@redhat.com>
4024
4025 * pthread.h: Define new data structure for cleanup buffer. Declare
4026 new cleanup handler interfaces.
4027 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
4028 (struct pthread): Add cleanup_jmp_buf pointer. Define
4029 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
4030 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
4031 it. Declare old cleanup handler installation functions.
4032 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
4033 handling.
4034 * cleanup_defer.c: Likewise.
4035 * cleanup_compat.c: New file. Old cleanup code.
4036 * cleanup_def_compat.c: New file. Old cleanup code.
4037 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
4038 if own thread descriptor.
4039 * unwind.c: New file.
4040 * forward.c: Add __pthread_unwind.
4041 * init.c (pthread_functions): Add __pthread_unwind.
4042 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
4043 Add ptr___pthread_unwind.
4044 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
4045 and unwind function.
4046 * Makefile (libpthread-routines): Add cleanup_compat,
4047 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
4048 table generation if necessary.
4049 * version.c: Record whether unwind support is compiled in.
4050 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
4051 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
4052 handler interfaces.
4053 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
4054 complication to generate unwind information for syscall wrappers.
68107ec0 4055 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
4056 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
4057 __cleanup_fct_attribute.
4058
4059 * Makefile: Add rules to build and run tst-cleanup0.
4060 * tst-cleanup0.c: New file.
4061 * tst-cleanup0.expect: New file.
4062
4063 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
4064 caller. Optimize to avoid often unecessary local variable.
4065
0dc44b51
RM
40662003-04-11 Roland McGrath <roland@redhat.com>
4067
4068 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
4069 sets variable `multidir'; include that.
4070 (generated): Add it.
4071 ($(objpfx)$(multidir)/crti.o): New target.
4072 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
4073
84a80719
UD
40742003-04-11 Ulrich Drepper <drepper@redhat.com>
4075
4076 * tst-attr2.c (do_test): Add cast to avoid warning.
4077 * tst-mutex4.c (do_test): Likewise.
4078
88ff4759
UD
40792003-04-10 Ulrich Drepper <drepper@redhat.com>
4080
4081 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
4082 in child.
4083
b2041097
UD
40842003-04-09 Ulrich Drepper <drepper@redhat.com>
4085
4086 * Makefile (tests): Add tst-detach1.
4087 * tst-detach1.c: New file.
4088
f9657e88
UD
40892003-04-08 Ulrich Drepper <drepper@redhat.com>
4090
9afe4964
UD
4091 * sysdeps/pthread/pthread.h: Remove duplicate
4092 pthread_cleanup_{push,pop} definitions.
4093
f9657e88
UD
4094 * tst-barrier2.c: Eliminate warnings.
4095 * tst-cancel4.c: Likewise.
4096 * tst-cond4.c: Likewise.
4097 * tst-cond6.c: Likewise.
4098 * tst-detach1.c: Likewise.
4099 * tst-rwlock4.c: Likewise.
4100 * tst-rwlock6.c: Likewise.
4101 * tst-rwlock7.c: Likewise.
4102 * tst-sem3.c: Likewise.
4103 * tst-spin2.c: Likewise.
4104 * tst-umask1.c: Likewise.
4105
69b35e86
UD
41062003-04-07 Ulrich Drepper <drepper@redhat.com>
4107
4108 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
4109
c70ad7d7
UD
41102003-04-06 Ulrich Drepper <drepper@redhat.com>
4111
4112 * descr.h (struct pthread): Move cancelhandling member to the front.
4113
54e0138f
UD
41142003-04-05 Ulrich Drepper <drepper@redhat.com>
4115
4116 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
4117 malloc_parent, and malloc_child statically.
4118 (__register_atfork_malloc): New function.
4119 (free_mem): Don't free any of the malloc_* variables on the list.
4120 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
4121 Define HAVE_register_atfork_malloc.
4122
b22d701b
UD
41232003-04-04 Ulrich Drepper <drepper@redhat.com>
4124
4125 * sysdeps/pthread/createthread.c (create_thread): Add some more
4126 comments explaining when to set multiple_threads and when not.
4127
4128 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4129 THREAD_ATOMIC_BIT_SET if not already defined.
4130 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
4131 THREAD_ATOMIC_BIT_SET:
4132 * sysdeps/x86_64/tls.h: Likewise.
4133 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
4134 THREAD_ATOMIC_CMPXCHG_VAL.
4135 (_pthread_cleanup_pop_restore): Likewise.
4136 * cancellation.c (__pthread_enable_asynccancel): Likewise.
4137 (__pthread_enable_asynccancel_2): Likewise.
4138 (__pthread_disable_asynccancel): Likewise.
4139 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4140 (__libc_disable_asynccancel): Likewise.
4141 * init.c (sigcancel_handler): Likewise.
4142 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
4143 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
4144
86246935
UD
41452003-04-03 Ulrich Drepper <drepper@redhat.com>
4146
4147 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
4148 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
4149 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
4150 * Makefile (tests): Add tst-cancel11.
4151 * tst-cancel11.c: New file.
4152
6b4686a5
UD
41532003-04-01 Ulrich Drepper <drepper@redhat.com>
4154
4155 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
4156 round, not the first. Use specific_used flag instead of local
4157 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
4158 (__free_tcb): Don't call deallocate_tsd here.
4159 (start_thread): Call deallocate_tsd here.
4160 * pthread_setspecific.c: Set specific_used flag really only when
4161 needed.
0d73a73b 4162 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 4163 * tst-tsd3.c: New file.
0d73a73b 4164 * tst-tsd4.c: New file.
6b4686a5 4165
42b2395d
UD
41662003-03-31 Ulrich Drepper <drepper@redhat.com>
4167
211d90c5
UD
4168 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
4169 Use atomic_exchange_and_add instead of __lll_add.
4170 (__lll_mutex_timedlock): Likewise.
4171 Patch by Ian Wienand.
4172
41732003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
4174
4175 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4176 (SINGLE_THREAD_P): Fix typo.
4177 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
4178
41792003-03-31 Ulrich Drepper <drepper@redhat.com>
4180
4181 * Makefile (tests): Add tst-align.
4182 * tst-align.c: New file.
4183 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 4184
42b2395d
UD
4185 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
4186 function correctly.
4187
211d90c5
UD
4188 * tst-tsd2.c: Add casts to avoid warnings.
4189
163b180f
UD
41902003-03-30 Ulrich Drepper <drepper@redhat.com>
4191
4192 * descr.h (struct pthread): Move most often used elements to the front.
4193
ea473bad
UD
41942003-03-29 Ulrich Drepper <drepper@redhat.com>
4195
4196 * Makefile (libpthread-routines): Add pthread_atfork.
4197 (libpthread-static-only-routines): Add pthread_atfork.
4198
dd731d53
UD
41992003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4200
4201 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
4202 of TLS_DTV_AT_TP.
4203 (INSTALL_DTV): Add parens.
4204 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
4205 Use passed descr instead of THREAD_SELF.
4206 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
4207 (__lll_mutex_timedlock_wait): Correct expected value after
4208 spurious wakeup.
4209 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
4210 Release lock before waking up the waiters.
4211 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
4212 criteria. Reorderstruct passed to cleanup handler. Fix
4213 handling of cancellation and failung pthread_mutex_unlock call.
4214 Use __pthread_enable_asynccancel_2 instead of
4215 __pthread_enable_asynccancel.
4216 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4217 Return result of lock re-get if it fails.
4218 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
4219 for __pthread_cleanup_push.
4220 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
4221 completely broken rwlock implementation.
4222 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4223 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4224 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4225 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
4226 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4227 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
4228 versioned_symbol macro.
4229 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
4230 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
4231
c75d02f0
UD
42322003-03-27 Ulrich Drepper <drepper@redhat.com>
4233
5f5004df
UD
4234 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
4235 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
4236 and __helper_tid.
4237 (struct timer): Remove th and bar field.
4238 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
4239 debugging code. Create only one helper thread.
4240 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
4241 helper thread.
4242 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
4243 Renamed. Define statically. Use thread info from siginfo.
4244 (__helper_once): New variable.
4245 (__helper_tid): New variable.
4246 (__reset_helper_control): New function.
4247 (__start_helper_thread): New function.
4248
18d009ca
UD
4249 * pthread_create.c (start_thread): Don't use setjmp inside
4250 __builtin_expect to work around gcc bug.
4251
c75d02f0
UD
4252 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
4253 timer_delete syscall fails, but not with ENOSYS, set
4254 __no_posix_timers.
4255
4256 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
4257 (timer_settime): Fix typo.
28cf3058
UD
4258 * sysdeps/unix/sysv/linux/timer_getoverr.c
4259 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 4260
049ac259
JJ
42612003-03-27 Jakub Jelinek <jakub@redhat.com>
4262
4263 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
4264 offset of cleanupbuf.__prev.
4265
f93d39dd
JJ
42662003-03-26 Jakub Jelinek <jakub@redhat.com>
4267
4268 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
4269 of included file.
4270
f064e4c5
UD
42712003-03-26 Ulrich Drepper <drepper@redhat.com>
4272
4273 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
4274 NULL provide default definition to syscall.
4275
83e886a3
RM
42762003-03-25 Roland McGrath <roland@redhat.com>
4277
4278 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
4279 (timer_id2ptr): Fix typo.
4280
09402f5b
UD
42812003-03-25 Ulrich Drepper <drepper@redhat.com>
4282
4283 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
4284 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
4285 * sysdeps/ia64/pthreaddef.h: Likewise.
4286 * sysdeps/powerpc/pthreaddef.h: Likewise.
4287 * sysdeps/s390/pthreaddef.h: Likewise.
4288 * sysdeps/sh/pthreaddef.h: Likewise.
4289 * sysdeps/x86_64/pthreaddef.h: Likewise.
4290 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
4291 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
4292 being changed.
4293 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
4294 SIGTIMER is not unblocked.
4295 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
4296 RT signal taken.
4297 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
4298 be send.
4299 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
4300 pass pointer through as ID.
4301 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
4302 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
4303 * sysdeps/unix/sysv/linux/timer_create.c: New file.
4304 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
4305 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
4306 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
4307 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
4308 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
4309 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
4310 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
4311 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
4312 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
4313 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
4314 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
4315 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
4316 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
4317 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
4318 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
4319 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
4320 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
4321 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
4322 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
4323 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
4324 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
4325 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
4326 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
4327 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
4328 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
4329 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
4330 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
4331 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
4332 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
4333 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
4334
4335 * pthreadP.h: Remove FRAME_LEFT definition.
4336 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
4337 already left frame. Programs which have this problem are not POSIX
4338 compliant.
4339 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
4340
5e826ab5
UD
43412003-03-24 Ulrich Drepper <drepper@redhat.com>
4342
4343 * sysdeps/pthread/tst-timer.c: Check return values of the
4344 functions we test.
4345
b910f788
RM
43462003-03-23 Roland McGrath <roland@redhat.com>
4347
3045a1fe
RM
4348 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
4349 * tst-tls3mod.c: Likewise.
4350 * tst-tls1.c: Likewise.
4351 * tst-tls2.c: Likewise.
4352
85047fe3
RM
4353 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
4354 undefined behavior.
4355
b910f788
RM
4356 * tst-join5.c (tf1, tf2): Add a cast.
4357
4358 * Makeconfig (includes): Append -I$(..)nptl to this variable.
4359
4360 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
4361 Don't test anything.
4362 * tst-cond4.c: Likewise.
4363 * tst-cond6.c: Likewise.
4364 * tst-flock2.c: Likewise.
4365 * tst-mutex4.c: Likewise.
4366 * tst-rwlock4.c: Likewise.
4367 * tst-signal1.c: Likewise.
4368 * tst-spin2.c: Likewise.
4369 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
4370
4371 * tst-mutex4.c: Use test-skeleton.c.
4372 * tst-spin2.c: Likewise.
4373 * tst-sysconf.c: Likewise.
4374 * tst-barrier2.c: Likewise.
4375 * tst-cond4.c: Likewise.
4376 * tst-cond6.c: Likewise.
4377 * tst-rwlock4.c: Likewise.
4378 * tst-unload.c: Likewise.
4379 * tst-flock2.c (do_test): Use return instead of exit.
4380
4baa087a
RM
43812003-03-22 Jakub Jelinek <jakub@redhat.com>
4382
4383 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
4384
5a3ab2fc
UD
43852003-03-21 Ulrich Drepper <drepper@redhat.com>
4386
9f07eae2
UD
4387 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
4388 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
4389 instead of __lll_compare_and_swap.
4390 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
4391 Likewise.
4392 Removed definition if __lll_compare_and_swap.
4393
5a3ab2fc
UD
4394 * cancellation.c: Adjust for new form of compare&exchange macros.
4395 * cleanup_defer.c: Likewise.
4396 * init.c: Likewise.
4397 * libc-cancellation.c: Likewise.
4398 * old_pthread_cond_broadcast.c: Likewise.
4399 * old_pthread_cond_signal.c: Likewise.
4400 * old_pthread_cond_timedwait.c: Likewise.
4401 * old_pthread_cond_wait.c: Likewise.
4402 * pthread_cancel.c: Likewise.
4403 * pthread_create.c: Likewise.
4404 * pthread_detach.c: Likewise.
4405 * pthread_join.c: Likewise.
4406 * pthread_key_delete.c: Likewise.
4407 * pthread_setcancelstate.c: Likewise.
4408 * pthread_setcanceltype.c: Likewise.
4409 * pthread_timedjoin.c: Likewise.
4410 * pthread_tryjoin.c: Likewise.
4411 * sysdeps/pthread/createthread.c: Likewise.
4412
b1aea098
UD
44132003-03-20 Ulrich Drepper <drepper@redhat.com>
4414
4415 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 4416 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
4417 definitions. Replace uses with calls to atomic_* functions.
4418 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
4419 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
4420 __lll_test_and_set calls with atomic_exchange_and_add and
4421 atomic_exchange calls respectively.
4422 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
4423 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
4424 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
4425 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
4426 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
4427 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
4428 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
4429
4430 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
4431 returns the old value.
4432
100a7100
RM
44332003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
4434
4435 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
4436 int for variable OLDVAL and correct inline assembler contraint.
4437 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
4438 type int for variable OLD.
4439
4440 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
4441 only for s390-32.
4442 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
4443 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
4444 instead of multiple_threads field in the TCB.
4445
95767b36
UD
44462003-03-19 Ulrich Drepper <drepper@redhat.com>
4447
4009bf40
UD
4448 * sysdeps/i386/i686/bits/atomic.h: Removed.
4449 * sysdeps/i386/i586/bits/atomic.h: Removed.
4450 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
4451 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
4452 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
4453 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
4454 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
4455 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
4456 * atomic.h: Removed. Moved to glibc.
4457
560a784f
UD
4458 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
4459 support for clock selection.
4460
95767b36
UD
4461 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
4462 signalling waiters.
4463
043ad426
RM
44642003-03-18 Roland McGrath <roland@redhat.com>
4465
94659495
RM
4466 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
4467 Add __lll_rel_instr first. Add memory clobber.
4468 (lll_mutex_unlock): Use __lll_test_and_set.
4469 From Paul Mackerras <paulus@samba.org>.
4470
4471 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
4472 unconditionally.
4473 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4474 (SINGLE_THREAD_P): Add `header.' prefix.
4475 From Paul Mackerras <paulus@samba.org>.
4476
043ad426
RM
4477 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
4478 pthread_timedjoin_np to ...
4479 (libpthread: GLIBC_2.3.3): ... here.
4480 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
4481
4482 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
4483 Avoid shadowing VAL variable.
4484
4485 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
4486 New macro.
4487
86a9ee5e
UD
44882003-03-18 Ulrich Drepper <drepper@redhat.com>
4489
ac9e0aa1
UD
4490 * Makefile (tests): Add tst-cond11.
4491 * tst-cond11.c: New file.
4492
a14b373c
UD
4493 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
4494 struct passed to cleanup handler to eliminate one more
4495 instruction.
4496 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4497
24a49f38
UD
4498 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4499 (pthrad_cond_t): Replace __unused field with __clock.
4500
4501 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
4502 waken all waiters in cleanup handler.
4503 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4504 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4505
86a9ee5e
UD
4506 * pthread_condattr_getclock.c: New file.
4507 * pthread_condattr_setclock.c: New file.
4508 * sysdeps/pthread/pthread.h: Declare these new functions.
4509 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
4510 * Makefile (libpthread-routines): Add the new functions.
4511 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
4512 Renamed field to value. Document use of the bits.
4513 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
4514 change.
4515 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 4516 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
4517 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
4518 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
4519 Add __clock field.
4520 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
4521 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4522 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
4523 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
4524 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
4525 Implement clock selection.
4526 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4527 * pthread-errnos.sym: Add ENOSYS.
4528 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4529 _POSIX_CLOCK_SELECTION.
4530 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
4531
4532 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
4533 invalid .size directive.
4534
98054a05
RM
45352003-03-17 Roland McGrath <roland@redhat.com>
4536
4537 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
4538 Formatting tweaks.
4539
001bea71
UD
45402003-03-17 Ulrich Drepper <drepper@redhat.com>
4541
4773086e
UD
4542 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
4543 Use __lll_add instead of spelling it out. Use protected symbol names.
4544 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
4545 Use __lll_add.
4546 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
4547 Renamed from lll_compare_and_swap. Use new name where necessary.
4548 (__lll_add): Defined.
4549 (__lll_dec_if_positive): Defined.
4550 (__lll_test_and_set): Defined.
4551 * sysdeps/ia64/pthread_spin_init.c: Removed.
4552 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
4553 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
4554 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
4555 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
4556 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
4557 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
4558 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
4559 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
4560 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
4561 __sync_lock_release_si.
4562 Patch by Jakub Jelinek.
4563
4564 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
4565 Fix timeout handling.
4566 (__lll_timedwait_tid): Likewise.
4567 (lll_unlock_wake_cb): Wake up other waiters if necessary.
4568 Patch by Jakub Jelinek.
4569
4570 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
4571
de4471dd
RM
45722003-03-17 Roland McGrath <roland@redhat.com>
4573
4574 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
4575 * sysdeps/pthread/pthread_spin_init.c: New file.
4576 * sysdeps/pthread/pthread_spin_unlock.c: New file.
4577 * sysdeps/powerpc/Makefile: New file.
4578 * sysdeps/powerpc/pthread_spin_lock.c: New file.
4579 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
4580 * sysdeps/powerpc/pthreaddef.h: New file.
4581 * sysdeps/powerpc/tcb-offsets.sym: New file.
4582 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
4583 * sysdeps/powerpc/tls.h: New file.
4584 * sysdeps/powerpc/bits/atomic.h: New file.
4585 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
4586 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
4587 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 4588
de4471dd
RM
4589 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
4590 * sysdeps/unix/sysv/linux/sem_post.c: New file.
4591 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
4592 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
4593 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
4594 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
4595 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
4596 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
4597 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
4598 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
4599 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
4600 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
4601 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
4602 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
4603 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
4604
4605 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
4606 not gettimeofday.
4607 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
4608 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
4609 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
4610 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
4611 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
4612
5778033f
UD
46132003-03-17 Ulrich Drepper <drepper@redhat.com>
4614
4615 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
4616 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
4617 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4618 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4619 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
4620
796038f8
RM
46212003-03-16 Roland McGrath <roland@redhat.com>
4622
4623 * tst-fork4.c: Include <string.h>.
4624 * tst-signal2.c: Likewise.
4625 * tst-mutex5.c (do_test): exit -> return.
4626 * tst-mutex2.c: Include <stdlib.h>.
4627
51d0678c
UD
46282003-03-16 Ulrich Drepper <drepper@redhat.com>
4629
5778033f
UD
4630 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
4631 (__lll_mutex_timedlock_wait): Correct expected value after
4632 spurious wakeup. Otherwise we would never wait again.
4633
b6e2f87a
UD
4634 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
4635 zone versus inline asm stupidity. Use correct instructions.
4636
51d0678c
UD
4637 * tst-rwlock6.c: Add some more status output.
4638
8112cc70
RM
46392003-03-15 Roland McGrath <roland@redhat.com>
4640
4641 * sysdeps/pthread/configure.in: New file.
4642 * sysdeps/pthread/configure: New file (generated).
4643
49773c19
UD
46442003-03-15 Ulrich Drepper <drepper@redhat.com>
4645
4646 * allocatestack.c (allocate_stack): Store the exact stack size of
4647 user allocated stacks.
4648
eec0ca9f
JJ
46492003-03-15 Jakub Jelinek <jakub@redhat.com>
4650
4651 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
4652 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
4653 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
4654 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
4655 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
4656 Use `header.' prefix.
4657 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
4658
a87731e2
UD
46592003-03-15 Ulrich Drepper <drepper@redhat.com>
4660
4661 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
4662 __builtin_frame_address, use stack pointer.
4663
4664 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
4665 instead of __builtin_frame_pointer.
4666
e22a221d
UD
46672003-03-14 Ulrich Drepper <drepper@redhat.com>
4668
92ed3daf
UD
4669 * tst-basic1.c (do_test): Add cast to avoid warning.
4670 * tst-basic2.c (do_test): Likewise.
4671
9b89567d
UD
4672 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
4673 amount of stack correction.
4674
e22a221d
UD
4675 * tst-fork4.c: Use test-skeleton.c.
4676
2e49caba
RM
46772003-03-14 Roland McGrath <roland@redhat.com>
4678
4679 * init.c: Fix typo "#eli" for "#else".
4680
415ef7d8
RM
46812003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
4682
4683 * allocatestack.c (__stack_user): Use hidden_data_def.
4684 * pthread_create.c (__pthread_keys): Likewise.
4685
4686 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
4687
52287505
RM
46882003-03-14 Roland McGrath <roland@redhat.com>
4689
415ef7d8
RM
4690 * tst-fork4.c: New file.
4691 * Makefile (tests): Add it.
4692
52287505
RM
4693 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
4694 we always define the padding space.
4695 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
4696 stopped supporting its own extensions fully.
4697 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
4698 struct also called `header', so `header.multiple_threads' is the field
4699 name to use on all machines.
4700 * allocatestack.c (allocate_stack): Use `header.' prefix.
4701 * sysdeps/pthread/createthread.c (create_thread): Likewise.
4702 * pthread_create.c (__pthread_create_2_1): Likewise.
4703 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
4704 (THREAD_SELF): Likewise.
4705 * sysdeps/x86_64/tls.h: Likewise.
4706 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
4707 (SINGLE_THREAD_P): Likewise.
4708 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
4709 (SINGLE_THREAD_P): Likewise.
4710 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
4711 (SINGLE_THREAD_P): Likewise.
4712
4713 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
4714 value directly.
4715
c44bf9aa
UD
47162003-03-14 Ulrich Drepper <drepper@redhat.com>
4717
e22a221d
UD
4718 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
4719 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
4720
0eb18281
UD
4721 * pthread_create.c (start_thread): setjmp is expected to return 0.
4722
c44bf9aa
UD
4723 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
4724 (THREAD_GETMEM_NC): Likewise.
4725
564cd8b6
UD
47262003-03-13 Ulrich Drepper <drepper@redhat.com>
4727
4728 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
4729 and the size of the stack which must be allocated is a multiple,
4730 allocate one more page.
4731 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
4732 MULTI_PAGE_ALIASING.
4733
6461e577
RM
47342003-03-13 Roland McGrath <roland@redhat.com>
4735
4736 * pthread_create.c (start_thread): Set EXITING_BIT after the
4737 event-reporting (and destructors), not before.
4738
b5ec5617
UD
47392003-03-13 Jakub Jelinek <jakub@redhat.com>
4740
6461e577
RM
4741 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
4742 lll_futex_wake): Declare register variables as long int instead of
4743 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
4744 Make syscall arguments clobbered by the syscall.
4745 (lll_futex_wait): Define using lll_futex_timed_wait.
4746
4747 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
4748 to void *.
4749
4750 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
4751 PPID if [! NDEBUG].
4752
4753 * allocatestack.c (nptl_ncreated): Only declare if
4754 COLORING_INCREMENT != 0.
4755
4756 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
4757 (__libc_enable_asynccancel_2): Remove prototype.
4758
b5ec5617
UD
4759 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
4760 ctid to match kernel.
4761
d0369fb8
UD
47622003-03-12 Ulrich Drepper <drepper@redhat.com>
4763
7588880f
UD
4764 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
4765 libc_multiple_threads.
4766 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
4767 __libc_multiple_threads to...
4768 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
4769
4770 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
4771 versioning.
4772 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
4773 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4774
4775 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
4776 (__pthread_once_internal): Define.
4777
4778 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
4779 macros instead of .symver directly.
4780 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
4781 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4782
d0369fb8
UD
4783 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
4784 * sysdeps/x86_64/tcb-offsets.sym: New file.
4785 * sysdeps/x86_64/Makefile: New file.
4786
4787 * sysdeps/i386/tcb-offsets.sym: Add SELF.
4788 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
4789 to access own pthread_t in TCB.
4790 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4791 Likewise.
4792 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4793 Likewise.
4794 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
4795
0bb2ac85
RM
47962003-03-12 Roland McGrath <roland@redhat.com>
4797
4798 * pthread-errnos.sym: New file.
4799 * Makefile (gen-as-const-headers): New variable, list that file.
4800 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
4801 header <pthread-errnos.h> instead of defining errno values here.
4802 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
4803 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4804 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
4805 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
4806 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4807 Likewise.
4808 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4809 Likewise.
4810 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
4811 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4812 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
4813 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4814 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4815 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
4816 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4817 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
4818 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4819 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
4820 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
4821 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
4822 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
4823 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
4824 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
4825 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4826 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4827 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4828 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4829 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
4830 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
4831 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
4832 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
4833 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
4834 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
4835 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
4836 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
4837
4838 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
4839 CLONE_CHILD_SETTID worked.
4840
35e148cb
UD
48412003-03-12 Ulrich Drepper <drepper@redhat.com>
4842
d0369fb8
UD
4843 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
4844 file.
4845 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
4846 file.
4847
4848 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
4849 (pthread_cond_t): Add padding.
4850
da49194d
UD
4851 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
4852 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
4853 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
4854
35e148cb
UD
4855 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
4856 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
4857 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
4858 (__pthread_rwlock_timedrdlock): Likewise.
4859 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
4860 (__pthread_rwlock_wrlock): Likewise.
4861 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
4862 (__pthread_rwlock_rdlock): Likewise.
4863
4864 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
4865
4866 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
4867 result of lock re-get if it fails.
4868
3e976b96
UD
48692003-03-11 Ulrich Drepper <drepper@redhat.com>
4870
5a03acfe
UD
4871 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
4872 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
4873 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
4874 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
4875 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4876 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
4877 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
4878 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4879 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
4880 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4881
4882 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
4883 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
4884
4885 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
4886 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
4887 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
4888 (create_thread): Likewise.
4889 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
4890 * init.c (__pthread_initialize_minimal_internal): Initialize
4891 __libc_multiple_threads_ptr if necessary.
4892 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
4893 __pthread_multiple_threads and __libc_multiple_threads_ptr.
4894 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
4895 __libc_multiple_threads.
4896 (__libc_pthread_init): Return pointer to __libc_pthread_init if
4897 necessary.
4898
4899 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
4900 (THREAD_SETMEM_NC): Likewise.
4901
4902 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
4903 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
4904 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
4905 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
4906
4907 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
4908 Eliminate one entire instruction.
4909
32a589b1
UD
4910 * cancellation.c (__pthread_enable_asynccancel_2): New function.
4911 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
4912 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
4913 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
4914 instead of __pthread_enable_asynccancel.
4915 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
4916 (__pthread_cond_wait): Likewise.
4917 * sysdeps/pthread/pthread_cond_timedwait.c
4918 (__pthread_cond_timedwait): Likewise.
4919 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
4920
3e976b96
UD
4921 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
4922 (__condvar_cleanup): Wake up all waiters in case we got signaled
4923 after being woken up but before disabling asynchronous
4924 cancellation.
4925 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
4926 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
4927 (__condvar_cleanup): Likewise.
4928
4929 * init.c (__NR_set_tid_address): If already defined, don't redefine.
4930 Make it an error if architecture has no #if case. Add x86-64.
4931
4932 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
4933 pt-initfini.s generation.
4934
4935 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
4936 (TLS_INIT_TP): Fix typo.
4937
6c477888
UD
49382003-03-11 Jakub Jelinek <jakub@redhat.com>
4939
4940 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
4941 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
4942
4943 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
4944 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
4945 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
4946 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
4947 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
4948 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
4949 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
4950 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
4951
ea694823
UD
49522003-03-11 Ulrich Drepper <drepper@redhat.com>
4953
6c477888
UD
4954 * sysdeps/pthread/pthread_cond_timedwait.c
4955 (__pthread_cond_timedwait): Return the result of the final
4956 locking. If it succeeds, the regular function return value.
4957
4958 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
4959 Return result of the final locking.
4960 * version.c (__nptl_main): Work around problems with the strange
4961 INTERNAL_SYSCALL macro on ppc32.
4962 * init.c (__pthread_initialize_minimal_internal): Unblock
4963 SIGCANCEL in case the parent blocked it.
4964 Reported by Paul Mackerras <paulus@samba.org>.
4965
ea694823
UD
4966 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
4967 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
4968 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
4969
b33e6163
RM
49702003-03-11 Jakub Jelinek <jakub@redhat.com>
4971
4972 * sysdeps/pthread/pthread_cond_timedwait.c
4973 (__pthread_cond_timedwait): Unlock and fail if
4974 __pthread_mutex_unlock_internal failed.
4975
4976 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
4977 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
4978 Use ARCH_CLONE.
4979 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
4980 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
4981 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
4982 ALLOCATE_STACK): New macros.
4983 (TLS_TPADJ): New macro.
4984 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
4985 (allocate_stack): Handle TLS_DTV_AT_TP and
4986 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
4987 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
4988 Don't set PD->self.
4989 * init.c [__ia64__] (__NR_set_tid_address): Define.
4990
4991 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
4992 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
4993 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
4994 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
4995 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
4996 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
4997 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
4998 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
4999 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
5000 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
5001 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
5002 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
5003 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
5004 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
5005 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
5006 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
5007 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
5008 * sysdeps/ia64/bits/atomic.h: New file.
5009 * sysdeps/ia64/Makefile: New file.
5010 * sysdeps/ia64/pthread_spin_init.c: New file.
5011 * sysdeps/ia64/pthread_spin_lock.c: New file.
5012 * sysdeps/ia64/pthread_spin_trylock.c: New file.
5013 * sysdeps/ia64/pthread_spin_unlock.c: New file.
5014 * sysdeps/ia64/pthreaddef.h: New file.
5015 * sysdeps/ia64/tcb-offsets.sym: New file.
5016 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
5017 * sysdeps/ia64/tls.h: New file.
5018
5019 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
5020 to syscall instead of no arguments.
5021
2b30b2e5
UD
50222003-03-10 Ulrich Drepper <drepper@redhat.com>
5023
db5f2fc9
UD
5024 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
5025 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
5026 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
5027 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
5028
5029 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
5030 unused code.
5031
6a4263e3
UD
5032 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
5033
3de7c2a9
UD
5034 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5035 lowlevelbarrier.sym.
5036 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
5037 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
5038 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 5039 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 5040
2a544d82
UD
5041 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
5042 (__lll_mutex_lock_wait): Reverse order of first two parameters.
5043 (__lll_mutex_timedlock_wait): Likewise.
5044 (lll_mutex_lock): Adjust asm for that.
5045 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
5046 (lll_lock): Adjust asm for operand order change.
5047 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
5048 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
5049
ec06436c
UD
5050 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
5051 Reverse order of parameters.
5052 (__lll_timedwait_tid): Remove regparms attribute.
5053 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
5054 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
5055
3273832c
UD
5056 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5057 (__lll_timedwait_tid): Remove one unnecessary instruction.
5058
51f32ab8
UD
5059 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
5060 __lll_mutex_timedlock_wait only for NOT_IN_libc.
5061 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
5062 lowlevelmutex.S.
5063
5064 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
5065 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
5066 for NOT_IN_libc.
5067 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
5068 lowlevellock.S.
5069
fad48d9e
UD
5070 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
5071 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
5072 for libc.so.
5073 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
5074 define LOCK here (if UP is not defined). The actual code is in
5075 lowlevelmutex.S.
5076
9356d063
UD
5077 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
5078 LOCK is already defined. Don't define lll_unlock_wake_cb and
5079 __lll_timedwait_tid for libc.so.
5080 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
5081 define LOCK here (if UP is not defined). The actual code is in
5082 lowlevellock.S.
5083
ebf0cbc5 5084 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
5085 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
5086 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
5087 instead of lowlevelsem.h.
5088 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
5089 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
5090 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 5091
c915e5ad
UD
5092 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5093 lowlevelrwlock.sym.
5094 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
5095 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 5096 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 5097
4c3c2e8a
UD
5098 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
5099 register loading.
5100 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
5101 last changed. D'oh.
5102
2b30b2e5
UD
5103 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
5104
5105 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
5106 of __libc_locking_needed.
5107 (lll_trylock): Initialize %eax to zero.
5108
2b30b2e5
UD
5109 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
5110 pthread_cond_t definition.
5111
e48f9638
RM
51122003-03-10 Roland McGrath <roland@redhat.com>
5113
5114 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
5115 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
5116 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
5117 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
5118 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
5119
5120 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
5121 Instead of setting PD->multiple_threads, set globals
5122 __pthread_multiple_threads and __libc_multiple_threads.
5123 * sysdeps/pthread/createthread.c (create_thread): Likewise.
5124 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
5125 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
5126
5127 * descr.h (struct pthread): Conditionalize first member on
5128 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
5129 containing an anonymous tcbhead_t. Move `list' member out.
5130 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
5131 * allocatestack.c: Remove use of `header.data.' prefix.
5132 * pthread_create.c: Likewise.
5133 * init.c (__pthread_initialize_minimal_internal): Likewise.
5134 * sysdeps/pthread/createthread.c (create_thread): Likewise.
5135 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
5136 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
5137 * sysdeps/x86_64/tls.h: Likewise.
5138 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
5139 (SINGLE_THREAD_P): Likewise.
5140 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
5141 (SINGLE_THREAD_P): Likewise.
5142 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
5143 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
5144
c37cae9e
UD
51452003-03-09 Ulrich Drepper <drepper@redhat.com>
5146
d38c777e
RM
5147 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
5148
7b44a5e0 5149 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 5150 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 5151
c2e5e085
UD
5152 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
5153 leftovers from the ia32 code.
5154
5155 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
5156 memory load.
5157 (clear_once_control): Don't load %esi.
5158
5159 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
5160 handling.
5161
5162 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
5163
cd4b2a55
UD
5164 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
5165 * sysdeps/unix/sysv/linux/createthread.c: ...here.
5166
c37cae9e
UD
5167 * Makefile (tests): Add tst-cond10.
5168 * tst-cond10.c: New file.
5169
d130a341
UD
51702003-03-08 Ulrich Drepper <drepper@redhat.com>
5171
ccf1d573
UD
5172 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
5173 * tst-signal3.c (do_test): Likewise.
5174 * tst-sem5.c (do_test): Likewise.
5175 * tst-kill6.c (do_test): Likewise.
5176 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
5177
5178 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
5179 of inc/dec.
5180 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
5181 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
5182 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5183 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
5184 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
5185 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5186 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5187 Likewise.
5188 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5189 Likewise.
5190 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
5191 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
5192 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5193 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5194 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5195 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
5196 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
5197 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5198
d130a341
UD
5199 * allocatestack.c (allocate_stack): If mprotect() fails free the
5200 TLS memory.
5201
bc6389ad
UD
52022003-03-07 Ulrich Drepper <drepper@redhat.com>
5203
41d4d223
UD
5204 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
5205
5206 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
5207 lll_wake_tid. This was used only to work around kernel limits in
5208 the early days.
5209 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
5210 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
5211 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
5212 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
5213
bc6389ad
UD
5214 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
5215 (__pthread_initialize_minimal_internal): Change initialization of
5216 __static_tls_align_m1 appropriately.
5217 * pthreadP.h (__static_tls_align_m1): Renamed from
5218 __static_tls_align.
5219 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
5220 instead of __static_tls_align-1.
5221
cc775edf
UD
52222003-03-04 Ulrich Drepper <drepper@redhat.com>
5223
0de28d5c 5224 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 5225
518b5308
UD
5226 * pthread_create.c: Define __pthread_keys using nocommon
5227 attribute, not by placing it explicitly in bss.
5228 Remove DEFINE_DEALLOC definition. Not needed anymore.
5229
5230 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
5231 Use it in mmap call to allocate stacks.
5232
5233 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
5234
cc775edf
UD
5235 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
5236 result of the thread function.
5237
4f6f0a8f
UD
52382003-03-03 Ulrich Drepper <drepper@redhat.com>
5239
f04a2721
UD
5240 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
5241 version is just fine.
5242
4f6f0a8f
UD
5243 * sysdeps/unix/sysv/linux/libc_pthread_init.c
5244 (__pthread_child_handler): Renamed from pthread_child_handler,
5245 exported, and marked hidden. Change all users.
5246 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
5247 free __pthread_child_handler from child list.
5248
7ce5c164
UD
52492003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
5250
5251 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
5252
5253 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
5254 Fix handling of cancellation and failing pthread_mutex_unlock call.
5255 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
5256 (__pthread_cond_wait): Likewise.
5257
5258 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
5259 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
5260 lll_futex_timed_wait call.
5261 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
5262 (pthread_rwlock_timedwrlock): Likewise.
5263
5264 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
5265 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
5266 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
5267
5268 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
5269 check of lll_futex_wake return value.
5270
ea6a015b
RM
52712003-03-03 Roland McGrath <roland@redhat.com>
5272
5273 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
5274
5275 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5276 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
5277 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
5278
4adacf57
UD
52792003-03-02 Ulrich Drepper <drepper@redhat.com>
5280
1be3d664
UD
5281 * sysdeps/pthread/timer_create.c (timer_create): Return correct
5282 error for CPU clocks.
5283
885bafa1
UD
5284 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
5285 _POSIX_MONOTONIC_CLOCK.
5286 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
5287
4adacf57
UD
5288 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
5289 recent kernels.
5290
86bfff4d
UD
52912003-03-01 Ulrich Drepper <drepper@redhat.com>
5292
5293 * descr.h (struct pthread): Move cleanup field to the front.
5294
d1149385
RM
52952003-03-01 Roland McGrath <roland@redhat.com>
5296
5297 * sem_open.c (sem_open): Braino fix.
5298
bd8bb78b
UD
52992003-03-01 Ulrich Drepper <drepper@redhat.com>
5300
748bec08
UD
5301 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
5302 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
5303 __pthread_cleanup_pop functionality.
5304 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5305
bd8bb78b
UD
5306 * descr.h (struct pthread): Move tid field to the front now that
5307 it is often used.
5308
5309 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
5310 (__lll_mutex_timedlock_wait): Remove.
5311 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
5312 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
5313 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
5314 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
5315 (lll_unlock_wake_cb): Don't save and restore %esi.
5316 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
5317 %esi.
5318 (__lll_timedwait_tid): Add alignment.
5319 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
5320 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
5321 %esi.
5322 (__lll_timedwait_tid): Removed.
5323 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
5324 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
5325 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
5326 (pthread_barrier_wait): Don't save, load, and restore %esi for
5327 last thread.
5328 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
5329 (__pthread_cond_signal): Don't save, load, and restore %esi.
5330 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
5331 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
5332 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
5333 Don't save, load, and restore %esi.
5334
d2637c70
UD
53352003-02-27 Ulrich Drepper <drepper@redhat.com>
5336
567fb22a
UD
5337 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
5338 Release lock before waking up the waiters.
5339
427f5fa1
UD
5340 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
5341
a2d83cfb
UD
5342 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
5343 (reader_thread): Likewise.
5344
d2637c70
UD
5345 * sysdeps/pthread/pthread_rwlock_unlock.c
5346 (__pthread_rwlock_unlock): Release internal lock early. Don't try
5347 to wake up readers if there are none.
5348
5349 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
5350 Release internal lock before wake threads.
5351
b1531183
UD
53522003-02-26 Ulrich Drepper <drepper@redhat.com>
5353
dbf6131c
UD
5354 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
5355 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
5356 predefined.
5357 * tst-rwlock9.c: Likewise.
5358 * tst-rwlock10.c: New file.
5359 * tst-rwlock11.c: New file.
5360
695799fe
UD
5361 * Makefile (tests): Add tst-dlsym1.
5362 * tst-dlsym1.c: New file.
5363
b1531183
UD
5364 * init.c (__pthread_initialize_minimal_internal): Set
5365 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
5366 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
5367
3724f268
UD
53682003-02-24 Ulrich Drepper <drepper@redhat.com>
5369
3857ca78
UD
5370 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
5371
80d80779
UD
5372 * tst-cond2.c: Fix sychronization with child.
5373
86371308
UD
5374 * tst-rwlock8.c (reader_thread): Remove unused variable.
5375
ffeb4481
UD
5376 * Makefile: Add rules to build and run tst-tls3.
5377 * tst-tls3.c: New file.
5378 * tst-tls3mod.c: New file.
5379
3724f268
UD
5380 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
5381 * tst-rwlock8.c: New file.
5382 * tst-rwlock9.c: New file.
5383 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
5384 complete broken rwlock implementation.
5385 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5386 Likewise.
5387 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5388 Likewise.
5389 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
5390 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
5391 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
5392 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
5393 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
5394 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
5395 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 5396
8915cc40
RM
53972003-02-23 Roland McGrath <roland@redhat.com>
5398
5399 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
5400
fd1a0d0c
UD
54012003-02-23 Ulrich Drepper <drepper@redhat.com>
5402
ecf28959
UD
5403 * Makefile (tests): Add tst-context1.
5404 * tst-context1.c: New file.
5405
5e47b76b
UD
5406 * Makefile (tests): Add tst-tls1 and tst-tls2.
5407 * tst-tls1.c: New file.
5408 * tst-tls2.c: New file.
5409
5a6bbb41
UD
5410 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
5411 for failed cmpxchg.
5412
fd1a0d0c
UD
5413 * pthread_create.c (start_thread): Set EXITING_BIT early.
5414
5415 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
5416 (THREAD_GETMEM_NC): Likewise.
5417
757f9fcb
UD
54182003-02-22 Ulrich Drepper <drepper@redhat.com>
5419
b1b8e747
UD
5420 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
5421 off 3 more bytes by using offset-less instructions when possible.
5422
c780aa21 5423 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
5424
5425 * eintr.c (eintr_source): Add unnecessary return but the compiler
5426 insists.
5427
5428 * tst-kill3.c: Include <unistd.h>.
5429
5148559c
RM
54302003-02-21 Roland McGrath <roland@redhat.com>
5431
5432 * pthread_create.c (start_thread): Call __libc_thread_freeres.
5433
ab2d98e3
UD
54342003-02-21 Ulrich Drepper <drepper@redhat.com>
5435
71028edd
UD
5436 * Makefile (tests): Add tst-eintr1.
5437 (distribute): Add eintr.c.
5438 * tst-eintr1.c: New file.
5439 * eintr.c: New file.
5440
e814f748
UD
5441 * pthread_cancel.c (pthread_cancel): Use tkill directly.
5442
5443 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
5444 Disallow sending SIGCANCEL.
5445
ab2d98e3 5446 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 5447 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
5448 * tst-kill1.c: New file.
5449 * tst-kill2.c: New file.
5450 * tst-kill3.c: New file.
5451 * tst-kill5.c: New file.
9c03686d 5452 * tst-kill6.c: New file.
e814f748
UD
5453 * tst-basic7.c: Renamed to...
5454 * tst-kill4.c: ...this.
ab2d98e3 5455
59fed0e2
RM
54562003-02-21 Roland McGrath <roland@redhat.com>
5457
5458 * Makefile (install-lib-ldscripts): New variable.
5459
49dc759f
UD
54602003-02-21 Ulrich Drepper <drepper@redhat.com>
5461
8c2e9a29
UD
5462 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
5463 * pthread_cancel.c: Use INVALID_TD_P.
5464 * pthread_detach.c: Likewise.
5465 * pthread_getschedparam.c: Likewise.
5466 * pthread_setschedparam.c: Likewise.
5467 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
5468 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
5469 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
5470 * pthread_timedjoin.c: Likewise.
5471
5472 * tst-basic7.c: Include <signal.h>.
5473
49dc759f
UD
5474 * pthread_join.c (pthread_join): Limited checking for invalid
5475 descriptors.
5476 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
5477
df5803bf
UD
54782003-02-20 Ulrich Drepper <drepper@redhat.com>
5479
c5acd3d7
UD
5480 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
5481 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
5482 * Makefile (tests): Add tst-key4.
5483 * tst-key4.c: New file.
5484
729924a0
UD
54852003-02-18 Ulrich Drepper <drepper@redhat.com>
5486
2f7dc594
UD
5487 * Makefile (tests): Add tst-basic7.
5488 * tst-basic7.c: New file.
5489
ba25bb0f
UD
5490 * pthread_create.c (deallocate_tsd): Mark as internal_function.
5491 Add some more __builtin_expect.
5492
12fd3c5f 5493 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 5494
5430d926
UD
54952003-02-17 Ulrich Drepper <drepper@redhat.com>
5496
b0db7fbe
UD
5497 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
5498 _POSIX_THREAD_PRIORITY_SCHEDULING.
5499 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
5500 _XOPEN_REALTIME_THREADS.
5501 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
5502
5503 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
5504 kernel returns EINVAL for PID <= 0, work around it.
5505
ecfda9bd
UD
5506 * Makefile (tests): Add tst-signal5.
5507 * tst-signal5.c: New file.
5508
7d78ab99
UD
5509 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
5510 and LOGIN_NAME_MAX.
5511
371a2972
UD
5512 * tst-cancel1.c (tf): Block all signals.
5513
5430d926
UD
5514 * Makefile (tests): Add tst-basic6.
5515 * tst-basic6.c: New file.
5516
5517 * tst-basic1.c: Add test for process ID.
5518
5519 * Makefile (tests): Add tst-cancel10.
5520 * tst-cancel10.c: New file.
5521
5522 * Makefile (tests): Add tst-signal4.
5523 * tst-signal4.c: New file.
5524
5525 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
5526 __sigismember instead of sigismember. Add __builtin_expect.
5527
1564916a
UD
55282003-02-16 Ulrich Drepper <drepper@redhat.com>
5529
179ff175
UD
5530 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
5531 pthread_setcancelstate, and pthread_rwlock_setpshared.
5532
e4335f9a
UD
5533 * tst-cancel7.c (do_test): Make sure the pid file exists before
5534 canceling the thread.
5535
0a37669a
UD
5536 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
5537 pthread_rwlock_timedrdlock tests.
5538 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
5539 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5540 Check for invalid tv_nsec field.
5541 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5542 Likewise.
5543
5544 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
5545 recursive mutex of overflow.
5546
5547 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
5548
e4335f9a 5549 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
5550 going into an endless loop.
5551 * Makefile (tests): Add tst-cancel9.
5552 * tst-cancel9.c: New file.
5553
5554 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
5555
b270b548
UD
55562003-02-15 Ulrich Drepper <drepper@redhat.com>
5557
1c82b97f
UD
5558 * tst-mutex5.c (do_test): Add more timedlock tests.
5559
b2f05465 5560 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
5561 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
5562
e798b60f
UD
5563 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
5564 use INLINE_SYSCALL. Error number is returned, not -1.
5565
90491dc4
UD
5566 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
5567 and __deallocate_stack with internal_function.
5568 * pthread_create.c: Adjust definitions appropriately.
5569 * allocatestack.c: Likewise.
5570
5571 * pthread_join.c: Add one more __builtin_expect.
5572 * pthread_timedjoin.c: Likewise.
5573
5574 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
5575 not data of sequence number does not match.
5576 Add one __builtin_expect.
5577
c6247c9d
UD
5578 * Makefile (tests): Add tst-clock1.
5579 * tst-clock1.c: New file.
5580
b270b548
UD
5581 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
5582 negative arguments.
5583 * Makefile (tests): Add tst-basic5.
5584 * tst-basic5.c: New file.
5585
700bf7af
UD
55862003-02-14 Ulrich Drepper <drepper@redhat.com>
5587
757de559
UD
5588 * Makefile (tests): Add tst-basic4.
5589 * tst-basic4.c: New file.
5590
47202270
UD
5591 * pthreadP.h: Add declaraction for __nptl_nthreads.
5592 * pthread_create.c: Define __nptl_nthreads
5593 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 5594 after thread is done. If then zero, call exit(0).
47202270
UD
5595 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5596 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
5597 * init.c (pthread_functions): Initialize ptr_nthreads.
5598 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
5599 (__reclaim_stacks): Decrement __nptl_nthreads.
5600 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
5601 Define.
5602 * Makefile (tests): Add tst-basic3.
5603 * tst-basic3.c: New file.
5604
e320ef46
UD
5605 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
5606 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
5607 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
5608 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
5609 if asynchronous canceling is enabled.
5610 * pthread_join.c (pthread_join): When recognizing circular joins,
5611 take into account the other thread might be already canceled.
5612 * Makefile (tests): Add tst-join5.
5613 * tst-join5.c: New file.
5614
700bf7af
UD
5615 * Makefile (tests): Add tst-join4.
5616 * tst-join4.c: New file.
5617
56182003-02-13 Ulrich Drepper <drepper@redhat.com>
5619
5620 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
5621
dac0f772
UD
56222003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
5623
5624 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
5625 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
5626 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
5627 warning.
5628 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
5629 to avoid warning.
5630 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
5631 error if lll_futex_wake failed.
5632
e8cda341
UD
56332003-02-13 Ulrich Drepper <drepper@redhat.com>
5634
a7720b5e
UD
5635 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
5636 handling of cancellation and failung pthread_mutex_unlock call.
5637 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5638 * Makefile (tests): Add tst-cond8 and tst-cond9.
5639 * tst-cond8.c: New file.
5640 * tst-cond9.c: New file.
5641
a1ea4c06
UD
5642 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
5643
5644 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
5645 non-standard initializers with __USE_GNU.
5646
e8cda341
UD
5647 * Makefile (tests): Add tst-cleanup3.
5648 * tst-cleanup3.c: New file.
5649
2067577c
UD
56502003-02-12 Ulrich Drepper <drepper@redhat.com>
5651
89e78a95
UD
5652 * Makefile (tests): Add tst-attr1 and tst-attr2.
5653 * tst-attr1.c: New file.
5654 * tst-attr2.c: New file.
5655
dfdd294a
UD
5656 * Makefile: Add rules to build and run tst-atfork2 test.
5657 * tst-atfork2.c: New file.
5658 * tst-atfork2mod.c: New file.
5659
5660 * sysdeps/unix/sysv/linux/unregister-atfork.c
5661 (__unregister_atfork): Free the memory allocated for the handlers
5662 after removing them from the lists.
5663
5664 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
5665 cleanup function.
5666
5667 * tst-atfork1.c (do_test): Wait for the child we forked.
5668 Report error in child.
5669
5670 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
5671
2067577c
UD
5672 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
5673
2a8a8a84
UD
56742003-02-10 Ulrich Drepper <drepper@redhat.com>
5675
d9dd121e
UD
5676 * Makefile (tests): Add tst-cancel8.
5677 * tst-cancel8.c: New file.
5678
2a8a8a84
UD
5679 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
5680 clearing of control variable.
defd1870 5681 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 5682 * tst-once3.c: New file.
defd1870 5683 * tst-once4.c: New file.
2a8a8a84 5684
a54e8d33
UD
56852003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
5686
5687 * sysdeps/sh/Makefile: New file.
5688 * sysdeps/sh/bits/atomic.h: New file.
5689 * sysdeps/sh/pthread_spin_init.c: New file.
5690 * sysdeps/sh/pthread_spin_lock.c: New file.
5691 * sysdeps/sh/pthread_spin_trylock.S: New file.
5692 * sysdeps/sh/pthread_spin_unlock.S: New file.
5693 * sysdeps/sh/pthreaddef.h: New file.
5694 * sysdeps/sh/tcb-offsets.sym: New file.
5695 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
5696 * sysdeps/sh/tls.h: New file.
5697 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
5698 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
5699 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
5700 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
5701 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
5702 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
5703 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
5704 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
5705 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
5706 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
5707 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
5708 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
5709 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
5710 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
5711 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
5712 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
5713 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
5714 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
5715 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
5716 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
5717 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
5718 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
5719 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
5720 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
5721 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
5722 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
5723 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
5724 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
5725 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
5726 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
5727
696e556e
UD
57282003-02-08 Ulrich Drepper <drepper@redhat.com>
5729
5730 * tst-cond2.c: Rearrange code to not rely on behavior undefined
5731 according to POSIX.
5732
5733 * tst-basic2.c (do_test): Lock mutex before creating the thread.
5734
fef710d6
UD
57352003-02-07 Ulrich Drepper <drepper@redhat.com>
5736
c6180643
UD
5737 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
5738 (TLS_GET_FS): New #define.
5739 (TLS_SET_FS): New #define.
5740 Correct value of __NR_set_thread_area.
5741
fef710d6
UD
5742 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
5743
11090a99
UD
57442003-02-06 Ulrich Drepper <drepper@redhat.com>
5745
65c68990
UD
5746 * Makefile (tests): Add tst-popen1.
5747 * tst-popen1.c: New file.
5748
11090a99
UD
5749 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
5750 but inactive generalization.
5751 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
5752 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
5753 Minor optimization, remove one instruction.
5754 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
5755
a88c9263
UD
57562003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
5757
5758 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
5759
57602003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
5761
5762 * init.c (__NR_set_tid_address): Add #ifdef for s390.
5763 * sysdeps/pthread/pthread_barrier_wait.c: New file.
5764 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
5765 * sysdeps/pthread/pthread_cond_signal.c: New file.
5766 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
5767 * sysdeps/pthread/pthread_cond_wait.c: New file.
5768 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
5769 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
5770 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
5771 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
5772 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
5773 * sysdeps/s390/Makefile: New file.
5774 * sysdeps/s390/bits/atomic.h: New file.
5775 * sysdeps/s390/pthread_spin_init.c: New file.
5776 * sysdeps/s390/pthread_spin_lock.c: New file.
5777 * sysdeps/s390/pthread_spin_trylock.c: New file.
5778 * sysdeps/s390/pthread_spin_unlock.c: New file.
5779 * sysdeps/s390/pthreaddef.h: New file.
5780 * sysdeps/s390/tcb-offsets.sym: New file.
5781 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
5782 * sysdeps/s390/tls.h: New file.
5783 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
5784 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
5785 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
5786 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
5787 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
5788 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
5789 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
5790 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
5791 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
5792 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
5793 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
5794 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
5795 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
5796 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
5797 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
5798 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
5799 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
5800 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
5801 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
5802 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
5803 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
5804 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
5805 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
5806
6f1cff95
UD
58072003-02-04 Ulrich Drepper <drepper@redhat.com>
5808
ec609a8e
UD
5809 * atomic.h: Add a couple more default implementations.
5810 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
5811 __arch_compare_and_exchange_32_acq in return value definition. It
5812 always exists.
5813 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 5814 Add missing atomic_ prefixes.
e3ec8904 5815
6f1cff95
UD
5816 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
5817 thread library is available, use correct value to mark initialized
5818 once variable.
5819
4f088329
UD
58202003-02-03 Ulrich Drepper <drepper@redhat.com>
5821
6f1cff95
UD
5822 * allocatestack.c (allocate_stack): Use __getpagesize instead of
5823 __sysconf to determine pagesize.
5824
3e4fc359 5825 * pthread_create.c: Include <atomic.h>.
4f088329
UD
5826 * allocatestack.c (allocate_stack): Implement coloring of the
5827 allocated stack memory. Rename pagesize to pagesize_m1. It's the
5828 size minus one. Adjust users.
3e4fc359 5829 * sysdeps/i386/i686/Makefile: New file.
4f088329 5830
2f42e8be
UD
58312003-02-02 Ulrich Drepper <drepper@redhat.com>
5832
4301f7e2
UD
5833 * allocatestack.c: Improve comment throughout the file.
5834
2f42e8be 5835 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 5836 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
5837 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
5838 (__lll_lock_wait): Likewise.
5839 (lll_unlock_wake_cb): Removed.
5840
4a7d6545
UD
58412003-01-31 Ulrich Drepper <drepper@redhat.com>
5842
5843 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
5844 _POSIX_THREAD_PRIORITY_SCHEDULING.
5845
886d5973
UD
58462003-01-30 Jakub Jelinek <jakub@redhat.com>
5847
5848 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
5849 Fix return type of ptr___pthread_getspecific.
5850
e474ca78
UD
58512003-01-29 Ulrich Drepper <drepper@redhat.com>
5852
5853 * Makefile (tests): Add tst-umask1.
5854 (tst-umask1-ARGS): Define.
5855 * tst-umask1.c: New file.
5856
e6ebd2e4
UD
58572003-01-28 Ulrich Drepper <drepper@redhat.com>
5858
6cf26f41
UD
5859 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
5860 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
5861 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
5862 pthread_rwlock_unlock.
5863 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
5864 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
5865 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
5866 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
5867 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
5868 New file.
5869 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
5870 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
5871 New file.
5872 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
5873 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
5874 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
5875 New file.
5876 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
5877 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
5878 New file.
5879 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
5880 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
5881 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
5882 New file.
5883 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
5884 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
5885 New file.
5886 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
5887
1d087a7e
UD
5888 * Makefile (libpthread-routines): Remove lowlevelcond and
5889 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
5890 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
5891 and pthread_cond_broadcast.
4a99d160
UD
5892 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
5893 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
5894 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
5895 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
5896 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
5897 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
5898 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
5899 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
5900 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
5901 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
5902 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
5903 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
5904 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
5905 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
5906 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
5907 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
5908 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
5909 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
5910 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
5911 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
5912 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
5913 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
5914 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
5915 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
5916 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
5917 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
5918 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
5919 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
5920 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
5921 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
5922 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 5923
e6ebd2e4
UD
5924 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
5925 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
5926 of the code is moved to ...
5927 * sysdeps/pthread/createthread.c: ...here. New file.
5928
a15698cb
UD
59292003-01-27 Ulrich Drepper <drepper@redhat.com>
5930
0566b130
UD
5931 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
5932 (__new_sem_post): Clear %eax before returning.
5933 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
5934
e6fb8846
UD
5935 * Makefile (tests): Add tst-cleanup2.
5936 * tst-cleanup2.c: New file.
5937
a15698cb
UD
5938 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
5939 Interpret first parameter correctly.
5940
8824b0a1
UD
59412003-01-17 Ulrich Drepper <drepper@redhat.com>
5942
5943 * Makefile (headers): Add bits/semaphore.h.
5944
850dcfca
UD
59452003-01-16 Jakub Jelinek <jakub@redhat.com>
5946
5947 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
5948 if not SHARED.
5949
574b892e
UD
59502003-01-14 Ulrich Drepper <drepper@redhat.com>
5951
a8d87c92
UD
5952 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
5953 must be used and mapping failed.
5954 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
5955
574b892e
UD
5956 * Makefile (CFLAGS-pthread_self.os): Define this, not
5957 CFLAGS-pthread_self.c.
5958
fb48047a
UD
59592003-01-13 Ulrich Drepper <drepper@redhat.com>
5960
47805511
UD
5961 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
5962 lll_unlock_wake_cb.
5963
fb48047a
UD
5964 * Makefile (libpthread-routines): Add version. Add rules to build
5965 version.os and banner.h.
5966 * version.c: New file.
5967
115bb61d
UD
59682003-01-13 Jakub Jelinek <jakub@redhat.com>
5969
5970 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
5971 the alias unconditional.
5972 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
5973
59742003-01-13 Ulrich Drepper <drepper@redhat.com>
5975
5976 * Makefile (CFLAGS-pthread_self.c): New definition.
5977
6aca81bb
UD
59782003-01-06 Jakub Jelinek <jakub@redhat.com>
5979
5980 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
5981 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
5982 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
5983 * init.c (__pthread_initialize_minimal_internal): Likewise.
5984
e9c7764e
UD
59852003-01-07 Jakub Jelinek <jakub@redhat.com>
5986
b5facfda
UD
5987 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
5988
e9c7764e
UD
5989 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
5990 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
5991 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
5992 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
5993 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
5994 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
5995
bef1e42f
UD
59962003-01-06 Jakub Jelinek <jakub@redhat.com>
5997
5998 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
5999 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
6000 * tst-cancel-wrappers.sh: Remove all exceptions.
6001
bbd17455
UD
60022003-01-05 Ulrich Drepper <drepper@redhat.com>
6003
a73ab6df
UD
6004 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
6005 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
6006
bbd17455
UD
6007 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
6008 Use __libc_pthread_functions array if SHARED.
6009
6010 * pthreadP.h: Move pthread_cond_2_0_t definition to...
6011 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
6012
6013 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
6014 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
6015 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
6016 __libc_ptf_call instead of __libc_maybe_call.
6017 (PTF): New #define.
6018 (__libc_cleanup_region_start): Wrap function name with PTF call.
6019 (__libc_cleanup_region_end): Likewise.
6020 (__libc_cleanup_end): Likewise.
6021
6022 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
6023 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
6024 * pthread_key_create.c: Add __pthread_key_create_internal alias.
6025 * pthreadP.h: Add prototypes.
6026
6027 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
6028 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
6029 __pthread_rwlock_unlock aliases.
6030 * pthreadP.h: Add prototypes for new aliases.
6031
6032 * pthreadP.h (struct pthead_functions): Moved to...
6033 * sysdeps/pthread/pthread-functions.h: ...here. New file.
6034 * init.c (pthread_functions): Add initializers for new elements.
6035
6036 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
6037 __pthread_cleanup_pop_restore aliases.
6038 * pthreadP.h: Add prototypes.
6039
6040 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
6041 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
6042 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
6043 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
6044 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
6045 * pthreadP.h: Adjust prototypes and callers.
6046
d27a78be
UD
60472003-01-04 Ulrich Drepper <drepper@redhat.com>
6048
b74121ae
UD
6049 * Makefile (tests): Add tst-cancel7.
6050 (tst-cancel7-ARGS): New variable.
bbd17455 6051 * tst-cancel7.c: New file.
b74121ae 6052
29bc410c
UD
6053 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
6054 around gcc defficiencies.
6055 * old_pthread_cond_signal.c: Likewise.
6056 * old_pthread_cond_timedwait.c: Likewise.
6057 * old_pthread_cond_wait.c: Likewise.
6058
d27a78be
UD
6059 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
6060
733f25e6
UD
60612003-01-03 Ulrich Drepper <drepper@redhat.com>
6062
7edb2ae3
UD
6063 * Makefile (tests): Add tst-cond7.
6064 * tst-cond7.c: New file.
6065
b1151300
UD
6066 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6067 (condvar_cleanup): Get condvar address from the right place.
6068
733f25e6
UD
6069 * atomic.h: Correct definitions of atomic_full_barrier,
6070 atomic_read_barrier, atomic_write_barrier.
6071
6072 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
6073 race-free.
6074 * old_pthread_cond_signal.c: Likewise.
6075 * old_pthread_cond_timedwait.c: Likewise.
6076 * old_pthread_cond_wait.c: Likewise.
6077
686b7223
UD
60782003-01-03 Jakub Jelinek <jakub@redhat.com>
6079
6080 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
6081
0e07706e
UD
60822003-01-03 Ulrich Drepper <drepper@redhat.com>
6083
997256dd
UD
6084 * pthreadP.h (pthread_cond_2_0_t): New type.
6085 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
6086 Use new type for the 2.0 condvar function prototypes.
6087 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
6088 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
6089 parameter.
6090 * old_pthread_cond_destroy.c: Likewise.
6091 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
6092 * old_pthread_cond_signal.c: Likewise.
6093 * old_pthread_cond_timedwait.c: Likewise.
6094 * old_pthread_cond_wait.c: Likewise.
6095
842d2817
UD
6096 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
6097 (__pthread_cond_wait): Don't save cancellation mode and seq value
6098 in same location.
6099
0e07706e
UD
6100 * herrno.c (__h_errno_location): Don't define as weak.
6101
bf293afe
UD
61022003-01-02 Jakub Jelinek <jakub@redhat.com>
6103
6104 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
6105 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
6106 and pthread_cond_wait.
6107 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
6108 Renamed to...
6109 (__pthread_cond_broadcast_2_0): ... this.
6110 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
6111 Renamed to...
6112 (__pthread_cond_destroy_2_0): ... this.
6113 * old_pthread_cond_init.c (__old_pthread_cond_init):
6114 Renamed to...
6115 (__pthread_cond_init_2_0): ... this.
6116 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
6117 Renamed to...
6118 (__pthread_cond_signal_2_0): ... this.
6119 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
6120 Renamed to...
6121 (__pthread_cond_wait_2_0): ... this.
6122 * pthread_cond_destroy.c: Include shlib-compat.h.
6123 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
6124 * pthread_cond_init.c: Include shlib-compat.h.
6125 (pthread_cond_init): Change strong_alias into versioned_symbol.
6126 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
6127 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
6128 fields.
6129 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
6130 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
6131 __pthread_cond_wait_2_0): New prototypes.
6132 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
6133 __old_pthread_cond_init, __old_pthread_cond_signal,
6134 __old_pthread_cond_wait): Removed.
6135 * init.c: Include shlib-compat.h.
6136 (pthread_functions): Guard ptr___pthread_attr_init_2_0
6137 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
6138 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
6139 ptr___pthread_cond_*_2_0 fields.
6140 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
6141 pthread_cond_*@GLIBC_2.0 compatibility symbols.
6142
6143 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
6144 LIBC_SIGACTION was not yet defined.
6145 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
6146 [!defined LIBC_SIGACTION] (__sigaction): New function and
6147 libc_hidden_weak.
6148 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
6149 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
6150
61512003-01-02 Jakub Jelinek <jakub@redhat.com>
6152
6153 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
6154
05df18c3
UD
61552003-01-02 Ulrich Drepper <drepper@redhat.com>
6156
6157 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6158 New, larger type definition.
6159 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
6160 implementation.
6161 * Versions [libpthread]: Add definitions for new pthread_cond_*
6162 interfaces for version GLIBC_2.3.2.
6163 * pthread_cond_init.c: Update initialization for new type definition.
6164 * Makefile (libpthread-routines): Remove pthread_cond_wait,
6165 pthread_cond_timedwait, pthread_cond_signal, and
6166 pthread_cond_broadcast. Add old_pthread_cond_init,
6167 old_pthread_cond_destroy, old_pthread_cond_wait,
6168 old_pthread_cond_timedwait, old_pthread_cond_signal, and
6169 old_pthread_cond_broadcast.
6170 * old_pthread_cond_broadcast.c: New file.
6171 * old_pthread_cond_destroy.c: New file.
6172 * old_pthread_cond_init.c: New file.
6173 * old_pthread_cond_signal.c: New file.
6174 * old_pthread_cond_timedwait.c: New file.
6175 * old_pthread_cond_wait.c: New file.
6176 * pthreadP.h: Add prototypes for the compatibility interfaces.
6177
6178 * pthread_cond_destroy.c: Don't include <errno.h>.
6179
fd8979e4
UD
61802003-01-01 Ulrich Drepper <drepper@redhat.com>
6181
6182 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
6183 unnecessary zero offset when addressing MUTEX.
6184
6d6ee629
UD
61852002-12-31 Ulrich Drepper <drepper@redhat.com>
6186
6187 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
6188 __register_atfork.
6189 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
6190 for __register_atfork.
6191
a4baf360
UD
61922002-12-31 Jakub Jelinek <jakub@redhat.com>
6193
6194 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
6195 instead of ASSEMBLER test macro.
6196
6197 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
6198 __libc_current_sigrtmax): Add libc_hidden_def.
6199
6200 * sysdeps/pthread/list.h: Remove assert.h include.
6201
e9395a94
UD
62022002-12-31 Ulrich Drepper <drepper@redhat.com>
6203
6204 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
6205 __pthread_initialize_minimal_internal not
6206 __pthread_initialize_minimal.
6207
89d6e444
UD
62082002-12-30 Ulrich Drepper <drepper@redhat.com>
6209
416d2de6
UD
6210 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
6211 __pthread_initialize_minimal as hidden.
6212
89d6e444
UD
6213 * init.c (__pthread_initialize_minimal_internal): Don't mark as
6214 constructor.
6215
62162002-12-31 Jakub Jelinek <jakub@redhat.com>
6217
6218 * Makefile ($(inst_libdir)/libpthread.so): Depend on
6219 $(common-objpfx)format.lds, include that into the output script.
6220 Fix comment.
6221 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
6222
8cac677c
UD
62232002-12-28 Andreas Jaeger <aj@suse.de>
6224
6225 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
6226 nsec resolution changes.
6227 (xstat64_conv): Likewise.
6228 (xstat32_conv): Likewise.
6229 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
6230 struct kernel_stat.
6231 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
6232 structs stat and stat64.
6233 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 6234 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 6235
49e9f864
UD
62362002-12-30 Jakub Jelinek <jakub@redhat.com>
6237
6238 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
6239 argument.
6240 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
6241 (pthread_exit): Use strong_alias to avoid warnings.
6242 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
6243 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
6244 ptr___pthread_attr_init_2_*.
6245 * init.c (pthread_functions): Adjust.
6246
bab09b26
UD
62472002-12-29 Ulrich Drepper <drepper@redhat.com>
6248
598d7a42
UD
6249 * forward.c: Make all functions available by default again. It
6250 caused too much trouble.
6251
bab09b26
UD
6252 * pt-siglongjmp.c: Removed.
6253
3b7ed871
UD
62542002-12-28 Jakub Jelinek <jakub@redhat.com>
6255
6256 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
6257 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
6258 * sysdeps/i386/Makefile: New file.
6259 * sysdeps/i386/tcb-offsets.sym: New file.
6260 * sysdeps/pthread/tcb-offsets.h: New file.
6261 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6262 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
6263
6264 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
6265 __register_atfork...
6266 (GLIBC_2.3.2): ...here.
6267
62682002-12-28 Ulrich Drepper <drepper@redhat.com>
6269
6270 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
6271 pthread_attr_setstackaddr with __attribute_deprecated__.
6272
270d9d47
UD
62732002-12-27 Jakub Jelinek <jakub@redhat.com>
6274
6275 * pt-system.c (system): Remove cancellation handling.
6276 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
6277 cancellation routines.
6278
131fd126
UD
62792002-12-28 Ulrich Drepper <drepper@redhat.com>
6280
afb2e954
UD
6281 * descr.h: Include <dl-sysdep.h>.
6282 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
6283 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
6284 (MULTIPLE_THREADS_OFFSET): Adjust offset.
6285 (SYSINFO_OFFSEET): Likewise.
6286
62872002-12-27 Jakub Jelinek <jakub@redhat.com>
6288
6289 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
6290 Define.
6291 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
6292 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
6293 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
6294 (USE_DL_SYSINFO): Undef.
6295
62962002-12-22 Jakub Jelinek <jakub@redhat.com>
6297
6298 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
6299 $(common-objpfx)libc.so.
6300 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
6301 it is bigger than pipe buffer size even on arches with bigger
6302 page size.
6303 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
6304
a218c9cf
UD
63052002-12-25 Ulrich Drepper <drepper@redhat.com>
6306
6307 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
6308 correct errno access for case that USE___THREAD is not defined.
6309
015a2dc9
UD
63102002-12-24 Ulrich Drepper <drepper@redhat.com>
6311
6312 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
6313 Patch by Marijn Ros <marijn@mad.scientist.com>.
6314
5220f9ac
RM
63152002-12-22 Roland McGrath <roland@redhat.com>
6316
6317 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
6318
1561bf63
UD
63192002-12-20 Ulrich Drepper <drepper@redhat.com>
6320
6321 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
6322
3325198e
UD
63232002-12-19 Ulrich Drepper <drepper@redhat.com>
6324
057c823f
UD
6325 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
6326 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
6327 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
6328
097eca29
UD
6329 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
6330 of int $0x80.
6331 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
6332 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
6333 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
6334 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
6335 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
6336 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
6337 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
6338 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
6339
6340 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
6341 sysenter.
6342 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
6343
6344 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
6345
5f5843e3
UD
6346 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
6347 in new TCB.
6348 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
6349 that sysinfo is properly initialized.
6350 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
6351 to 1 only for ld.so.
6352
3325198e
UD
6353 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
6354 RTLD_CORRECT_DYNAMIC_WEAK.
6355
74e8f2dc
UD
63562002-12-19 Jakub Jelinek <jakub@redhat.com>
6357
6358 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
6359 Use return 0 as 6th argument to FORWARD4.
6360 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
6361
df45b31e
UD
63622002-12-18 Ulrich Drepper <drepper@redhat.com>
6363
6364 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
6365 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
6366 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
6367 (INIT_SYSINFO): New #define.
6368 (TLS_TP_INIT): Use INIT_SYSINFO.
6369 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6370 At test to make sure SYSINFO_OFFSET value is correct.
6371 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
6372
3d539579
UD
63732002-12-18 Jakub Jelinek <jakub@redhat.com>
6374
6375 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
6376 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
6377 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
6378 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
6379 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
6380 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
6381 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
6382
d7913e0e
UD
63832002-12-18 Ulrich Drepper <drepper@redhat.com>
6384
f051627f
UD
6385 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
6386 macro instead of using int $0x80 directly.
6387
d7913e0e
UD
6388 * sysdeps/pthread/bits/stdio-lock.h: New file.
6389 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
6390 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
6391 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
6392 * Makefile (routines): Add libc-lowlevelmutex.
6393
6394 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
6395 __i686.get_pc_thunk.dx.
6396
f077a4a9
UD
63972002-12-17 Jakub Jelinek <jakub@redhat.com>
6398
6399 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
6400 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
6401 ($(objpfx)tst-cancel-wrappers.out): New rule.
6402 * tst-cancel-wrappers.sh: New test.
6403 * tst-locale1.c: Include signal.h.
6404 (uselocale): Test static linking of __libc_current_sigrt*.
6405
64062002-12-17 Ulrich Drepper <drepper@redhat.com>
6407
6408 * Makefile (tests): Add tst-cancel6.
6409 * tst-cancel6.c: New file
6410
bd499a3b
UD
64112002-12-17 Jakub Jelinek <jakub@redhat.com>
6412
6413 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
6414 Define meaningfully for assembler as well.
6415 * pthreadP.h (struct pthread_functions): Remove
6416 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
6417 and ptr_pthread_attr_init_2_1 fields.
6418 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
6419 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
6420 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
6421 (FORWARD3): Define using FORWARD4.
6422 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
6423 versions.
6424 * pt-system.c: Remove duplicate stdlib.h include.
6425
0a1063f4
UD
64262002-12-16 Ulrich Drepper <drepper@redhat.com>
6427
87d60668
UD
6428 * sem_init.c: Define sem_init@GLIBC_2.0.
6429 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
6430 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
6431
0a1063f4
UD
6432 * flockfile.c: Moved to...
6433 * sysdeps/pthread/flockfile.c: ...here. New file.
6434 * funlockfile.c: Moved to...
6435 * sysdeps/pthread/funlockfile.c: ...here. New file.
6436 * ftrylockfile.c: Moved to...
6437 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
6438
9634cf9d
UD
64392002-12-16 Jakub Jelinek <jakub@redhat.com>
6440
6441 * libc-cancellation.c: Guard both function with
6442 #if !defined NOT_IN_libc.
6443 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
6444 automatically provided pthread wrappers.
6445 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
6446 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
6447 nor in libpthread.
6448 * pt-open.c: Removed.
6449 * pt-fcntl.c: Removed.
6450 * pt-fsync.c: Removed.
6451 * pt-lseek.c: Removed.
6452 * pt-msgrcv.c: Removed.
6453 * pt-msgsnd.c: Removed.
6454 * pt-msync.c: Removed.
6455 * pt-nanosleep.c: Removed.
6456 * pt-open64.c: Removed.
6457 * pt-pause.c: Removed.
6458 * pt-pread.c: Removed.
6459 * pt-pread64.c: Removed.
6460 * pt-pwrite.c: Removed.
6461 * pt-pwrite64.c: Removed.
6462 * pt-read.c: Removed.
6463 * pt-recv.c: Removed.
6464 * pt-recvfrom.c: Removed.
6465 * pt-recvmsg.c: Removed.
6466 * pt-send.c: Removed.
6467 * pt-sendto.c: Removed.
6468 * pt-sigtimedwait.c: Removed.
6469 * pt-sigwait.c: Removed.
6470 * pt-wait.c: Removed.
6471 * pt-waitpid.c: Removed.
6472 * pt-write.c: Removed.
6473 * pt-accept.c: Removed.
6474 * pt-close.c: Removed.
6475 * pt-connect.c: Removed.
6476 * pt-lseek64.c: Removed.
6477 * pt-sendmsg.c: Removed.
6478 * pt-tcdrain.c: Removed.
6479
6ee8d334
UD
64802002-12-15 Ulrich Drepper <drepper@redhat.com>
6481
81fa9371
UD
6482 * init.c (__pthread_initialize_minimal_internal): Renamed from
6483 __pthread_initialize_minimal. Make old name an alias. This
6484 converts a normal relocation into a relative relocation.
6485
f3015aa5
UD
6486 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
6487
4cbc1950
UD
6488 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
6489 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
6490 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
6491 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
6492 pt-sigwaitinfo, pt-waitid, and pt-writev.
6493 * pt-creat.c: Removed.
6494 * pt-poll.c: Removed.
6495 * pt-pselect.c: Removed.
6496 * pt-readv.c: Removed.
6497 * pt-select.c: Removed.
6498 * pt-sigpause.c: Removed.
6499 * pt-sigsuspend.c: Removed.
6500 * pt-sigwaitinfo.c: Removed.
6501 * pt-waitid.c: Removed.
6502 * pt-writev.c: Removed.
6503
8454830b
UD
6504 * init.c (pthread_functions): New variable.
6505 (__pthread_initialize_minimal): Pass pointer to pthread_functions
6506 (or NULL) to __libc_pthread_init.
6507 * forward.c: Rewrite to use __libc:pthread_functions array to get
6508 function addresses.
6509 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
6510 prototype.
6511 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
6512 Take new parameter. Copy content of variable pointed to by it
6513 to __libc_pthread_init.
6514
6515 * pthreadP.h (struct pthread_functions): New type.
6516 (__libc_pthread_init): Declare.
6517
6518 * pthread_attr_destroy.c: Add namespace protected alias.
6519 * pthread_attr_getdetachstate.c: Likewise.
6520 * pthread_attr_getinheritsched.c: Likewise.
6521 * pthread_attr_getschedparam.c: Likewise.
6522 * pthread_attr_getschedpolicy.c: Likewise.
6523 * pthread_attr_getscope.c: Likewise.
6524 * pthread_attr_setdetachstate.c: Likewise.
6525 * pthread_attr_setinheritsched.c: Likewise.
6526 * pthread_attr_setschedparam.c: Likewise.
6527 * pthread_attr_setschedpolicy.c: Likewise.
6528 * pthread_attr_setscope.c: Likewise.
6529 * pthread_cond_broadcast.c: Likewise.
6530 * pthread_cond_destroy.c: Likewise.
6531 * pthread_cond_init.c: Likewise.
6532 * pthread_cond_signal.c: Likewise.
6533 * pthread_cond_wait.c: Likewise.
6534 * pthread_condattr_destroy.c: Likewise.
6535 * pthread_condattr_init.c: Likewise.
6536 * pthread_equal.c: Likewise.
6537 * pthread_exit.c: Likewise.
6538 * pthread_getschedparam.c: Likewise.
6539 * pthread_self.c: Likewise.
6540 * pthread_setcancelstate.c: Likewise.
6541 * pthread_setschedparam.c: Likewise.
6542 * pthread_mutex_destroy.c: Likewise.
6543 * pthread_mutex_init.c: Likewise.
6544 * pthreadP.h: Add prototypes for the aliases.
6545
0d5f4929
UD
6546 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
6547 multiple_threads member in correct TCB to 1.
6548
6ee8d334
UD
6549 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
6550 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
6551 member of thread decriptor, otherwise return unconditionally 1.
6552
2fb6444d
UD
65532002-12-14 Ulrich Drepper <drepper@redhat.com>
6554
6555 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
6556 regular Linux version. Remove file.
6557 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
6558 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
6559 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
6560 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
6561 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
6562 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
6563 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
6564 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
6565 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
6566 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
6567 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
6568 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
6569 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
6570 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
6571 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
6572 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
6573 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
6574 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
6575 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
6576 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
6577 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
6578 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
6579 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
6580 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
6581 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
6582 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
6583 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
6584 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
6585 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
6586 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
6587
86b2dc40
UD
65882002-12-14 Jakub Jelinek <jakub@redhat.com>
6589
6590 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
6591 * sysdeps/unix/sysv/linux/open.c: Removed.
6592 * sysdeps/unix/sysv/linux/fsync.c: Removed.
6593 * sysdeps/unix/sysv/linux/lseek.c: Removed.
6594 * sysdeps/unix/sysv/linux/msync.c: Removed.
6595 * sysdeps/unix/sysv/linux/read.c: Removed.
6596 * sysdeps/unix/sysv/linux/close.c: Removed.
6597 * sysdeps/unix/sysv/linux/creat.c: Removed.
6598 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
6599 * sysdeps/unix/sysv/linux/pause.c: Removed.
6600 * sysdeps/unix/sysv/linux/select.c: Removed.
6601 * sysdeps/unix/sysv/linux/write.c: Removed.
6602
9d263d72
UD
66032002-12-14 Ulrich Drepper <drepper@redhat.com>
6604
6605 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
6606 element in TCB to see whether locking is needed.
6607
6608 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
6609 MULTIPLE_THREADS_OFFSET value is correct.
6610
6611 * sysdeps/unix/sysv/linux/close.c: New file.
6612 * sysdeps/unix/sysv/linux/connect.S: New file.
6613 * sysdeps/unix/sysv/linux/creat.c: New file.
6614 * sysdeps/unix/sysv/linux/fsync.c: New file.
6615 * sysdeps/unix/sysv/linux/llseek.c: New file.
6616 * sysdeps/unix/sysv/linux/lseek.c: New file.
6617 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
6618 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
6619 * sysdeps/unix/sysv/linux/msync.c: New file.
6620 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
6621 * sysdeps/unix/sysv/linux/open.c: New file.
6622 * sysdeps/unix/sysv/linux/open64.c: New file.
6623 * sysdeps/unix/sysv/linux/pause.c: New file.
6624 * sysdeps/unix/sysv/linux/poll.c: New file.
6625 * sysdeps/unix/sysv/linux/pread.c: New file.
6626 * sysdeps/unix/sysv/linux/pread64.c: New file.
6627 * sysdeps/unix/sysv/linux/pselect.c: New file.
6628 * sysdeps/unix/sysv/linux/pwrite.c: New file.
6629 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
6630 * sysdeps/unix/sysv/linux/readv.c: New file.
6631 * sysdeps/unix/sysv/linux/recv.S: New file.
6632 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
6633 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
6634 * sysdeps/unix/sysv/linux/select.c: New file.
6635 * sysdeps/unix/sysv/linux/send.S: New file.
6636 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
6637 * sysdeps/unix/sysv/linux/sendto.S: New file.
6638 * sysdeps/unix/sysv/linux/sigpause.c: New file.
6639 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
6640 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
6641 * sysdeps/unix/sysv/linux/sigwait.c: New file.
6642 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
6643 * sysdeps/unix/sysv/linux/system.c: New file.
6644 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
6645 * sysdeps/unix/sysv/linux/wait.c: New file.
6646 * sysdeps/unix/sysv/linux/waitid.c: New file.
6647 * sysdeps/unix/sysv/linux/waitpid.c: New file.
6648 * sysdeps/unix/sysv/linux/writev.c: New file.
6649 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
6650
6651 * pt-readv.c: Fix comment.
6652
66532002-12-14 Jakub Jelinek <jakub@redhat.com>
6654
6655 * tst-cleanup1.c: Include stdlib.h.
6656
6657 * tst-cancel5.c: New test.
6658 * Makefile (tests): Add tst-cancel5.
6659 (tst-cancel5): Link against libc.so libpthread.so in that order.
6660
9ae0909b
UD
66612002-12-13 Ulrich Drepper <drepper@redhat.com>
6662
b7bdd9c4
UD
6663 * forward.c (test_loaded): Prevent recursive calls.
6664
9ae0909b
UD
6665 * Makefile (routines): Add libc-cancellation.
6666 * libc-cancellation.c: New file.
6667 * descr.h (struct pthread): Add multiple_threads field.
6668 * allocatestack.c (allocate_stack): Initialize multiple_header field of
6669 new thread descriptor to 1.
6670 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
6671 Initialize multiple_thread field after successful thread creation.
6672 * cancellation.c (__do_cancel): Move to pthreadP.h.
6673 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
6674 (__pthread_disable_asynccancel): Add internal_function attribute.
6675 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
6676 * pthread_setcancelstate.c: Likewise.
6677 * pthread_setcanceltype.c: Likewise.
6678 * pthread_exit.c: Likewise.
6679 * pthreadP.h (CANCELLATION_P): Likewise.
6680 (__do_cancel): Define as static inline.
6681 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
6682 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
6683 declarations.
6684 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
6685 fields. Define MULTIPLE_THREADS_OFFSET.
6686 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
6687 declaration.
6688 * sysdeps/unix/sysv/linux/accept.S: New file.
6689 * sysdeps/unix/sysv/linux/read.c: New file.
6690 * sysdeps/unix/sysv/linux/write.c: New file.
6691 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
6692 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
6693 initialization of __libc_locking_needed.
6694 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
6695 __libc_locking_needed, use multiple_threads field in TCB.
6696 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
6697
22f20674
UD
66982002-12-12 Ulrich Drepper <drepper@redhat.com>
6699
2ad2e1e7
UD
6700 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
6701 version.
6702 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
6703
22f20674
UD
6704 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
6705 access to __libc_locking_needed for PIC.
6706
aa80bf86
UD
67072002-12-12 Jakub Jelinek <jakub@redhat.com>
6708
6709 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
6710 declare for libc.so.
6711 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
6712 expression.
6713 (__libc_lock_lock): Put into statement expression.
6714 (__libc_lock_unlock): Remove trailing semicolon.
6715 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
6716
24021373
RM
67172002-12-12 Roland McGrath <roland@redhat.com>
6718
6719 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
6720 "m" constraint to refer to __libc_locking_needed. Declare it here.
6721
14e7aece
UD
67222002-12-12 Ulrich Drepper <drepper@redhat.com>
6723
6724 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
6725 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
6726 Initialize __libc_locking_needed.
6727 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
6728 instead of __register_pthread_fork_handler.
6729 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
6730 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
6731 fork-gen with libc_pthread_init.
6732 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
6733 of __register_pthread_fork_handler.
6734 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
6735 of __register_pthread_fork_handler.
6736 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
6737 __libc_locking_needed to determine whether lock prefix can be avoided.
6738 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
6739
85631c8e
UD
67402002-12-11 Ulrich Drepper <drepper@redhat.com>
6741
da63009e
UD
6742 * Makefile (tests): Add tst-cleanup1.
6743 * tst-cleanup1.c: New file.
6744 * cancellation.c (__cleanup_thread): Removed.
6745 (__do_cancel): Remove call to __cleanup_thread.
6746 * pthreadP.h: Remove __cleanup_thread prorotype.
6747
000160a2
UD
6748 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
6749 Remember function and argument even if cancellation handler
6750 function is not available.
6751 (__libc_cleanup_region_end): Execute registered function directly if
6752 pthread functions are not available.
6753 (__libc_cleanup_end): Likewise.
6754
85631c8e
UD
6755 * init.c (__pthread_initialize_minimal): Fix initialization in
6756 static lib by preventing gcc from being too clever.
6757
dce8f2b6
UD
67582002-12-10 Ulrich Drepper <drepper@redhat.com>
6759
34a075be
UD
6760 * init.c (__pthread_initialize_minimal): Remove unneccesary
6761 sigaddset call.
6762
dce8f2b6
UD
6763 * Makefile (tests): We can run tst-locale2 now.
6764
e5e45b53
UD
67652002-12-09 Ulrich Drepper <drepper@redhat.com>
6766
6767 * Versions: Remove duplicated sigwait entry.
6768
bdb04f92
UD
67692002-12-08 Ulrich Drepper <drepper@redhat.com>
6770
1e506629
UD
6771 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
6772 inside libpthread.
6773
a3957dd5
UD
6774 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
6775
bdb04f92
UD
6776 * pthreadP.h: Declare __pthread_enable_asynccancel and
6777 __pthread_disable_asynccancel.
6778 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
6779 (CANCEL_RESET): Use __pthread_disable_asynccancel.
6780 * cancellation.c (__pthread_enable_asynccancel): New function.
6781 (__pthread_disable_asynccancel): New function.
6782 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
6783 * pt-close.c: Likewise.
6784 * pt-connect.c: Likewise.
6785 * pt-creat.c: Likewise.
6786 * pt-fcntl.c: Likewise.
6787 * pt-fsync.c: Likewise.
6788 * pt-lseek.c: Likewise.
6789 * pt-lseek64.c: Likewise.
6790 * pt-msgrcv.c: Likewise.
6791 * pt-msgsnd.c: Likewise.
6792 * pt-msync.c: Likewise.
6793 * pt-nanosleep.c: Likewise.
6794 * pt-open.c: Likewise.
6795 * pt-open64.c: Likewise.
6796 * pt-pause.c: Likewise.
6797 * pt-poll.c: Likewise.
6798 * pt-pread.c: Likewise.
6799 * pt-pread64.c: Likewise.
6800 * pt-pselect.c: Likewise.
6801 * pt-pwrite.c: Likewise.
6802 * pt-pwrite64.c: Likewise.
6803 * pt-read.c: Likewise.
6804 * pt-readv.c: Likewise.
6805 * pt-recv.c: Likewise.
6806 * pt-recvfrom.c: Likewise.
6807 * pt-recvmsg.c: Likewise.
6808 * pt-select.c: Likewise.
6809 * pt-send.c: Likewise.
6810 * pt-sendmsg.c: Likewise.
6811 * pt-sendto.c: Likewise.
6812 * pt-sigpause.c: Likewise.
6813 * pt-sigsuspend.c: Likewise.
6814 * pt-sigtimedwait.c: Likewise.
6815 * pt-sigwait.c: Likewise.
6816 * pt-sigwaitinfo.c: Likewise.
6817 * pt-system.c: Likewise.
6818 * pt-tcdrain.c: Likewise.
6819 * pt-wait.c: Likewise.
6820 * pt-waitid.c: Likewise.
6821 * pt-waitpid.c: Likewise.
6822 * pt-write.c: Likewise.
6823 * pt-writev.c: Likewise.
a3957dd5
UD
6824 * pthread_join.c: Likewise.
6825 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
6826
6827 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
6828 (__xpg_sigpause): New function.
6829 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
6830
6ccb3834
UD
68312002-12-07 Ulrich Drepper <drepper@redhat.com>
6832
09efc3ba
UD
6833 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
6834
6835 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
6836 _GI_pthread_cleanup_pop to pthreadP.h.
6837
6838 * ftrylockfile.c: Use _IO_lock_trylock instead of
6839 pthread_mutex_trylock.
6840
6841 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
6842 (CANCEL_RESET): Likewise.
6843 (__pthread_setcanceltype_): Declare.
6844 (__pthread_mutex_lock_internal): Declare.
6845 (__pthread_mutex_unlock_internal): Declare.
6846 (__pthread_once_internal): Declare.
6847 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
6848 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
6849
6850 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
6851 and pthread_mutex_unlock.
6852 * pthread_cond_wait.c: Likewise.
6853 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
6854 * pthread_mutex_unlock.c: Likewise.
6855
6856 * pthread_setcanceltype.c: Add additional alias
6857 __pthread_setcanceltype.
6858
6859 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
6860 * sem_open.c (sem_open): Likewise.
6861 Use __libc_open, __libc_write, and __libc_close instead of
6862 open, write, and close respectively.
6863
6864 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
6865 Rewrite as statement expression since it must return a value.
6866
6867 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
6868 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
6869 __pthread_kill.
6870
6871 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
6872 alias __pthread_once_internal.
6873
6ccb3834
UD
6874 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
6875
d3c9f895
UD
68762002-12-06 Ulrich Drepper <drepper@redhat.com>
6877
4614167a
UD
6878 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
6879 * tst-stdio1.c: New file.
6880 * tst-stdio2.c: New file.
6881
a4548cea
UD
6882 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
6883
d3c9f895
UD
6884 * Makefile (tests): Comment out tst-locale2 for now.
6885 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
6886
6887 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
6888 -D_IO_MTSAFE_IO.
6889 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
6890 Use _IO_lock_init instead of explicit assignment.
6891
6892 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
6893 Define __libc_lock_* and __libc_lock_recursive macros with
6894 lowlevellock macros, not pthread mutexes.
6895
6896 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
6897 of pthread_mutex_lock.
6898 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
6899 instead of pthread_mutex_unlock.
6900
fde89ad0
RM
69012002-12-06 Roland McGrath <roland@redhat.com>
6902
6903 * allocatestack.c (__stack_user): Use uninitialized defn.
6904 * init.c (__pthread_initialize_minimal): Initialize it here.
6905
11767d47
RM
69062002-12-05 Roland McGrath <roland@redhat.com>
6907
fde89ad0
RM
6908 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
6909 string.
6910 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
6911
11767d47
RM
6912 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
6913 missing & here too.
6914
440d8bc2
UD
69152002-12-05 Ulrich Drepper <drepper@redhat.com>
6916
6917 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
6918 lowlevellock.
6919 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
6920 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
6921 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
6922 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
6923 for __libc_lock_* macros.
6924 * Makefile (routines): Add libc-lowlevellock.
6925
69262002-10-09 Roland McGrath <roland@redhat.com>
6927
6928 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
6929 Under [__PIC__], call the function via the pointer fetched for
6930 comparison rather than a call by name that uses the PLT.
6931 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
6932 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
6933 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
6934 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
6935 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
6936
d5ed0118
RM
69372002-12-04 Roland McGrath <roland@redhat.com>
6938
6939 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
6940
6941 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
6942 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
6943
6944 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
6945
eaa4099f
UD
69462002-12-04 Ulrich Drepper <drepper@redhat.com>
6947
6948 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
6949 a completely opaque, non-integer type.
6950 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6951
33b5d0cc
UD
69522002-12-05 Jakub Jelinek <jakub@redhat.com>
6953
6954 * sysdeps/i386/tls.h: Include stdlib.h.
6955 * sysdeps/x86_64/tls.h: Likewise.
6956
7a5cdb30
UD
69572002-12-04 Ulrich Drepper <drepper@redhat.com>
6958
c4a6d859
UD
6959 * Makefile (tests): Add tst-locale2.
6960 (tests-static): Likewise.
6961 * tst-locale2.c: New file.
6962
7a5cdb30
UD
6963 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
6964 volatile and add memory clobbers to lock operations.
6965
d82d5d12
UD
69662002-12-03 Ulrich Drepper <drepper@redhat.com>
6967
69cae3cf
UD
6968 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
6969 * sysdeps/i386/i486/bits/atomic.h: New file.
6970 * sysdeps/i386/i586/bits/atomic.h: New file.
6971 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
6972 include i486 version.
6973 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
6974 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 6975 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 6976
e4044c01
UD
6977 * allocatestack.c (get_cached_stack): Don't crash if we first
6978 found a stack with a larger size then needed.
6979 Reported by Hui Huang <hui.huang@sun.com>.
6980
d82d5d12
UD
6981 * Makefile (tests): Add tst-sysconf.
6982 * tst-sysconf.c: New file.
6983
6984 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
6985 PTHREAD_THREADS_MAX.
6986
fa9a4ff0
RM
69872002-12-02 Roland McGrath <roland@redhat.com>
6988
6989 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
6990 Declare using hidden_proto instead of attribute_hidden, so there are
6991 non-.hidden static symbols for gdb to find.
6992 (__pthread_keys): Likewise.
6993 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
6994 * allocatestack.c (__stack_user): Likewise.
6995 * pthread_create.c (__pthread_keys): Likewise.
6996 (__nptl_threads_events, __nptl_last_event): Make these static instead
6997 of hidden.
6998 * pthread_key_create.c (__pthread_pthread_keys_max,
6999 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
7000
91949a33
UD
70012002-12-02 Ulrich Drepper <drepper@redhat.com>
7002
c22b52fa
UD
7003 * Makefile (tests): Add tst-locale1. If buid-static is yes link
7004 statically.
7005 * tst-locale1.c: New file.
7006
beb6aa41
UD
7007 * pthread_cond_timedwait.c: Include <stdlib.h>.
7008
91949a33
UD
7009 * Makefile (tests): Add tst-fork2 and tst-fork3.
7010 * tst-fork2.c: New file.
7011 * tst-fork3.c: New file.
7012
654dff90
UD
70132002-11-28 Ulrich Drepper <drepper@redhat.com>
7014
cb0e76b4
UD
7015 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
7016
7017 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
7018 require it to 200112L.
7019
7020 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
7021 instruction only if HAVE_CMOV is defined.
7022 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
7023
975aa229
UD
7024 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
7025
654dff90
UD
7026 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
7027
7028 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
7029
7030 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
7031
a3931336
UD
70322002-11-27 Ulrich Drepper <drepper@redhat.com>
7033
c10c099c
UD
7034 * sysdeps/x86_64/bits/atomic.h: New file.
7035
7036 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
7037 16-bit operations.
7038
dca99d27
UD
7039 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
7040 possible since gettid cannot fail.
7041
f78deea6
UD
7042 * sysdeps/x86_64/pthreaddef.h: New file.
7043
7044 * sysdeps/i386/pthreaddef.h (gettid): Removed.
7045
7046 * sysdeps/x86_64/pthread_spin_init.c: New file.
7047 * sysdeps/x86_64/pthread_spin_lock.c: New file.
7048 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
7049 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
7050
7051 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
7052 Add missing lock prefix. Minute optimization.
7053
7054 * tst-spin2.c (main): Also check successful trylock call.
7055
7056 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
7057 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
7058
7059 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
7060 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
7061
7062 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
7063 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
7064 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
7065
7066 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
7067 value in case of an error.
7068
a3931336
UD
7069 * sysdeps/x86_64/tls.h: New file.
7070
76a50749
UD
70712002-11-26 Ulrich Drepper <drepper@redhat.com>
7072
117c452c
UD
7073 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
7074 takes the array member name and the index as parameters.
7075 (THREAD_SETMEM_NC): Likewise.
7076 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
7077 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
7078 interfaces.
7079
7080 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
7081 to decide which code to use.
7082 (THREAD_SETMEM_NC): Likewise.
7083
76a50749
UD
7084 * allocatestack.c (queue_stack): Don't remove stack from list here.
7085 Do it in the caller. Correct condition to prematurely terminate
7086 loop to free stacks.
7087 (__deallocate_stack): Remove stack from list here.
7088
70892002-11-26 Ulrich Drepper <drepper@redhat.com>
7090
7091 * Makefile (tests): Add tst-stack1.
7092 * tst-stack1.c: New file.
7093
7094 * allocatestack.c (allocate_stack): Initialize the TCB on a user
7095 provided stack.
7096
7097 * pthread_attr_getstack.c: Return bottom of the thread area.
7098
70992002-11-25 Ulrich Drepper <drepper@redhat.com>
7100
7101 * Makefile (libpthread-routines): Add pt-allocrtsig and
7102 pthread_kill_other_threads.
7103 * pt-allocrtsig.c: New file.
7104 * pthread_kill_other_threads.c: New file.
7105 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
7106 all three functions.
7107 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
7108 allocrtsig.
7109 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
7110 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
7111 and __libc_allocate_rtsig_private.
7112 * Versions (libpthread): Export pthread_kill_other_threads_np,
7113 __libc_current_sigrtmin, and __libc_current_sigrtmax.
7114
71152002-11-24 Ulrich Drepper <drepper@redhat.com>
7116
7117 * allocatestack.c (allocate_stack): stackaddr in attribute points to
7118 the end of the stack. Adjust computations.
7119 When mprotect call fails dequeue stack and free it.
7120 * pthread_attr_setstack.c: Store top of the stack in stackaddr
7121 attribute.
7122 * pthread_getattr_np.c: Likewise.
7123
7124 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
7125 surprises.
7126
71272002-11-23 Ulrich Drepper <drepper@redhat.com>
7128
7129 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
7130 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
7131
71322002-11-22 Ulrich Drepper <drepper@redhat.com>
7133
7134 * pthread_getspecific.c: Optimize access to first 2nd-level array.
7135 * pthread_setspecific.c: Likewise.
7136
71372002-11-21 Ulrich Drepper <drepper@redhat.com>
7138
7139 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
7140 definitions. Get them from the official place.
7141 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
7142
7143 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
7144 Use new CLONE_ flags in clone() calls.
7145
7146 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
7147 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
7148
7149 * Versions: Add pthread_* functions for libc.
7150 * forward.c: New file.
7151
7152 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
7153 errno-loc.
7154 * herrno.c: New file.
7155 * res.c: New file.
7156
7157 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
7158 sem_trywait, and sem_timedwait. Add herrno and res.
7159 * sem_init.c: Don't initialize lock and waiters members.
7160 * sem_open.c: Likewise.
7161 * sem_post.c: Removed.
7162 * sem_wait.c: Removed.
7163 * sem_trywait.c: Removed.
7164 * sem_timedwait.c: Removed.
7165 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
7166 Includes full implementations of sem_post, sem_wait, sem_trywait,
7167 and sem_timedwait.
7168 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
7169 for new implementation.
7170 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
7171 and waiters fields.
7172
7173 * tst-sem3.c: Improve error message.
7174 * tst-signal3.c: Likewise.
7175
7176 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
7177 to tell the kernel about the termination futex and to initialize tid
7178 member. Don't initialize main_thread.
7179 * descr.h (struct pthread): Remove main_thread member.
7180 * cancelllation.c (__do_cancel): Remove code handling main thread.
7181 The main thread is not special anymore.
7182
7183 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
7184 size of the stacks to stack_cache_actsize.
7185
7186 * pt-readv.c: Add missing "defined".
7187 * pt-sigwait.c: Likewise.
7188 * pt-writev.c: Likewise.
7189
71902002-11-09 Ulrich Drepper <drepper@redhat.com>
7191
7192 * Versions: Export __connect from libpthread.
7193 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7194
7195 * Makefile (libpthread-routines): Add pt-raise.
7196 * sysdeps/unix/sysv/linux/raise.c: New file.
7197 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
7198 * sysdeps/generic/pt-raise.c: New file.
7199
7200 * pthread_cond_init.c: Initialize all data elements of the condvar
7201 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
7202
7203 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
7204 * pthread_create.c: Likewise.
7205
7206 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
7207 * tst-key1.c: New file.
7208 * tst-key2.c: New file.
7209 * tst-key3.c: New file.
7210
7211 * Versions: Export pthread_detach for version GLIBC_2.0.
7212 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
7213
72142002-11-08 Ulrich Drepper <drepper@redhat.com>
7215
7216 * pthread_key_create.c: Terminate search after an unused key was found.
7217 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7218
7219 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
7220 Patch by Luca Barbieri <ldb@ldb.ods.org>.
7221
72222002-10-10 Ulrich Drepper <drepper@redhat.com>
7223
7224 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
7225 dynamic lookup for errno in PIC.
7226
7227 * allocatestack.c (get_cached_stack): Rearrange code slightly to
7228 release the stack lock as soon as possible.
7229 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
7230 the static TLS block.
7231 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
7232
7233 * cancellation.c: Renamed from cancelation.c.
7234 * Makefile: Adjust accordingly.
7235 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
7236 * cleanup_defer.c: Use CANCELLATION_P.
7237 * pthread_testcancel.c: Likewise.
7238 * descr.h: Fix spelling in comments.
7239 * init.c: Likewise.
7240 * pthread_getattr_np.c: Likewise.
7241 * pthread_getschedparam.c: Likewise.
7242 * pthread_setschedparam.c: Likewise.
7243 * Versions: Likewise.
7244
7245 * pt-pselect.c: New file.
7246 * Makefile (libpthread-routines): Add pt-pselect.
7247 * Versions: Add pselect.
7248
7249 * tst-cancel4.c: New file.
7250 * Makefile (tests): Add tst-cancel4.
7251
72522002-10-09 Ulrich Drepper <drepper@redhat.com>
7253
7254 * pthread_mutex_lock.c: Always record lock ownership.
7255 * pthread_mutex_timedlock.c: Likewise.
7256 * pthread_mutex_trylock.c: Likewise.
7257
7258 * pt-readv.c: New file.
7259 * pt-writev.c: New file.
7260 * pt-creat.c: New file.
7261 * pt-msgrcv.c: New file.
7262 * pt-msgsnd.c: New file.
7263 * pt-poll.c: New file.
7264 * pt-select.c: New file.
7265 * pt-sigpause.c: New file.
7266 * pt-sigsuspend.c: New file.
7267 * pt-sigwait.c: New file.
7268 * pt-sigwaitinfo.c: New file.
7269 * pt-waitid.c: New file.
7270 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
7271 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
7272 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
7273 * Versions: Add all the new functions.
7274
7275 * tst-exit1.c: New file.
7276 * Makefile (tests): Add tst-exit1.
7277
7278 * sem_timedwait.c: Minor optimization for more optimal fastpath.
7279
72802002-10-08 Ulrich Drepper <drepper@redhat.com>
7281
7282 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
7283
7284 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
7285 call. pthread_join is an official cancellation point.
7286 * pthread_timedjoin.c: Likewise.
7287
7288 * pthread_cond_wait.c: Revert order in which internal lock are dropped
7289 and the condvar's mutex are retrieved.
7290 * pthread_cond_timedwait.c: Likewise.
7291 Reported by dice@saros.East.Sun.COM.
7292
72932002-10-07 Ulrich Drepper <drepper@redhat.com>
7294
7295 * pthreadP.h: Cut out all type definitions and move them...
7296 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
7297 * pthreadP.h: Include <internaltypes.h>.
7298
7299 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
7300 performance tweaks.
7301
7302 * sem_trywait.c: Shuffle #includes around to get right order.
7303 * sem_timedwait.c: Likewise.
7304 * sem_post.c: Likewise.
7305 * sem_wait.c: Likewise.
7306
7307 * nptl 0.3 released.
7308
7309 * Makefile (tests): Add tst-signal3.
7310 * tst-signal3.c: New file.
7311
73122002-10-05 Ulrich Drepper <drepper@redhat.com>
7313
7314 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
7315 the asms modify the sem object.
7316 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
7317
7318 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
7319 the actual members.
7320 * pthreadP.h (struct sem): New type. Actual semaphore type.
7321 * semaphoreP.h: Include pthreadP.h.
7322 * sem_getvalue.c: Adjust to sem_t change.
7323 * sem_init.c: Likewise.
7324 * sem_open.c: Likewise.
7325 * sem_post.c: Likewise.
7326 * sem_timedwait.c: Likewise.
7327 * sem_trywait.c: Likewise.
7328 * sem_wait.c: Likewise.
7329
73302002-10-04 Ulrich Drepper <drepper@redhat.com>
7331
7332 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
7333 * tst-basic2.c: New file.
7334 * tst-exec1.c: New file.
7335 * tst-exec2.c: New file.
7336 * tst-exec3.c: New file.
7337
7338 * tst-fork1.c: Remove extra */.
7339
7340 * nptl 0.2 released. The API for IA-32 is complete.