]> git.ipfire.org Git - thirdparty/glibc.git/blame - nptl/ChangeLog
Update powerpc-fpu ULPs.
[thirdparty/glibc.git] / nptl / ChangeLog
CommitLineData
8b8a692c
UW
12013-12-04 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
2
3 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4 (CANCEL_FRAMESIZE, CANCEL_PARM_SAVE): New macros to save parameters
5 into our own stack frame instead of the caller's.
6 (PSEUDO): Use them. Use symbolic stack frame offsets.
7 (DOCARGS_1, UNDOCARGS_1): Use CANCEL_PARM_SAVE.
8 (DOCARGS_2, UNDOCARGS_2): Likewise.
9 (DOCARGS_3, UNDOCARGS_3): Likewise.
10 (DOCARGS_4, UNDOCARGS_4): Likewise.
11 (DOCARGS_5, UNDOCARGS_5): Likewise.
12 (DOCARGS_6, UNDOCARGS_6): Likewise.
13
d1d9eaf4
OB
142013-11-26 Ondřej Bílka <neleai@seznam.cz>
15 * sysdeps/i386/tls.h: Use __glibc_reserved instead __unused.
16 * sysdeps/x86_64/tls.h: Likewise.
17
67ea2c9a
PP
182013-11-25 Paul Pluzhnikov <ppluzhnikov@google.com>
19
20 [BZ #11214]
21 * Makefile (tst-getpid2-ENV): New variable.
22
4b98b2dc 232013-11-20 Paul Pluzhnikov <ppluzhnikov@google.com>
c8b82b81
PP
24
25 * Makefile (tst-cleanup2, tst-cleanupx2): Add -fno-builtin
26
cb8a6dbd
MF
272013-10-30 Mike Frysinger <vapier@gentoo.org>
28
29 * sysdeps/pthread/configure.in: Moved to ...
30 * sysdeps/pthread/configure.ac: ... here.
31 * sysdeps/x86_64/configure.in: Moved to ...
32 * sysdeps/x86_64/configure.ac: ... here.
33 * sysdeps/pthread/configure: Regenerated.
34 * sysdeps/x86_64/configure: Likewise.
35
53247a0b
MR
362013-10-04 Maciej W. Rozycki <macro@codesourcery.com>
37
38 * tst-mutex8.c (check_type) [ENABLE_PI]: Handle ENOTSUP failure
39 from pthread_mutex_init.
40
ad4e70da
SP
412013-10-01 Siddhesh Poyarekar <siddhesh@redhat.com>
42
43 [BZ #15988]
44 * pthread_cond_broadcast.c (__pthread_cond_broadcast)
45 [lll_futex_cmp_requeue_pi && __ASSUME_REQUEUE_PI]: Use
46 USE_REQUEUE_PI.
47 * pthread_cond_signal.c (__pthread_cond_signal)
48 [lll_futex_cmd_requeue_pi && __ASSUME_REQUEUE_PI]: Likewise.
49
c04d498c
SP
502013-09-27 Siddhesh Poyarekar <siddhesh@redhat.com>
51
52 * sysdeps/pthread/bits/libc-lock.h [_LIBC && (!NOT_IN_libc ||
53 IS_IN_libpthread)] (__libc_lock_fini_recursive): Use the mutex
54 member of the argument.
55 (__libc_lock_trylock_recursive): Likewise.
56 (__libc_lock_unlock_recursive): Likewise.
57
3f2e46a4
JM
582013-09-04 Joseph Myers <joseph@codesourcery.com>
59
60 * sysdeps/unix/sysv/linux/x86_64/cancellation.S
61 [SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
62 [SHARED && !NO_HIDDEN].
63
6c8bbad9
SP
642013-09-03 Siddhesh Poyarekar <siddhesh@redhat.com>
65
66 [BZ #15921]
67 * tst-cleanup2.c (do_test): New volatile variable RET to
68 return success.
69
382466e0
OB
702013-08-30 Ondřej Bílka <neleai@seznam.cz>
71
72 * sysdeps/pthread/pthread.h: Fix typos.
73 * sysdeps/unix/sysv/linux/internaltypes.h: Likewise.
74 * tst-cancel4.c: Likewise.
75
c0c3f78a
OB
762013-08-21 Ondřej Bílka <neleai@seznam.cz>
77
78 * pthread_getschedparam.c: Fix typos.
79 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
80
135529b4
DM
812013-07-23 David S. Miller <davem@davemloft.net>
82
83 * tst-cancel4.c (WRITE_BUFFER_SIZE): Adjust comment.
84
e7074e4c
DM
852013-07-22 David S. Miller <davem@davemloft.net>
86
87 * tst-cancel4.c (WRITE_BUFFER_SIZE): Increase to 16384.
88
d3d3ce98
DV
892013-07-19 Dominik Vogt <vogt@de.ibm.com>
90
075b9322
DV
91 * pthread_mutex_lock.c: Fix whitespace.
92 * pthread_mutex_trylock.c: Likewise.
93 * sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: Likewise.
94 * sysdeps/unix/sysv/linux/x86/elision-conf.c: Likewise.
95 * sysdeps/unix/sysv/linux/x86/elision-conf.h: Likewise.
96 * sysdeps/unix/sysv/linux/x86/elision-lock.c: Likewise.
97 * sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.
98 * sysdeps/unix/sysv/linux/x86/elision-trylock.c: Likewise.
99 * sysdeps/unix/sysv/linux/x86/force-elision.h: Likewise.
100 * sysdeps/unix/sysv/linux/x86/hle.h: Likewise.
101 * sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c: Likewise.
102 * sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c: Likewise.
103 * sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c: Likewise.
104 * sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c: Likewise.
105
d3d3ce98
DV
106 * sysdeps/unix/sysv/linux/x86/elision-conf.c:
107 Remove __rwlock_rtm_enabled and __rwlock_rtm_read_retries.
108 (elision_init): Don't set __rwlock_rtm_enabled.
109 * sysdeps/unix/sysv/linux/x86/elision-conf.h:
110 Remove __rwlock_rtm_enabled.
111
e2a32bee
L
1122013-07-03 H.J. Lu <hongjiu.lu@intel.com>
113
114 * sysdeps/unix/sysv/linux/x86/init-arch.c: New file.
115 * sysdeps/unix/sysv/linux/x86/init-arch.h: Likewise.
116
1717da59
AK
1172013-07-02 Andi Kleen <ak@linux.intel.com>
118
119 * sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
120 Check ENABLE_LOCK_ELISION.
121
49186d21
AK
1222013-07-02 Andi Kleen <ak@linux.intel.com>
123
124 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype):
125 Disable elision for PTHREAD_MUTEX_DEFAULT.
126
e8c659d7
AK
1272013-07-02 Andi Kleen <ak@linux.intel.com>
128 Hongjiu Lu <hongjiu.lu@intel.com>
129
130 * pthread_mutex_lock.c
131 (__pthread_mutex_lock): Add lock elision support.
132 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
133 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
134 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
135 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
136 * sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: Likewise.
137 * sysdeps/unix/sysv/linux/x86/Makefile: New file.
138 * sysdeps/unix/sysv/linux/x86/force-elision.h: New file
139 * sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c: Likewise.
140 * sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c: Likewise.
141 * sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c: Likewise.
142 * sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c: Likewise.
143 * sysdeps/unix/sysv/linux/x86/pthread_mutex_unlock.c: Likewise.
144
68cc2935
AK
1452013-07-02 Andi Kleen <ak@linux.intel.com>
146
147 * tst-mutex5.c: Include config.h.
148 (do_test): Add checks for ENABLE_LOCK_ELISION.
149 * tst-mutex8.c: Include config.h
150 (tf): Add checks for ENABLE_LOCK_ELISION.
151 (check_type): Likewise.
152
b023e4ca
AK
1532013-07-02 Andi Kleen <ak@linux.intel.com>
154
155 * pthreadP.h: Add elision types.
156 (PTHREAD_MUTEX_TYPE_ELISION): Add.
157 * sysdeps/pthread/pthread.h: Add elision initializers.
158 (PTHREAD_MUTEX_ELISION_NP, PTHREAD_MUTEX_NO_ELISION_NP,
159 PTHREAD_MUTEX_PSHARED_NP): Add new flags.
160 (__PTHREAD_SPINS): Add.
161
1cdbe579
AK
1622013-07-02 Andi Kleen <ak@linux.intel.com>
163 Hongjiu Lu <hongjiu.lu@intel.com>
164
165 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_timedwait_tid,
166 lll_timedlock_elision, __lll_lock_elision, __lll_unlock_elision,
167 __lll_trylock_elision, lll_lock_elision, lll_unlock_elision,
168 lll_trylock_elision): Add.
169 * sysdeps/unix/sysv/linux/x86/Makefile: Imply x86.
170 * sysdeps/unix/sysv/linux/x86/elision-conf.c: New file.
171 * sysdeps/unix/sysv/linux/x86/elision-conf.h: New file.
172 * sysdeps/unix/sysv/linux/x86/elision-lock.c: New file.
173 * sysdeps/unix/sysv/linux/x86/elision-timed.c: New file.
174 * sysdeps/unix/sysv/linux/x86/elision-trylock.c: New file.
175 * sysdeps/unix/sysv/linux/x86/elision-unlock.c: New file.
176 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_timedwait_tid,
177 lll_timedlock_elision, __lll_lock_elision, __lll_unlock_elision,
178 __lll_trylock_elision, lll_lock_elision, lll_unlock_elision,
179 lll_trylock_elision): Add.
180 * nptl/sysdeps/unix/sysv/linux/x86/hle.h: New file.
181 * elision-conf.h: New file.
182
e1f0b2cf
VN
1832013-06-24 Vladimir Nikulichev <v.nikulichev@gmail.com>
184
185 [BZ #12310]
186 * pthread_exit.c: Add reference to pthread_create.
187
e781d7c5
JM
1882013-06-22 Joseph Myers <joseph@codesourcery.com>
189
190 * pthread_getattr_default_np.c: Include <string.h>.
191
61dd6208
SP
1922013-06-15 Siddhesh Poyarekar <siddhesh@redhat.com>
193
194 * Versions (libpthread): Add GLIBC_2.18.
195 (GLIBC_2.18): Add pthread_setattr_default_np and
196 pthread_getattr_default_np.
197 * allocatestack.c (allocate_stack): Synchronize read from
198 __default_pthread_attr.
199 (__reclaim_stacks): Initialize __default_pthread_attr_lock.
200 * nptl-init.c (__pthread_initialize_minimal_internal):
201 Synchronize write to __default_pthread_attr.
202 * pthreadP.h (__default_pthread_attr_lock): Declare.
203 * pthread_attr_getstacksize (__pthread_attr_getstacksize):
204 Synchronize read from __default_pthread_attr.
205 * pthread_create.c (__pthread_create_2_1): Make a local copy of
206 __default_pthread_attr. Check value of flags in IATTR even if
207 input ATTR is NULL.
208 * pthread_getattr_default_np.c: New file.
209 * pthread_setattr_default_np.c: New file.
210 * sysdeps/pthread/pthread.h [__USE_GNU]
211 (pthread_getattr_default_np, pthread_setattr_default_np):
212 Declare.
213 * tst-default-attr.c: New test case.
214 * Makefile (libpthread-routines): Add
215 pthread_setattr_default_np and pthread_getattr_default_np.
216 (tests): Add tst-default-attr.
217 * vars.c (__default_pthread_attr_lock): Declare and initialize.
218
5865a56b
SP
2192013-06-13 Siddhesh Poyarekar <siddhesh@redhat.com>
220 Carlos O'Donell <carlos@redhat.com>
221
222 [BZ #15618]
223 * tst-pthread-attr-affinity: New test case.
224 * Makefile (tests): Add it.
225 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
226 (__pthread_attr_getaffinity_new): Copy minimum of source and
227 destination sizes to avoid a buffer overrun.
228
be11d713
CD
2292013-06-10 Carlos O'Donell <carlos@redhat.com>
230
231 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
232 (lll_futex_wake): Return syscall error.
233 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
234 (lll_futex_wake): Return syscall error.
235
e3f36662
OB
2362013-08-06 Ondřej Bílka <neleai@seznam.cz>
237
238 * sysdeps/pthread/allocalim.h: (__libc_use_alloca): Fix warning.
239
350635a5
OB
2402013-06-06 Ondřej Bílka <neleai@seznam.cz>
241
242 * tst-cond22.c: Fix leading whitespaces.
243 * tst-umask1.c: Likewise.
244
c7afae94
JM
2452013-06-06 Joseph Myers <joseph@codesourcery.com>
246
247 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Remove
248 trailing whitespace.
249 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Likewise.
250 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
251 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
252 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
253 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
254 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
255 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
256 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Likewise.
257 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
258 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
259 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
260 * tst-mutexpp10.c: Likewise.
261 * tst-stackguard1.c: Likewise.
262
fab7ce3f
JM
2632013-05-31 Joseph Myers <joseph@codesourcery.com>
264
265 * Makefile ($(objpfx)libpthread.so): Remove dependencies on libc
266 and ld.so.
267
e054f494
RA
2682013-05-16 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
269
270 * pthread_create.c: Add missing #include <stdint.h> due to uint64_t or
271 uint32_t usage.
272 * sysdeps/pthread/createthread.c: Likewise.
273
ecbf4342
AJ
2742013-05-14 Andreas Jaeger <aj@suse.de>
275
276 [BZ #10686]
277 * sysdeps/x86_64/tls.h (struct tcbhead_t): Add __private_ss field.
278 * sysdeps/i386/tls.h (struct tcbhead_t): Likewise.
279
66c13581
AK
2802013-05-09 Andi Kleen <ak@linux.intel.com>
281
282 * tst-mutex8.c (do_test): Check for ENABLE_PI.
283
da1304bc
SP
2842013-04-22 Siddhesh Poyarekar <siddhesh@redhat.com>
285
286 * pthreadP.h (check_sched_policy_attr): New inline function.
287 (check_sched_priority_attr): Likewise.
288 (check_stacksize_attr): Likewise.
289 (__kernel_cpumask_size, __determine_cpumask_size): Declare
290 extern.
291 (check_cpuset_attr): New inline function.
292 * pthread_attr_setschedparam (__pthread_attr_setschedparam):
293 Use check_sched_priority_attr.
294 * pthread_attr_setschedpolicy.c
295 (__pthread_attr_setschedpolicy): Use check_sched_policy_attr.
296 * pthread_attr_setstack.c (__pthread_attr_setstack): Use
297 check_stacksize_attr.
298 * pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
299 Likewise.
300 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
301 (__pthread_attr_setaffinity_new): Use check_cpuset_attr.
302
4f682b2a
AS
3032013-04-11 Andreas Schwab <schwab@suse.de>
304
305 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
306 (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
307 directly use absolute timeout.
308
96497bb8
CD
3092013-04-07 Carlos O'Donell <carlos@redhat.com>
310
311 * sysdeps/unix/sysv/linux/sem_post.c: Include atomic.h.
312
9ac3b504
SP
3132013-04-04 Siddhesh Poyarekar <siddhesh@redhat.com>
314
315 [BZ #15337]
316 * sysdeps/unix/sysv/linux/x86_64/cancellation.S
317 [IS_IN_libpthread]
318 [SHARED && defined DO_VERSIONING && !defined NO_HIDDEN]: Mark
319 __pthread_unwind hidden.
320
e57b0c61
RM
3212013-03-28 Roland McGrath <roland@hack.frob.com>
322
323 * pthread_create.c (start_thread) [!SHARED]:
324 Call __call_tls_dtors only if it's not NULL.
325
e903a713
SP
3262013-03-19 Siddhesh Poyarekar <siddhesh@redhat.com>
327
5cebee5d
SP
328 * allocatestack.c (allocate_stack): Use __default_pthread_attr
329 instead of __default_stacksize.
e903a713
SP
330 * nptl-init.c (__pthread_initialize_minimal_internal):
331 Likewise. Initialize guardsize.
5cebee5d 332 * pthreadP.h (__default_pthread_attr): Declare.
e903a713 333 * pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
5cebee5d 334 Use __default_pthread_attr instead of __default_stacksize.
e903a713 335 * pthread_create.c (default_attr): Remove.
5cebee5d 336 (__pthread_create_2_1): Use __default_pthread_attr instead of
e903a713
SP
337 default_attr.
338 * vars.c (__default_stacksize): Remove.
5cebee5d 339 (__default_pthread_attr): New static variable to store
e903a713
SP
340 default thread attributes.
341
69854bb5
SP
3422013-03-18 Siddhesh Poyarekar <siddhesh@redhat.com>
343
344 * pthread_barrier_init.c (default_attr): Rename to
345 default_barrierattr.
346 (pthread_barrier_init): Adjust for the rename.
347 * pthread_mutex_init.c (default_attr): Rename to
348 default_mutexattr.
349 (__pthread_mutex_init): Adjust for the rename.
350 * pthread_rwlock_init.c (default_attr): Rebane to
351 default_rwlockattr.
352 (__pthread_rwlock_init): Adjust for the rename.
353
05087fbb
CD
3542013-03-12 Carlos O'Donell <carlos@redhat.com>
355
356 * sysdeps/unix/sysv/linux/lowlevellock.c: Include <atomic.h>.
357
b43769a3
RM
3582013-03-04 Roland McGrath <roland@hack.frob.com>
359
360 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h:
361 Change multiple inclusion guard to _LINUX_I686_DL_SYSDEP_H.
362 Use #include_next.
363 (HAVE_DL_DISCOVER_OSVERSION): Remove definition, now redundant.
364 (RTLD_PRIVATE_ERRNO): Likewise.
365 (NEED_DL_SYSINFO, DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION):
366 Move macros and associated declaration to ...
367 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: ... here.
368 Change multiple include guard to _LINUX_I386_DL_SYSDEP_H.
369 Use #include_next.
370
4e9b5995
CD
3712013-03-01 Carlos O'Donell <carlos@redhat.com>
372
373 * Makefile (tests): Revert last change.
374 (tst-pthread-stack-env-ENV): Likewise.
375 * nptl-init.c (set_default_stacksize): Likewise.
376 (__pthread_initialize_minimal_internal): Likewise.
377 * tst-pthread-stack-env.c: Likewise.
378
e23872c8
SP
3792013-03-01 Siddhesh Poyarekar <siddhesh@redhat.com>
380
ace4acc8
SP
381 * tst-oddstacklimit.c: Include stdlib.h.
382
e23872c8
SP
383 * Makefile (tests): Add tst-pthread-stack-env.
384 (tst-pthread-stack-env-ENV): Set environment for test.
385 * nptl-init.c (set_default_stacksize): New function.
386 (__pthread_initialize_minimal_internal): Accept ARGC, ARGV and
387 ENVP. Initialize __ENVIRON and set __DEFAULT_STACKSIZE.
388 * tst-pthread-stack-env.c: New test case.
389
2b7ae1b2
DM
3902013-02-21 David S. Miller <davem@davemloft.net>
391
392 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
393 (FUTEX_WAIT_REQUEUE_PI): Define.
394 (FUTEX_CMP_REQUEUE_PI): Likewise.
395 (lll_futex_wait_requeue_pi): Likewise.
396 (lll_futex_timed_wait_requeue_pi): Likewise.
397 (lll_futex_cmp_requeue_pi): Likewise.
398
9bf95cbc
CD
3992013-02-21 Carlos O'Donell <carlos@redhat.com>
400
401 * sysdeps/unix/sysv/linux/fork.c: Fix comment typo.
402
8313cb99
SP
4032013-02-18 Siddhesh Poyarekar <siddhesh@redhat.com>
404
f4804ca2
SP
405 * sysdeps/pthread/tst-timer.c: Include stdlib.h for declaration
406 of exit.
407 * tst-barrier4.c: Likewise.
408 * tst-robust7.c: Likewise.
409
8313cb99
SP
410 [BZ #14920]
411 * pthreadP.h (USE_REQUEUE_PI): New macro to check if mutex is
412 PI-aware.
413 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Use
414 PI-aware futex operations if available and mutex is PI-aware.
415 * pthread_cond_signal.c (__pthread_cond_signal): Likewise.
416 * nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait):
417 Likewise.
418 * pthread_cond_wait.c (__condvar_cleanup): Adjust lock if
419 cancellation occurred just after futex returned successfully
420 from a PI operation with the mutex held.
421 (__pthread_cond_wait): Use PI-aware futex operations if
422 available and mutex is PI-aware.
423 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
424 (FUTEX_WAIT_REQUEUE_PI): Define.
425 (FUTEX_CMP_REQUEUE_PI): Likewise.
426 (lll_futex_wait_requeue_pi): Likewise.
427 (lll_futex_timed_wait_requeue_pi): Likewise.
428 (lll_futex_cmp_requeue_pi): Likewise.
429 * nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
430 (FUTEX_WAIT_REQUEUE_PI): Define.
431 (FUTEX_CMP_REQUEUE_PI): Likewise.
432 (lll_futex_wait_requeue_pi): Likewise.
433 (lll_futex_timed_wait_requeue_pi): Likewise.
434 (lll_futex_cmp_requeue_pi): Likewise.
435 * sysdeps/unix/sysv/linux/kernel-features.h: Define
436 __ASSUME_REQUEUE_PI for Linux version higher than 2.6.31.
437
903ae060
AS
4382013-02-04 Andreas Schwab <schwab@suse.de>
439
440 [BZ #14142]
441 * tst-cancel14.c: Include <sys/time.h>.
442 * tst-cancel15.c: Likewise.
443 * tst-mutex9.c: Include <stdint.h>, <stdlib.h> and <sys/time.h>.
444 * tst-stackguard1.c: Include <tls.h>
445
cfa8054f
AS
4462013-01-16 Andreas Schwab <schwab@suse.de>
447
448 [BZ #14327]
449 * sem_open.c (sem_open): Use __mktemp instead of mktemp.
450
c0609c5c
CD
4512013-01-11 Carlos O'Donell <codonell@redhat.com>
452
453 * allocatestack.c (allocate_stack): Add comment. Remove assert
454 on attr.
455
740b3dbe
L
4562013-01-11 H.J. Lu <hongjiu.lu@intel.com>
457
458 * Makefile (tst-cancel7-ARGS: Replace $(host-built-program-cmd)
459 with $(host-test-program-cmd).
460 (tst-exec4-ARGS): Likewise.
461 (tst-stackguard1-ARGS): Likewise.
462 ($(objpfx)tst-tls6.out): Don't pass $(elf-objpfx) to tst-tls6.sh.
463 Replace $(rtld-installed-name) with $(test-via-rtld-prefix).
464 * tst-tls6.sh (elf_objpfx): Removed.
465 (rtld_installed_name): Renamed to ...
466 (test_via_rtld_prefix): This.
467 (tst_tls5): Prepend ${test_via_rtld_prefix}.
468
568035b7
JM
4692013-01-02 Joseph Myers <joseph@codesourcery.com>
470
471 * All files with FSF copyright notices: Update copyright dates
472 using scripts/update-copyrights.
473
f4cf5f2d
JM
4742013-01-01 Joseph Myers <joseph@codesourcery.com>
475
476 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Reformat
477 copyright notice.
478
c93c5dec
AK
4792012-12-28 Andi Kleen <ak@linux.intel.com>
480
740b3dbe 481 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Convert
c93c5dec 482 to prototype.
740b3dbe 483 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock):
c93c5dec
AK
484 Likewise.
485
9c7595bd
DM
4862012-12-27 David S. Miller <davem@davemloft.net>
487
488 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
489 (lll_futex_timed_wait_bitset): New macro.
490
8ebac778
SP
4912012-12-27 Siddhesh Poyarekar <siddhesh@redhat.com>
492
493 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (SYS_futex):
494 Remove definition.
495 (lll_futex_timed_wait): Replace assembly code with
496 INTERNAL_SYSCALL.
497 (lll_futex_timed_wait_bitset): Likewise.
498 (lll_futex_wake): Likewise.
499 (lll_futex_requeue): Likewise.
500 (lll_futex_wake_unlock): Likewise.
501
56e7d3ad
SP
5022012-12-08 Siddhesh Poyarekar <siddhesh@redhat.com>
503
504 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind):
505 Declare LOCAL_VAR as char.
506
d39b9545
JM
5072012-12-04 Joseph Myers <joseph@codesourcery.com>
508
509 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__old_sem_post):
510 Cast result of atomic_increment_val to (void) instead of storing
511 in otherwise-unused variable.
512
e30907c3
AM
5132012-12-03 Allan McRae <allan@archlinux.org>
514
515 * Makefile (LDFLAGS-tst-cond24, LDFLAGS-tst-cond25): Remove.
516
c515fb51
L
5172012-11-26 H.J. Lu <hongjiu.lu@intel.com>
518
519 * unwind.c (__pthread_unwind): Pass address of unwind_cleanup
520 to THREAD_SETMEM.
521 * sysdeps/i386/tls.h: Include <libc-internal.h>.
522 (THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
523 (THREAD_SETMEM_NC): Likewise.
524 * sysdeps/x86_64/tls.h: Include <libc-internal.h>.
525 (THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
526 (THREAD_SETMEM_NC): Likewise.
527
fac9916c
JM
5282012-11-21 Joseph Myers <joseph@codesourcery.com>
529
09e958ed
JM
530 * sysdeps/unix/sysv/linux/sem_post.c (__old_sem_post): Cast result
531 of atomic_increment_val to (void) instead of storing in
532 otherwise-unused variable.
533
fac9916c
JM
534 * pthread_cond_timedwait.c (__pthread_cond_timedwait)
535 [__NR_clock_gettime]: Cast result of INTERNAL_VSYSCALL to void
536 instead of storing in otherwise-unused variable.
537
c485e4d2
MS
5382012-11-14 Marcus Shawcroft <marcus.shawcroft@linaro.org>
539
540 * Makefile (CFLAGS-open.c, CFLAGS-open64.c, CFLAGS-pause.c)
541 (CFLAGS-recv.c, CFLAGS-send.c): Define.
542
91e0d40e
CM
5432012-11-06 Chris Metcalf <cmetcalf@tilera.com>
544
545 * tst-sem14.c (TIMEOUT): Set timeout to 10 seconds.
546 * tst-cond24.c (TIMEOUT): Increase from 10 to 20 seconds.
547
8f861542
SP
5482012-11-05 Siddhesh Poyarekar <siddhesh@redhat.com>
549
550 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Time out
551 if absolute timeout is negative.
552 [__ASSUME_FUTEX_CLOCK_REALTIME &&
553 lll_futex_timed_wait_bitset]: Use lll_futex_timed_wait_bitset.
554 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
555 Likewise.
556 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
557 Likewise.
558 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
559 (__lll_robust_timedlock_wait): Likewise.
560 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
561 (lll_futex_timed_wait_bitset): New macro.
562 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
563 (lll_futex_timed_wait_bitset): Likewise.
564
d3bd58cf
DM
5652012-11-03 David S. Miller <davem@davemloft.net>
566
567 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
568 Add missing spaces.
569 (__cpu_relax): Likewise.
570
f62c8abc
L
5712012-11-02 H.J. Lu <hongjiu.lu@intel.com>
572
573 * sysdeps/x86_64/tls.h: Don't include <xmmintrin.h>.
574 (__128bits): New struct typedef.
575 (tcbhead_t): Replace __m128 with __128bits.
576
a9879fee
AJ
5772012-10-30 Aurelien Jarno <aurelien@aurel32.net>
578 Joseph Myers <joseph@codesourcery.com>
579
580 * Makefile (tst-cancel7-ARGS): Use exec in --command argument.
581
19f1dd5f
DM
5822012-10-28 David S. Miller <davem@davemloft.net>
583
584 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
585 Define when we have v9 instructions available.
586 * sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: New file.
587 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S: New
588 file.
589 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile: New
590 file.
591 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Add cpu_relax
592 to libpthread-routines.
593
b9473651
RM
5942012-10-25 Roland McGrath <roland@hack.frob.com>
595
596 * tst-cond-except.c (TEST_FUNCTION): New macro.
597
6a345e42
JM
5982012-10-25 Joseph Myers <joseph@codesourcery.com>
599
600 * Makefile ($(objpfx)tst-tls6.out): Use $(BASH) not $(SHELL) to
601 run tst-tls6.sh.
602 * tst-tls6.sh: Use /bin/bash not /bin/sh.
603
c0a1472e
RM
6042012-10-25 Roland McGrath <roland@hack.frob.com>
605
606 * tst-basic2.c (do_test): Return RESULT, not always zero.
607
608 * tst-cond25.c: Include <stdint.h>
609 (waiter): Add casts to uintptr_t between casting integer<->pointer.
610 (timed_waiter): Likewise.
611 (do_test_wait): Likewise.
612 * tst-cond-except.c (thr): Likewise.
613 (do_test): Use prototype definition.
614
cc1290d0
JM
6152012-10-24 Joseph Myers <joseph@codesourcery.com>
616 Jim Blandy <jimb@codesourcery.com>
617
618 * Makefile ($(objpfx)tst-tls6.out): Pass $(test-wrapper-env) to
619 tst-tls6.sh.
620 * tst-tls6.sh (test_wrapper_env): New variable. Use it to run
621 programs with LD_PRELOAD set.
622
6e6249d0
RM
6232012-10-24 Roland McGrath <roland@hack.frob.com>
624
625 * Makefile ($(objpfx)tst-cond11, $(objpfx)tst-cond19): Targets removed.
626 ($(objpfx)tst-sem5, $(objpfx)tst-cancel18): Likewise.
627 ((objpfx)tst-cancelx18, $(objpfx)tst-clock2): Likewise.
628 ($(objpfx)tst-rwlock14): Likewise.
629
0bf57f87
JM
6302012-10-24 Joseph Myers <joseph@codesourcery.com>
631
632 * Makefile (tests): Remove tst-oddstacklimit.
633 (test-srcs): New variable.
634 (tst-oddstacklimit-ENV): Remove.
635 [$(run-built-tests) = yes] (tests): Depend on
636 $(objpfx)tst-oddstacklimit.out.
637 [$(run-built-tests) = yes] ($(objpfx)tst-oddstacklimit.out): New
638 target.
639 * tst-oddstacklimit.c: Do not include "tst-basic1.c". Use
640 setrlimit before executing tst-basic1 test passed to --command.
641
03ac099f
JM
6422012-10-23 Joseph Myers <joseph@codesourcery.com>
643
644 * Makefile [$(cross-compiling) = no]: Change condition to
645 [$(run-built-tests) = yes].
646
166bca24
JB
6472012-10-23 Jim Blandy <jimb@codesourcery.com>
648 Joseph Myers <joseph@codesourcery.com>
649
650 * Makefile (tst-cancel7-ARGS): Use $(host-built-program-cmd).
651 (tst-exec4-ARGS): Likewise.
652 (tst-stackguard1-ARGS): Likewise.
653
aba75984
JB
6542012-10-21 Jim Blandy <jimb@codesourcery.com>
655 Joseph Myers <joseph@codesourcery.com>
656
657 * Makefile ($(objpfx)tst-cancel-wrappers.out): Pass $(NM) to
658 tst-cancel-wrappers.sh.
659 * tst-cancel-wrappers.sh: Use nm program given as first argument,
660 not hardcoded "nm".
661
37785907
SP
6622012-10-17 Siddhesh Poyarekar <siddhesh@redhat.com>
663
370539fb 664 * tst-cond25.c (do_test_wait): Don't check for return value from
37785907
SP
665 pthread_cancel.
666
9485a404
SP
6672012-10-16 Siddhesh Poyarekar <siddhesh@redhat.com>
668
669 [BZ #14652]
670 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
671 (__condvar_tw_cleanup): Adjust the mutex data structure if it
672 was locked by FUTEX_WAIT_REQUEUE_PI.
673 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait
674 (__condvar_w_cleanup): Likewise.
675 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
676 (__condvar_cleanup2): Likewise.
677 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
678 (__condvar_cleanup1): Likewise.
679
0d522f64
CD
6802012-10-10 Carlos O'Donell <carlos@systemhalted.org>
681
54a41734
CD
682 * sysdeps/pthread/pthread.h [!(defined __GNUC__ &&
683 defined __EXCEPTIONS) && defined __USE_GNU]
684 (pthread_cleanup_push_defer_np): Fix formatting.
0d522f64 685
0e3b5d6a
SP
6862012-10-10 Siddhesh Poyarekar <siddhesh@redhat.com>
687
688 [BZ #14652]
689 * Makefile (tests): New test case tst-cond25.
690 (LDFLAGS-tst-cond25): Link tst-cond25 against librt.
691 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
692 (__condvar_tw_cleanup): Lock mutex only if we don't already
693 own it.
694 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
695 (__condvar_w_cleanup): Likewise.
696 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add TID_MASK.
697 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
698 (__condvar_cleanup2): Lock mutex only if we don't already
699 own it.
700 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
701 (__condvar_cleanup1): Likewise.
702 * tst-cond25.c: New test case.
703
b8493de0
RM
7042012-10-09 Roland McGrath <roland@hack.frob.com>
705
706 * sysdeps/pthread/configure: Regenerated.
707 * sysdeps/x86_64/configure: Regenerated.
708
f0762164
DM
7092012-10-05 David S. Miller <davem@davemloft.net>
710
711 [BZ #14568]
712 * sysdeps/sparc/tls.h (DB_THREAD_SELF_INCLUDE): Delete.
713 (DB_THREAD_SELF): Use constants for the register offsets. Correct
714 the case of a 64-bit debugger with a 32-bit inferior.
715
1d1b34df
L
7162012-10-05 H.J. Lu <hongjiu.lu@intel.com>
717
718 [BZ #14557]
719 * Makefile (tests-static): Add tst-cancel24-static,
720 tst-cond8-static tst-mutex8-static, tst-mutexpi8-static,
721 tst-sem11-static and tst-sem12-static.
722 (tests): Likewise.
723 (LDLIBS-tst-cancel24-static): New macro.
724 * tst-cancel24-static.cc: New file.
725 * tst-cond8-static.c: Likewise.
726 * tst-mutex8-static.c: Likewise.
727 * tst-mutexpi8-static.c: Likewise.
728 * tst-sem11-static.c: Likewise.
729 * tst-sem12-static.c: Likewise.
730
c30e8edf
SP
7312012-10-05 Siddhesh Poyarekar <siddhesh@redhat.com>
732
733 [BZ #14417]
734 * Makefile (tests): New test case tst-cond24.
735 (LDFLAGS-tst-cond24): Link tst-cond24 against librt.
736 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
737 (__pthread_cond_timedwait): Unlock mutex before going back to
738 wait in PI case.
739 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
740 (__pthread_cond_wait): Likewise. Revert handling of EAGAIN
741 return from futex_wait.
742 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
743 (__pthread_cond_timedwait): Unlock mutex before going back to
744 wait in PI case. Set requeue_pi flag only if wait returned 0.
745 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
746 (__pthread_cond_wait): Likewise. Revert handling of EAGAIN
747 return from futex_wait.
748 * tst-cond24.c: New test case.
749
9043e228
RM
7502012-10-04 Roland McGrath <roland@hack.frob.com>
751
752 * pthread_create.c (start_thread): Use __madvise, not madvise.
753
b2f80a47
L
7542012-10-02 H.J. Lu <hongjiu.lu@intel.com>
755
756 * sysdeps/i386/tls.h: Update copyright years.
757
adcdc775
SP
7582012-10-02 Siddhesh Poyarekar <siddhesh@redhat.com>
759
760 * pthread_create.c (start_thread): Fix clone flag name in
761 comment to CLONE_CHILD_CLEARTID.
762 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
763 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
764 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
765 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
766 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
767 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
768
55a051c9
SP
7692012-10-01 Siddhesh Poyarekar <siddhesh@redhat.com>
770
771 [BZ #14477]
772 * Makefile (tests): Add tst-cond-except.
773 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
774 (__pthread_cond_timedwait): Mark instructions where %ebx is
775 incremented in PI case.
776 (.gcc_except_table): Add entry to jump to __condvar_tw_cleanup2
777 for the marked PI case instructions.
778 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
779 (__pthread_cond_wait): Mark instructions where %ebx is
780 incremented in PI case.
781 (.gcc_except_table): Add entry to jump to __condvar_w_cleanup2
782 for the marked PI case instructions.
783 * tst-cond-except.c: New test case.
784
9a9028b1
DL
7852012-09-24 Dmitry V. Levin <ldv@altlinux.org>
786
57c69bef
DL
787 * tst-tls6.sh: Add "set -e".
788 * Makefile: Do not specify -e option when running testsuite
789 shell scripts.
790
9a9028b1
DL
791 * tst-tls6.sh: Add copyright header.
792
620f3d26
L
7932012-09-24 H.J. Lu <hongjiu.lu@intel.com>
794
795 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Add "()" when casting
796 to uint64_t for 64-bit store.
797 (THREAD_SETMEM_NC): Likewise.
798
ae30640a
L
7992012-09-19 H.J. Lu <hongjiu.lu@intel.com>
800
801 * sysdeps/i386/tls.h (THREAD_SETMEM): Cast to uint64_t for
802 64-bit store.
803 (THREAD_SETMEM_NC): Likewise.
804
97bc38d7
JL
8052012-09-14 Jeff Law <law@redhat.com>
806
807 [BZ #14583]
808 * sysdeps/pthread/pthread.h: Fix prototype of __sigsetjmp.
809
9503345f
L
8102012-09-13 H.J. Lu <hongjiu.lu@intel.com>
811
812 [BZ #14576]
813 * sysdeps/pthread/bits/libc-lockP.h (__rtld_lock_init_recursive):
814 Removed.
815
e9ceaf25
L
8162012-09-07 H.J. Lu <hongjiu.lu@intel.com>
817
70d37fe0 818 * Makefile (LDFLAGS-tst-cancel24): Renamed to ...
e9ceaf25
L
819 (LDLIBS-tst-cancel24): This.
820
f5fce062
L
8212012-09-06 H.J. Lu <hongjiu.lu@intel.com>
822
823 [BZ #14545]
824 * Makefile (tests-static): Add tst-cancel21-static.
825 (tests): Likewise.
826 * tst-cancel21-static.c: New file.
827
26889eac
JM
8282012-09-01 Joseph Myers <joseph@codesourcery.com>
829
830 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
831 [!__ASSUME_POSIX_CPU_TIMERS]: Remove conditional code.
832 [__NR_clock_getres]: Make code unconditional.
833 (pthread_getcpuclockid): Remove code left unreachable by removal
834 of conditionals.
835
033d54a2 8362012-08-31 Joseph Myers <joseph@codesourcery.com>
b2e1c562 837
033d54a2
JM
838 [BZ #14532]
839 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Use
840 atomic_compare_and_exchange_bool_rel.
841 * tst-sem14.c: New file.
842 * Makefile (tests): Add tst-sem14.
b2e1c562 843
c75ccd4c
RM
8442012-08-15 Roland McGrath <roland@hack.frob.com>
845
846 * Makefile (CFLAGS-flockfile.c): Use $(libio-mtsafe) instead
847 of -D_IO_MTSAFE_IO.
848 (CFLAGS-ftrylockfile.c, CFLAGS-funlockfile.c): Likewise.
b2e1c562 849 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-fork.c): Likewise.
c75ccd4c 850
93a78ac4
JM
8512012-08-16 Joseph Myers <joseph@codesourcery.com>
852
853 * pthread_cond_timedwait.c (__pthread_cond_timedwait)
854 [!__ASSUME_POSIX_TIMERS]: Remove conditional code.
855 * pthread_condattr_setclock.c (pthread_condattr_setclock)
856 [!__ASSUME_POSIX_TIMERS]: Likewise.
857 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
858 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
859 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
860 [!__ASSUME_POSIX_TIMERS]: Likewise.
861 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
862 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
863 * sysdeps/unix/sysv/linux/timer_create.c [__NR_timer_create]: Make
864 code unconditional.
865 [!__NR-timer_create]: Remove conditional code.
866 (timer_create) [!__ASSUME_POSIX_TIMERS]: Likewise.
867 * sysdeps/unix/sysv/linux/timer_delete.c [__NR_timer_delete]: Make
868 code unconditional.
869 [!__NR_timer_delete]: Remove conditional code.
870 (timer_delete) [!__ASSUME_POSIX_TIMERS]: Likewise.
871 * sysdeps/unix/sysv/linux/timer_getoverr.c
872 [__NR_timer_getoverrun]: Make code unconditional.
873 [!__NR_timer_getoverrun]: Remove conditional code.
874 (timer_getoverrun) [!__ASSUME_POSIX_TIMERS]: Likewise.
875 * sysdeps/unix/sysv/linux/timer_gettime.c [__NR_timer_gettime]:
876 Make code unconditional.
877 [!__NR_timer_gettime]: Remove conditional code.
878 (timer_gettime) [!__ASSUME_POSIX_TIMERS]: Likewise.
879 * sysdeps/unix/sysv/linux/timer_routines.c [__NR_timer_create]:
880 Make code unconditional.
881 [!__ASSUME_POSIX_TIMERS]: Remove conditional code.
882 * sysdeps/unix/sysv/linux/timer_settime.c [__NR_timer_settime]:
883 Make code unconditional.
884 [!__NR_timer_settime]: Remove conditional code.
885 (timer_settime) [!__ASSUME_POSIX_TIMERS]: Likewise.
886 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
887 (__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Remove
888 conditional code.
889
309becf1
MK
8902012-08-15 Tom de Vries <vries@codesourcery.com>
891 Maxim Kuvyrkov <maxim@codesourcery.com>
892
893 * sysdeps/pthread/bits/libc-lockP.h (__libc_lock_lock)
894 (__libc_lock_trylock): Allow pre-existing definitions.
895
ef400973
MK
8962012-08-15 Maxim Kuvyrkov <maxim@codesourcery.com>
897
898 * pthread_spin_lock.c: New file.
899 * pthread_spin_trylock.c: New file.
900
b36137f1
JM
9012012-08-08 Joseph Myers <joseph@codesourcery.com>
902
903 * allocatestack.c (setxid_signal_thread) [__ASSUME_TGKILL]: Make
904 code unconditional.
905 (setxid_signal_thread) [!__ASSUME_TGKILL]: Remove conditional code.
906 * pthread_cancel.c (pthread_cancel) [__ASSUME_TGKILL]: Make code
907 unconditional.
908 (pthread_cancel) [!__ASSUME_TGKILL]: Remove conditional code.
909 * sysdeps/pthread/createthread.c (do_clone) [__ASSUME_TGKILL]:
910 Make code unconditional.
911 (do_clone) [!__ASSUME_TGKILL]: Remove conditional code.
912 * sysdeps/unix/sysv/linux/pt-raise.c (raise) [__ASSUME_TGKILL ||
913 __NR_tgkill]: Make code unconditional.
914 (raise) [__ASSUME_TGKILL]: Likewise.
915 (raise) [!__ASSUME_TGKILL]: Remove conditional code.
916 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill)
917 [__ASSUME_TGKILL]: Make code unconditional.
918 (__pthread_kill) [!__ASSUME_TGKILL]: Remove conditional code.
919 * sysdeps/unix/sysv/linux/raise.c (raise) [__ASSUME_TGKILL ||
920 __NR_tgkill]: Make code unconditional.
921 (raise) [__ASSUME_TGKILL]: Likewise.
922 (raise) [!__ASSUME_TGKILL]: Remove conditional code.
923
93df14ee
JM
9242012-08-07 Joseph Myers <joseph@codesourcery.com>
925
926 * sysdeps/pthread/createthread.c (create_thread)
927 [!__ASSUME_NO_CLONE_DETACHED]: Remove conditional code.
928
85fe1997
JM
9292012-08-03 Joseph Myers <joseph@codesourcery.com>
930
931 * nptl-init.c (sigcancel_handler) [__ASSUME_CORRECT_SI_PID]: Make
932 code unconditional.
933 (sighandler_setxid) [__ASSUME_CORRECT_SI_PID]: Likewise.
934
fc56c5bb
SP
9352012-07-28 Siddhesh Poyarekar <siddhesh@redhat.com>
936
937 * tst-pthread-getattr.c (MAX_STACK_SIZE): New macro.
938 (pagesize): New static variable.
939 (allocate_and_test): Return MEM. Rename parameter to TARGET.
940 (check_stack_top): New local variables MEM and PAGEMASK. Cap
941 stack size to MAX_STACK_SIZE. Call allocate_and_test for
942 halfway up the stack top page. Verify that the top page was
943 written into.
944 (do_test): Get pagesize using sysconf.
945
842a39cd
AS
9462012-07-25 Andreas Schwab <schwab@linux-m68k.org>
947
948 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Remove pseudo_end
949 label.
950 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Likewise.
951 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO):
952 Likewise.
953
77b32274
SP
9542012-07-25 Siddhesh Poyarekar <siddhesh@redhat.com>
955
956 * tst-pthread-getattr.c: Revert last change.
957
b2ae49da
SP
9582012-07-20 Siddhesh Poyarekar <siddhesh@redhat.com>
959
960 * tst-pthread-getattr.c (MAX_STACK_SIZE): New max cap for stack
961 size.
962 (_MIN): New macro.
963 (allocate_and_test): Return STACKADDR. Access STACKADDR instead
964 of MEM to test.
965 (check_stack_top): Read valued written into STACKADDR in
966 allocate_and_test. Cap stack size to MAX_STACK_SIZE.
967
a9843058
SP
9682012-07-19 Siddhesh Poyarekar <siddhesh@redhat.com>
969
970 * nptl-init.c (sighandler_setxid): Fix the comment that
971 describes it.
972
4b2c8da7
TS
9732012-06-23 Thomas Schwinge <thomas@codesourcery.com>
974
975 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
976 (__lll_robust_timedlock_wait): Simplify CFI directives.
977
18b5e737
SP
9782012-06-20 Siddhesh Poyarekar <siddhesh@redhat.com>
979
980 [BZ #12416]
981 * Makefile (tests): Add test case.
982 * pthread_getattr_np.c (pthread_getattr_np): Deduct pages below
983 the __libc_stack_end page from stacksize. Truncate stacksize to
984 make it page aligned when it is computed from RLIMIT_STACK.
985 * tst-pthread-getattr.c: New test case. Verify that stackaddr is
986 accessible.
987
24a6dbed
CSLL
9882012-06-07 Carlos Sánchez de La Lama <csanchezdll@gmail.com>
989
990 [BZ #14205]
991 * sysdeps/sparc/sparc32/pthread_spin_lock.S: Do not use v9
992 branches.
993
4af3879c
SP
9942012-06-04 Siddhesh Poyarekar <siddhesh@redhat.com>
995 Jakub Jelinek <jakub@redhat.com>
996
997 [BZ #14188]
998 * sysdeps/pthread/pthread.h
999 [!(defined __GNUC__ && defined __EXCEPTIONS)]
1000 (pthread_cleanup_push, pthread_cleanup_push_defer_np): Use
1001 __libc_unlikely instead of __builtin_expect.
1002
0e20515a
L
10032012-05-30 H.J. Lu <hongjiu.lu@intel.com>
1004
1005 [BZ #14117]
1006 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Removed.
1007 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
1008 * sysdeps/unix/sysv/linux/i386/Implies: New file.
1009 * sysdeps/unix/sysv/linux/x86_64/Implies: Likewise.
1010 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Renamed
1011 to ...
1012 * sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: This.
1013 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Renamed
1014 to ...
1015 * sysdeps/unix/sysv/linux/x86/bits/semaphore.h: This.
1016
865eac65
AS
10172012-05-30 Andreas Schwab <schwab@linux-m68k.org>
1018
1019 [BZ #14132]
1020 * nptl-init.c (pthread_functions): Remove use of INTUSE and
1021 _internal aliases.
1022 (__pthread_initialize_minimal_internal): Likewise.
1023 * sem_open.c: Likewise.
1024 * sem_unlink.c: Likewise.
1025 * pthreadP.h: Replace _internal aliases by hidden_proto
1026 declarations.
1027 * pthread_getspecific.c: Replace _internal alias by hidden_def.
1028 * pthread_key_create.c: Likewise.
1029 * pthread_mutex_destroy.c: Likewise.
1030 * pthread_mutex_init.c: Likewise.
1031 * pthread_mutex_lock.c: Likewise.
1032 * pthread_mutex_unlock.c: Likewise.
1033 * pthread_once.c: Likewise.
1034 * pthread_rwlock_rdlock.c: Likewise.
1035 * pthread_rwlock_unlock.c: Likewise.
1036 * pthread_rwlock_wrlock.c: Likewise.
1037 * pthread_setspecific.c: Likewise.
1038 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
1039 Likewise.
1040 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
1041 Likewise.
1042 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
1043 Likewise.
1044 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1045 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
1046 * sysdeps/unix/sysv/linux/s390/pthread_once.c: Likewise.
1047 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Likewise.
1048 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
1049 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
1050 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
1051 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
1052 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
1053 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
1054 Likewise.
1055 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
1056 Likewise.
1057 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
1058 Likewise.
1059
65a4de4e
CLT
10602012-05-27 Chung-Lin Tang <cltang@codesourcery.com>
1061
d701a1ab
CLT
1062 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO, LOAD_ARGS_1)
1063 (LOAD_ARGS_2 ,LOAD_ARGS_3 ,LOAD_ARGS_4): Add CFI restores.
1064
65a4de4e
CLT
1065 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_lock_wait_private)
1066 (__lll_lock_wait, __lll_timedlock_wait, __lll_timedwait_tid): Add CFI
1067 directives.
1068 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
1069 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Likewise.
1070 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
1071 (pthread_barrier_wait): Likewise.
1072 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
1073 (__pthread_cond_broadcast): Likewise.
1074 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
1075 (__pthread_cond_signal): Likewise.
1076 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1077 (__pthread_cond_timedwait): Likewise.
1078 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait):
1079 Likewise.
1080 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
1081 (__pthread_rwlock_rdlock): Likewise.
1082 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
1083 (pthread_rwlock_timedrdlock): Likewise.
1084 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
1085 (pthread_rwlock_timedwrlock): Likewise.
1086 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
1087 (__pthread_rwlock_unlock): Likewise.
1088 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
1089 (__pthread_rwlock_wrlock): Likewise.
1090 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post): Likewise.
1091 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
1092 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
1093 Likewise.
1094 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
1095
9c6ea9fa
SP
10962012-05-26 Siddhesh Poyarekar <siddhesh@redhat.com>
1097
1098 [BZ #12416]
1099 * nptl/pthread_getattr_np.c (pthread_getattr_np): Use
1100 __libc_stack_end rounded to the end of containing page as the
1101 real stack end.
1102
17557282
RH
11032012-05-25 Rayson Ho <rho@redhat.com>
1104
1105 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Low-level SystemTap
1106 probes for i386.
1107 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1108 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
1109 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
1110 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
1111 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
1112 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1113 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
1114 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
1115
5acf7263
RM
11162012-05-25 Rayson Ho <rho@redhat.com>
1117 Roland McGrath <roland@hack.frob.com>
1118
1119 * DESIGN-systemtap-probes.txt: New file.
1120 * pthread_cond_broadcast.c: SystemTap probes.
1121 * pthread_cond_init.c: Likewise.
1122 * pthread_cond_signal.c: Likewise.
1123 * pthread_cond_wait.c: Likewise.
1124 * pthread_cond_destroy.c: Likewise.
1125 * pthread_create.c: Likewise.
1126 * pthread_join.c: Likewise.
1127 * pthread_mutex_destroy.c: Likewise.
1128 * pthread_mutex_init.c: Likewise.
1129 * pthread_mutex_lock.c: Likewise.
1130 * pthread_mutex_timedlock.c: Likewise.
1131 * pthread_mutex_unlock.c: Likewise.
1132 * pthread_rwlock_destroy.c: Likewise.
1133 * pthread_rwlock_rdlock.c: Likewise.
1134 * pthread_rwlock_unlock.c: Likewise.
1135 * pthread_rwlock_wrlock.c: Likewise.
1136 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1137 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
1138 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
1139 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
1140 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1141 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1142 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
1143 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
1144
3a097cc7
RM
11452012-05-24 Roland McGrath <roland@hack.frob.com>
1146
1147 * pthread_create.c (start_thread): Define pthread_start LIBC_PROBE.
1148
de7f5ce7
AJ
11492012-05-17 Andreas Jaeger <aj@suse.de>
1150
1151 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
1152 (HAVE_DL_DISCOVER_OSVERSION): Don't declare _dl_discover_osversion
1153 only for older kernels.
1154
04807399
JM
11552012-05-15 Joseph Myers <joseph@codesourcery.com>
1156
1157 * pthreadP.h [!__NR_set_robust_list] (__NR_set_robust_list): Do
1158 not define.
1159
f16af742
L
11602012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1161
1162 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
1163 futex pointer into RDI_LP. Use RSP_LP to operate on stack.
1164 (lll_robust_lock): Likewise.
1165 (lll_cond_lock): Likewise.
1166 (lll_robust_cond_lock): Likewise.
1167 (lll_timedlock): Likewise.
1168 (lll_robust_timedlock): Likewise.
1169 (lll_unlock): Likewise.
1170 (lll_robust_unlock): Likewise.
1171
d9754f55
L
11722012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1173
1174 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use
1175 LP_OP(cmp) and RCX_LP on dep_mutex pointer.
1176
dde05f00
L
11772012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1178
1179 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Use LP_OP(op)
1180 on NWAITERS.
1181 (__gcc_personality_v0): Replace 8-byte data alignment with
1182 LP_SIZE alignment and .quad with ASM_ADDR.
1183
9dba3b5c
L
11842012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1185
1186 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Use LP_OP(op)
1187 on NWAITERS.
1188 (__gcc_personality_v0): Replace 8-byte data alignment with
1189 LP_SIZE alignment and .quad with ASM_ADDR.
1190
5f658cf1
L
11912012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1192
1193 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Use LP_OP(cmp) on
1194 NWAITERS, which is unsigned long int.
1195
6cae4b26
L
11962012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1197
1198 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
1199 (__gcc_personality_v0): Replace 8-byte data alignment with
1200 LP_SIZE alignment and .quad with ASM_ADDR.
1201
592f90e6
L
12022012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1203
1204 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Use
1205 LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer. Load
1206 __vdso_clock_gettime pointer into RAX_LP.
1207 (__gcc_personality_v0): Replace 8-byte data alignment with
1208 LP_SIZE alignment and .quad with ASM_ADDR.
1209
0e8860ad
L
12102012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1211
1212 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Use
1213 LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer. Load
1214 __vdso_clock_gettime pointer into RAX_LP.
1215 (__gcc_personality_v0): Replace 8-byte data alignment with
1216 LP_SIZE alignment and .quad with ASM_ADDR.
1217
30996e93
L
12182012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1219
1220 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Use
1221 LP_OP(cmp) and R8_LP on dep_mutex pointer.
1222
289ac435
L
12232012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1224
1225 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Use LP_OP(mov)
1226 to update pointer in memory. Load pointer into RDI_LP.
1227
10f74fbc
L
12282012-05-15 H.J. Lu <hongjiu.lu@intel.com>
1229
1230 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
1231 (LLL_STUB_UNWIND_INFO_START): Align label to LP_SIZE instead
1232 of 8.
1233 (LLL_STUB_UNWIND_INFO_END): Likewise.
1234 (lll_timedlock): Load timeout pointer into RDX_LP.
1235 (lll_robust_timedlock): Likewise.
1236
439bf404
SP
12372012-05-15 Siddhesh Poyarekar <siddhesh@redhat.com>
1238 Jakub Jelinek <jakub@redhat.com>
1239
1240 [BZ #13613]
1241 * Makefile (tests): Add test cases.
1242 * descr.h (struct pthread): Add a comment describing multiple_threads.
1243 * pthreadP.h (__pthread_multiple_threads): Expand comment to include
1244 single-process case.
1245 * pthread_cancel.c (pthread_cancel): Enable multiple_threads
1246 before setting cancelstate of the thread.
1247 * sysdeps/unix/sysv/linux/libc_multiple_threads.c
1248 (__libc_multiple_threads): Add explanatory comment.
1249 * tst-cancel-self-cancelstate.c: New test case.
1250 * tst-cancel-self-canceltype.c: Likewise.
1251 * tst-cancel-self-cleanup.c: Supporting file for test cases.
1252 * tst-cancel-self-testcancel.c: New test case.
1253 * tst-cancel-self.c: Likewise.
1254 * vars.c: Expand comment to include single-process case.
1255
2949684c
L
12562012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1257
1258 * sysdeps/x86_64/tls.h: Don't include <bits/wordsize.h>.
1259 (tcbhead_t): Remove __x86_64__ check. Align rtld_savespace_sse
1260 to 32 bytes.
1261
245a11d7
L
12622012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1263
1264 * sysdeps/pthread/pthread.h (__PTHREAD_RWLOCK_INT_FLAGS_SHARED):
1265 New.
1266 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Check
1267 __PTHREAD_RWLOCK_INT_FLAGS_SHARED instead of __WORDSIZE.
1268
0b254d8f
L
12692012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1270
1271 * shlib-versions: Move x86_64-.*-linux.* entry to ...
1272 * sysdeps/x86_64/64/shlib-versions: Here. New file.
1273 * sysdeps/x86_64/x32/shlib-versions: New file.
1274
b8caea2c
L
12752012-05-14 H.J. Lu <hongjiu.lu@intel.com>
1276
1277 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Define x32
1278 __SIZEOF_PTHREAD_XXX_T.
1279 (__pthread_internal_list): Check __x86_64__ instead of __WORDSIZE.
1280 (pthread_mutex_t): Likewise.
1281 (pthread_rwlock_t): Likewise.
1282 (__PTHREAD_RWLOCK_INT_FLAGS_SHARED): New. Defined if __x86_64__
1283 is defined.
1284
60d45b36
L
12852012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1286
1287 * sysdeps/x86_64/x32/tls.h: New file.
1288
a04e06bc
L
12892012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1290
1291 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Use uint64_t on 64-bit
1292 integer.
1293 (THREAD_SETMEM_NC): Likewise.
1294
512ec530
L
12952012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1296
1297 * sysdeps/x86_64/tls.h (THREAD_SELF): Replace movq/%q0 with
1298 mov/%0.
1299
c0d2c853
L
13002012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1301
1302 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
1303 (__cleanup_fct_attribute): Check __x86_64__ instead of
eae2d36a 1304 __WORDSIZE.
c0d2c853 1305
1f59b0b1
L
13062012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1307
1308 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER): Check
1309 __PTHREAD_MUTEX_HAVE_PREV instead of __WORDSIZE.
1310 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Likewise.
1311 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
1312 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
1313
c252ec15
L
13142012-05-11 H.J. Lu <hongjiu.lu@intel.com>
1315
1316 * pthread_create.c (start_thread): Check __PTHREAD_MUTEX_HAVE_PREV
1317 instead of __WORDSIZE.
1318
be971a2b
TS
13192012-05-10 Thomas Schwinge <thomas@schwinge.name>
1320
1321 [BZ #3748]
1322 * sysdeps/pthread/bits/libc-lockP.h (__libc_once_get): New macro.
1323
e1b4354e
CLT
13242012-05-09 Chung-Lin Tang <cltang@codesourcery.com>
1325
1326 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
1327 (__pthread_cond_timedwait): Use CFI directives.
1328 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
1329 (__pthread_cond_wait): Likewise.
1330 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
1331 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
1332
76e835cf
DM
13332012-05-03 David S. Miller <davem@davemloft.net>
1334
1335 * sysdeps/sparc/sparc64/pthread_spin_unlock.S: Fix thinko, we
1336 always have to return 0, especially for the pthread_spin_init
1337 alias.
1338 * sysdeps/sparc/sparc32/pthread_spin_lock.S: Add missing trailing
1339 newline.
1340 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: Likewise.
1341 * sysdeps/sparc/sparc64/pthread_spin_lock.S: Likewise.
1342
e2dbf201
DM
13432012-05-02 David S. Miller <davem@davemloft.net>
1344
1345 * sysdeps/sparc/sparc64/pthread_spin_lock.S: New.
1346 * sysdeps/sparc/sparc64/pthread_spin_lock.c: Delete.
1347 * sysdeps/sparc/sparc64/pthread_spin_unlock.S: New.
1348 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: Delete.
1349 * sysdeps/sparc/sparc64/pthread_spin_trylock.S: New.
1350 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: Delete.
1351 * sysdeps/sparc/sparc64/pthread_spin_init.c: New.
1352 * sysdeps/sparc/sparc32/pthread_spin_lock.S: New.
1353 * sysdeps/sparc/sparc32/pthread_spin_lock.c: Delete.
1354 * sysdeps/sparc/sparc32/pthread_spin_trylock.S: New.
1355 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: Delete.
1356 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: New.
1357 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: Delete.
1358 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S: New.
1359 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: Delete.
1360 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S: New.
1361 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: Delete.
1362 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c: New.
1363
d4c2917f
AM
13642012-05-02 Allan McRae <allan@archlinux.org>
1365
1366 * Makefile: (LDFLAGS-tst-tls5): Use $(no-as-needed).
1367 (LDFLAGS-tst-cancel24): Likewise.
1368
b93d565a
PP
13692012-05-02 Paul Pluzhnikov <ppluzhnikov@google.com>
1370
1371 * sysdeps/i386/pthread_spin_lock.S: New.
1372 * sysdeps/i386/pthread_spin_lock.c: Delete.
1373 * sysdeps/x86_64/pthread_spin_lock.S: New.
1374 * sysdeps/x86_64/pthread_spin_lock.c: Delete.
1375
6d5c57fa
AS
13762012-04-28 Andreas Schwab <schwab@linux-m68k.org>
1377
1378 * Makefile ($(objpfx)tst-stack3-mem, $(objpfx)tst-tls6.out): Don't
1379 run when cross-compiling.
1380
6e236b92
SP
13812012-04-26 Siddhesh Poyarekar <siddhesh@redhat.com>
1382
1383 * sysdeps/pthread/unwind-forcedunwind.c: Include gnu/lib-names.h
1384 instead of libgcc_s.h.
1385
0cec7c54
PP
13862012-04-20 Paul Pluzhnikov <ppluzhnikov@google.com>
1387
1388 * sysdeps/x86_64/tls.h (TLS_GET_FS, TLS_SET_FS): Delete.
1389
7ac88e38
DM
13902012-03-27 David S. Miller <davem@davemloft.net>
1391
1392 * tst-cond16.c (do_test): Use a thread stack size which is either
1393 PTHREAD_STACK_MIN or the page size, whichever is larger.
1394 * tst-cond18.c (do_test): Likewise.
1395
24d8f4b7
L
13962012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1397
1398 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
1399 register char * __asm__("rsp") to get stack frame.
1400
4adaaafc
L
14012012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1402
1403 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (SYS_futex): Use
1404 __NR_futex directly.
1405
ca7b8af5
L
14062012-03-19 H.J. Lu <hongjiu.lu@intel.com>
1407
1408 * unwind.c (unwind_stop): Cast _Unwind_GetCFA return to
1409 _Unwind_Ptr first.
1410
7e7fa5f8
DM
14112012-03-16 David S. Miller <davem@davemloft.net>
1412
1413 [BZ #13844]
1414 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: Include using <..>
1415 instead of "...".
1416 * sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c:
1417 Delete, not needed.
1418
c4a7b16e
DM
14192012-03-15 David S. Miller <davem@davemloft.net>
1420
1421 [BZ #13844]
1422 * sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c: New file.
1423
c524201a
PE
14242012-03-09 Paul Eggert <eggert@cs.ucla.edu>
1425
1426 [BZ #13673]
1427 * pt-crti.S: Replace FSF snail mail address with URL.
1428
90ad551f
JM
14292012-03-09 Joseph Myers <joseph@codesourcery.com>
1430
1431 * sysdeps/pthread/pthread.h (__need_clockid_t, __need_timespec):
1432 Do not define before including <time.h>.
1433
c64bf5fe
DM
14342012-03-08 David S. Miller <davem@davemloft.net>
1435
1436 * sysdeps/unix/sysv/linux/sparc/sem_post.c: Update copyright year.
1437
48aff776
TS
14382012-03-08 Thomas Schwinge <thomas@codesourcery.com>
1439
2edd9a79
TS
1440 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
1441 Check for timestamp before the Epoch.
1442
c564a812
TS
1443 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Fix
1444 updating nwaiters.
1445
48aff776
TS
1446 * tst-sem13.c (do_test): Add another test case.
1447 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
1448 Fix updating nwaiters.
1449
e7dbb1be
JM
14502012-03-07 Joseph Myers <joseph@codesourcery.com>
1451
1452 [BZ #10545]
1453 * sysdeps/pthread/configure.in (libc_cv_forced_unwind): Change
1454 link test to a compile test.
1455 (libc_cv_c_cleanup): Likewise. Declare puts rather than including
1456 <stdio.h>.
1457 * sysdeps/pthread/configure: Regenerated.
1458
a4300c7a
UD
14592012-03-07 Ulrich Drepper <drepper@gmail.com>
1460
1461 * Makefile (distribute): Remove variable.
1462
840df61e
TS
14632012-01-23 Thomas Schwinge <thomas@codesourcery.com>
1464
1465 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Get rid of
1466 superfluous assignment.
1467 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c (sem_timedwait):
1468 Likewise.
1469 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
1470 (sem_timedwait): Likewise.
1471
9463518d
UD
14722012-03-06 Ulrich Drepper <drepper@gmail.com>
1473
abdf2e19
UD
1474 * sysdeps/pthread/bits/libc-lock.h: Move information not needed in
1475 installed headers to...
9463518d
UD
1476 * sysdeps/pthread/bits/libc-lockP.h: ...here. New file.
1477
e9258400
DM
14782012-03-06 David S. Miller <davem@davemloft.net>
1479
1480 * sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
1481 atomic_increment and remove unused local variable.
1482 (__old_sem_post): Likewise.
1483
22f9d9df
DM
14842012-02-27 David S. Miller <davem@davemloft.net>
1485
9463518d
UD
1486 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to
1487 non-existing __pthread_attr.
22f9d9df
DM
1488 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1489 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1490 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1491 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1492 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1493
4efeffc1
UD
14942012-02-26 Ulrich Drepper <drepper@gmail.com>
1495
d94a4670
UD
1496 * sysdeps/pthread/pthread.h: Define __need_clockid_t for __USE_XOPEN2K.
1497
4efeffc1
UD
1498 * sysdeps/pthread/pthread.h: Define __need_timespec before including
1499 <time.h>.
1500 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Name pthread_attr_t
1501 union.
1502 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
1503 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
1504 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
1505 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
1506 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
1507
0e7dfaef
JM
15082012-02-21 Joseph Myers <joseph@codesourcery.com>
1509
1510 [BZ #13695]
1511 * Makefile (generated): Remove crti.S, crtn.S, defs.h and
1512 pt-initfini.s.
1513 [crti.S not in sysdirs] (omit-deps): Do not append.
1514 [crti.S not in sysdirs] (CFLAGS-pt-initfini.s): Remove variable.
1515 [crti.S not in sysdirs] (pt-initfini.c): Remove vpath directive.
1516 [crti.S not in sysdirs] ($(objpfx)crti.S): Remove rule.
1517 [crti.S not in sysdirs] ($(objpfx)crtn.S): Likewise.
1518 [crti.S not in sysdirs] ($(objpfx)defs.h): Likewise.
1519 [crti.S not in sysdirs] ($(objpfx)crti.o): Likewise.
1520 [crti.S not in sysdirs] ($(objpfx)crtn.o): Likewise.
1521 [crti.S in sysdirs] (extra-objs): Append unconditionally.
1522 [crti.S in sysdirs] ($(objpfx)crti.o): Define rule
1523 unconditionally.
1524 * sysdeps/pthread/pt-initfini.c: Remove file.
1525
e3b69ca7
RH
15262012-02-16 Richard Henderson <rth@twiddle.net>
1527
959e12e3
UD
1528 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Remove file.
1529 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Remove file.
e3b69ca7 1530
df83af67
KK
15312012-02-15 Kaz Kojima <kkojima@rr.iij4u.or.jp>
1532
1533 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: Remove file.
1534
f63f3380
DM
15352012-02-16 David S. Miller <davem@davemloft.net>
1536
1537 * sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
1538
d463ab10
MP
15392012-02-15 Marek Polacek <polacek@redhat.com>
1540
1541 * sysdeps/unix/sysv/linux/x86_64/Makefile: Remove file.
1542
59ba27a6
PE
15432012-02-09 Paul Eggert <eggert@cs.ucla.edu>
1544
1545 Replace FSF snail mail address with URLs, as per GNU coding standards.
1546
28328403
AS
15472012-02-08 Andreas Schwab <schwab@linux-m68k.org>
1548
1549 * Makefile (extra-objs) [crti.S in sysdirs]: Add pt-crti.o.
1550
3add8e13
JM
15512012-02-08 Joseph Myers <joseph@codesourcery.com>
1552
1553 Support crti.S and crtn.S provided directly by architectures.
1554 * Makefile [crti.S in sysdirs] (omit-deps): Do not append.
1555 [crti.S in sysdirs] (CFLAGS-pt-initfini.s): Do not define variable.
1556 [crti.S in sysdirs] ($(objpfx)pt-initfini.s): Disable rule.
1557 [crti.S in sysdirs] ($(objpfx)crti.S): Likewise.
1558 [crti.S in sysdirs] ($(objpfx)crtn.S): Likewise.
1559 [crti.S in sysdirs] ($(objpfx)defs.h): Likewise.
1560 [crti.S in sysdirs] ($(objpfx)crti.o): Likewise.
1561 [crti.S in sysdirs] ($(objpfx)crtn.o): Likewise.
1562 [crti.S in sysdirs] (pt-initfini.c): Remove vpath directive.
1563 [crti.S in sysdirs] ($(objpfx)crti.o): New rule.
1564 * pt-crti.S: New file.
1565 * sysdeps/unix/sysv/linux/i386/Makefile: Remove file.
1566
9a1d9254
JM
15672012-02-03 Joseph Myers <joseph@codesourcery.com>
1568
1569 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
1570 macros for PIC register setup.
1571 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
1572 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1573 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
1574 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1575 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
1576
5452bffe
UD
15772012-01-11 Marek Polacek <polacek@redhat.com>
1578
1579 * forward.c (FORWARD_NORETURN): Define macro.
1580 (__pthread_unwind): Use FORWARD_NORETURN macro to avoid warning.
1581 (__pthread_exit): Likewise.
1582
356fa562
UD
15832012-01-10 Ulrich Drepper <drepper@gmail.com>
1584
8898f020
UD
1585 * sysdeps/pthread/pthread.h: Add const attribute to pthread_equal.
1586
356fa562
UD
1587 * pthreadP.h: Add noreturn to __pthread_exit.
1588 * sysdeps/pthread/pthread-functions.h: Likewise for ptr___pthread_exit.
1589
f5420cf0
AZ
15902011-12-30 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
1591
1592 * sysdeps/unix/sysv/linux/aio_misc.h (__aio_create_helper_thread):
1593 Call pthread_attr_setstacksize() with result of
1594 __pthread_get_minstack() to account for application TLS usage.
1595
c473bd1c
MP
15962012-01-08 Marek Polacek <polacek@redhat.com>
1597
1598 * sysdeps/unix/sysv/linux/mq_notify.c: Include <nptl/pthreadP.h>.
1599
120ced3f
UD
16002012-01-07 Ulrich Drepper <drepper@gmail.com>
1601
a784e502
UD
1602 [BZ #13553]
1603 * pthreadP.h: Use const instead of __const.
1604 * semaphore.h: Likewise.
1605 * sysdeps/pthread/bits/libc-lock.h: Likewise.
1606 * sysdeps/pthread/bits/sigthread.h: Likewise.
1607 * sysdeps/pthread/pthread.h: Likewise.
1608
0269750c
UD
1609 * Makefile: Remove elf=yes test, only ELF is supported.
1610
ecb6fb48
UD
1611 * shlib-versions: Remove entries for ports architectures.
1612
120ced3f
UD
1613 In case anyone cares, the IA-64 architecture could move to ports.
1614 * sysdeps/ia64/*: Removed.
1615 * sysdeps/unix/sysv/linux/ia64/*: Removed.
1616
2c1094bd
UD
16172011-12-22 Ulrich Drepper <drepper@gmail.com>
1618
ee9e0640
UD
1619 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread): Use
1620 __pthread_get_minstack.
1621 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise.
1622
2c1094bd
UD
1623 [BZ #13088]
1624 * sysdeps/unix/sysv/linux/timer_routines.c: Get minimum stack size
1625 through __pthread_get_minstack.
1626 * nptl-init.c (__pthread_initialize_minimal_internal): Get page size
1627 directly from _rtld_global_ro.
1628 (__pthread_get_minstack): New function.
1629 * pthreadP.h: Declare __pthread_get_minstack.
1630 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_get_minstack.
1631
60e8585f
UD
16322011-12-21 Ulrich Drepper <drepper@gmail.com>
1633
1634 [BZ #13515]
1635 * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
1636 Correct reading name from file.
1637
caafb2b0
CD
16382011-12-14 Carlos O'Donell <carlos@systemhalted.org>
1639
1640 * allocatestack.c (allocate_stack): Return errno on failure.
1641
e988dba9
JL
16422011-12-14 Jeff Law <law@redhat.com>
1643
1644 [BZ #5245]
1645 * pthread_create.c (__pthread_create_2_1): Translate ENOMEM to EAGAIN.
1646
ade60c89
UD
16472011-11-28 Andreas Schwab <schwab@redhat.com>
1648
1649 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle
1650 EAGAIN from FUTEX_WAIT_REQUEUE_PI.
1651 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1652
312be3f9
UD
16532011-11-15 Ulrich Drepper <drepper@gmail.com>
1654
1655 * pthread_getattr_np.c (pthread_getattr_np): Set FD_CLOEXEC for
1656 /proc/self/maps.
1657
c2b18f7a
UD
16582011-10-29 Ulrich Drepper <drepper@gmail.com>
1659
1660 [BZ #13358]
1661 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1662 (__pthread_cond_timedwait): Initialize %r15 correctly also for code
1663 path for kernels with FUTEX_CLOCK_REALTIME.
1664 Debugged by H.J. Lu <hjl.tools@gmail.com>.
1665
3871f58f
AS
16662011-10-27 Andreas Schwab <schwab@redhat.com>
1667
1668 [BZ #13344]
1669 * sysdeps/pthread/pthread.h: Use __THREADNL instead of __THREAD
1670 for memory synchronization functions.
1671 * semaphore.h: Likewise.
1672
485683c3
UD
16732011-10-24 Ulrich Drepper <drepper@gmail.com>
1674
1675 * tst-cancel7.c: Avoid warning.
1676 * tst-mutex6.c: Likewise.
1677 * tst-mutex9.c: Likewise.
1678 * tst-mutexpi6.c: Likewise.
1679
10d005f7
UD
16802011-10-23 Ulrich Drepper <drepper@gmail.com>
1681
1682 * sysdeps/i386/tls.h: Remove #include <list.h>.
1683
fd5bdc09
UD
16842011-10-15 Ulrich Drepper <drepper@gmail.com>
1685
10d005f7 1686 * pthread_create.c (start_thread): Call __ctype_init.
fd5bdc09 1687
7a775e6b
AS
16882011-09-15 Andreas Schwab <schwab@redhat.com>
1689
1690 * sysdeps/pthread/list.h: Define only list_t if __need_list_t is
1691 defined.
1692 (list_add): Add atomic_write_barrier.
1693 * descr.h: Define __need_list_t before including <list.h>.
1694 * nptl-init.c: Include <list.h>
1695 * allocatestack.c: Likewise.
1696
83cd1420
UD
16972011-09-11 Ulrich Drepper <drepper@gmail.com>
1698
1699 * sysdeps/i386/tls.h: Remove HAVE_TLS_SUPPORT test.
1700 * sysdeps/ia64/tls.h: Likewise.
1701 * sysdeps/powerpc/tls.h: Likewise.
1702 * sysdeps/s390/tls.h: Likewise.
1703 * sysdeps/sh/tls.h: Likewise.
1704 * sysdeps/sparc/tls.h: Likewise.
1705 * sysdeps/x86_64/tls.h: Likewise.
1706
3ce1f295
UD
17072011-09-10 Ulrich Drepper <drepper@gmail.com>
1708
02d46fc4
UD
1709 * sysdeps/pthread/malloc-machine.h: Define MUTEX_INITIALIZER.
1710
d063d164
UD
1711 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Don't handle
1712 !USE___THREAD.
1713 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
1714 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
1715 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
1716 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
1717 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
1718 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
1719 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
1720 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
1721 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
1722 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
1723 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
1724 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
1725
3ce1f295
UD
1726 * tst-tls1.c: Support for __thread is now mandatory.
1727 * tst-tls2.c: Likewise.
1728 * tst-tls3.c: Likewise.
1729 * tst-tls3mod.c: Likewise.
1730 * tst-tls4.c: Likewise.
1731 * tst-tls4moda.c: Likewise.
1732 * tst-tls4modb.c: Likewise.
1733 * tst-tls5.h: Likewise.
1734
1e4bd093
L
17352011-09-08 Ulrich Drepper <drepper@gmail.com>
1736
1737 [BZ #12403]
1738 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
1739 (pthread_rwlock_timedwrlock): Use correct macro in test.
1740 Patch by H.J. Lu <hongjiu.lu@intel.com>.
1741
a0e1f41b
UD
17422011-09-06 Ulrich Drepper <drepper@gmail.com>
1743
1744 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Don't
1745 use gettimeofday vsyscall, just call gettimeofday.
9e5c9dcd
UD
1746 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
1747 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
1748 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
1749 Likewise.
1750 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
1751 Likewise.
1752 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1753 Simplify __vdso_clock_gettime use.
a0e1f41b 1754
39c4451c
DM
17552011-09-05 David S. Miller <davem@davemloft.net>
1756
1757 * sysdeps/unix/sysv/linux/sem_timedwait.c (do_futex_timed_wait):
1758 New function.
1759 (sem_timedwait): Call it to force an exception region around
1760 the async cancel enable and the futex operation.
1761 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: Likewise.
1762 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: Likewise.
1763 * sysdeps/unix/sysv/linux/sem_wait.c (do_futex_wait): New function.
1764 (__new_sem_wait): Call it to force an exception region around
1765 the async cancel enable and the futex operation.
1766 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: Likewise.
1767 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: Likewise.
1768
523df511
AS
17692011-08-31 Andreas Schwab <schwab@redhat.com>
1770
1771 * allocatestack.c (setxid_mark_thread): Ensure that the exiting
1772 thread is woken up.
1773
e315850c
DM
17742011-08-20 David S. Miller <davem@davemloft.net>
1775
1776 * Makefile (tst-cleanup0.out): Fix typo in output redirection.
1777
5744c68d
RM
17782011-08-14 Roland McGrath <roland@hack.frob.com>
1779
1780 * sysdeps/i386/pthreaddef.h (TCB_ALIGNMENT): Set to 64, optimal on Atom.
1781 * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Likewise.
1782
a724d1b9
AS
17832011-08-08 Andreas Schwab <schwab@redhat.com>
1784
1785 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned
1786 stack.
1787 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
1788 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
1789
7a03a9c8
UD
17902011-07-22 Ulrich Drepper <drepper@gmail.com>
1791
1792 * sysdeps/pthread/unwind-forcedunwind.c (_Unwind_Resume): Add read
1793 barrier.
1794 (__gcc_personality_v0): Likewise.
1795 (_Unwind_ForcedUnwind): Likewise.
1796 (_Unwind_GetCFA): Likewise.
1797
4b3d3e28
RM
17982011-07-14 Roland McGrath <roland@hack.frob.com>
1799
1800 * allocatestack.c (__reclaim_stacks): Use uintptr_t cast rather than
1801 UINTMAX_C.
1802
6f8326ca
UD
18032011-06-30 Ulrich Drepper <drepper@gmail.com>
1804
1805 * nptl-init.c (__nptl_set_robust): New function.
1806 (pthread_functions): Add reference.
1807 * npthreadP.h: Declare __nptl_set_robust.
1808 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
1809 ptr_set_robust member.
1810 * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in
1811 child if threads are used.
1812
c71ca1f8
AJ
18132011-06-14 Andreas Jaeger <aj@suse.de>
1814
1815 * pthread_rwlock_init.c: Include <string.h> for memset declaration.
1816
5bdcc103
UD
18172011-05-11 Ulrich Drepper <drepper@gmail.com>
1818
1819 [BZ #386]
1820 * allocatestack.c (allocate_stack): Convert ENOMEM error to EAGAIN.
1821
e6c61494
UD
18222011-04-10 Ulrich Drepper <drepper@gmail.com>
1823
1824 [BZ #12650]
1825 * allocatestack.c (get_cached_stack): Deallocate DTV entries before
1826 clearing memory.
1827 Patch partly by Robert Rex <robert.rex@exasol.com>.
1828
c5be0f71
RM
18292011-01-19 Roland McGrath <roland@redhat.com>
1830
1831 * pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
1832 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
1833 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Likewise.
1834 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
1835 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise.
1836 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise.
1837
1f20b93a
AS
18382011-01-16 Andreas Schwab <schwab@linux-m68k.org>
1839
1840 * Makefile (test-extras): Add tst-cleanup4aux.
1841
70181fdd
UD
18422011-01-14 Ulrich Drepper <drepper@gmail.com>
1843
1844 [BZ #10563]
1845 * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment.
1846 (__SETXID_2): Likewise.
1847 (__SETXID_3): Likewise.
1848
451f001b
UD
18492011-01-13 Ulrich Drepper <drepper@gmail.com>
1850
1851 [BZ #10484]
1852 * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
a85b5cb4 1853 * alloca_cutoff.c: Add libc_hidden_def.
451f001b 1854
f9068148
L
18552010-10-13 H.J. Lu <hongjiu.lu@intel.com>
1856
1857 [BZ #12113]
1858 * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
1859 * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
1860 of "struct pthread".
1861
c3758fee
AS
18622010-09-21 Andreas Schwab <schwab@redhat.com>
1863
1864 * sysdeps/pthread/pthread.h (pthread_cleanup_push)
1865 [!__EXCEPTIONS]: Mangle local variable not_first_call.
1866 (pthread_cleanup_push_defer_np): Likewise.
1867
4ac42e19
UD
18682010-09-03 Ulrich Drepper <drepper@redhat.com>
1869
1870 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Expect blocks are
1871 small.
1872
022f6b89
DG
18732010-08-10 Dinakar Guniguntala <dino@in.ibm.com>
1874 Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
1875
1876 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
1877 FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
1878
f8392f40
L
18792010-08-12 H.J. Lu <hongjiu.lu@intel.com>
1880
93f17abf 1881 * sysdeps/unix/sysv/linux/i386/Makefile: New file.
f8392f40 1882
bebff237
AM
18832010-05-01 Alan Modra <amodra@gmail.com>
1884
1885 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
1886 (PSEUDO): Use correct cr save. Don't use wrong parm save area
1887 to save temps. Correct cfi for possible later frame manipulation.
1888 (DOCARGS_1, UNDOCARGS_1): Use the correct parm save area.
1889 (DOCARGS_2, UNDOCARGS_2, DOCARGS_3, UNDOCARGS_3): Likewise.
1890 (DOCARGS_4, UNDOCARGS_4, DOCARGS_5, UNDOCARGS_5): Likewise.
1891 (DOCARGS_6, UNDOCARGS_6): Likewise.
1892 (CENABLE, CDISABLE): Add nops for non-shared calls.
1893
e8ee8bdf
AS
18942010-07-06 Andreas Schwab <schwab@redhat.com>
1895
1896 * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
1897 Fix type mismatch.
1898
03e87550
UD
18992010-07-03 Ulrich Drepper <drepper@redhat.com>
1900
1901 * tst-abstime.c (do_test): Some more cleanups
1902
145569dc
UD
19032010-07-02 Ulrich Drepper <drepper@redhat.com>
1904
1905 * tst-abstime.c: Correct testing and add test for sem_timedwait.
1906
2983d85e
AS
19072010-07-01 Andreas Schwab <schwab@redhat.com>
1908 Ulrich Drepper <drepper@redhat.com>
1909
1910 * Makefile (tests): Add tst-abstime.
1911 * tst-abstime.c: New file.
1912 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
1913 (__lll_timedlock_wait): Check for timestamp before the Epoch.
1914 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
1915 (__lll_timedlock_wait): Likewise.
1916 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
1917 (__lll_robust_timedlock_wait): Likewise.
1918 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
1919 (__pthread_cond_timedwait): Likewise.
1920 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
1921 (pthread_rwlock_timedrdlock): Likewise.
1922 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
1923 (pthread_rwlock_timedwrlock): Likewise.
1924 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
1925 Likewise.
1926
72b6e8c8
UD
19272010-07-01 Ulrich Drepper <drepper@redhat.com>
1928
1929 * Makefile (tst-_res1): Add tst-_res1mod1 to dependency list.
1930
4bc93b30
TY
19312010-06-01 Takashi Yoshii <takashi.yoshii.zj@renesas.com>
1932
1933 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Fix incorrect
1934 location of ifndef __ASSUME_FUTEX_CLOCK_REALTIME.
1935
86a4c67f
UD
19362010-04-09 Ulrich Drepper <drepper@redhat.com>
1937
1938 [BZ #11390]
1939 * sysdeps/unix/sysv/linux/pthread_getname.c: New file.
1940 * sysdeps/unix/sysv/linux/pthread_setname.c: New file.
1941 * nptl/sysdeps/pthread/pthread.h: Declare pthread_getname and
1942 pthread_setname.
1943 * Makefile (libpthread-routines): Add pthread_getname and
1944 pthread_setname.
1945 * Versions: Export pthread_getname and pthread_setname for GLIBC_2.12.
1946
f571a994
RM
19472010-04-05 Thomas Schwinge <thomas@schwinge.name>
1948
1949 * sysdeps/pthread/unwind-resume.c: Moved to main tree sysdeps/gnu/.
1950 * sysdeps/pthread/rt-unwind-resume.c: Likewise.
1951 * sysdeps/pthread/Makefile: Remove csu section and rt section's
1952 unwind-resume bits, now in main tree sysdeps/gnu/Makefile instead.
1953
7749bf5f
LM
19542010-03-23 Luis Machado <luisgpm@br.ibm.com>
1955
1956 * pthread_cond_timedwait.c: Add check for
1957 HAVE_CLOCK_GETTIME_VSYSCALL to use VDSO whenever possible.
1958 (pthread_cond_timedwait): Use INTERNAL_VSYSCALL instead of
1959 INTERNAL_SYSCALL.
1960
1d78f299
UD
19612010-03-09 Ulrich Drepper <drepper@redhat.com>
1962
1963 * pthread_create.c (__pthread_create_2_1): If priorities are incorrect
1964 and the call fails wake eventually waiting setxid threads. Don't free
1965 stack here if we try starting a thread.
1966 * sysdeps/pthread/createthread.c (do_clone): Only wake setxid waiter
1967 if the clone call failed.
1968
058e9ba9
AS
19692010-03-08 Andreas Schwab <schwab@redhat.com>
1970
1971 * pthread_create.c (__pthread_create_2_1): Don't set setxid_futex.
1972 * allocatestack.c (get_cached_stack): Set setxid_futex.
1973 (allocate_stack): Likewise.
1974
66f1b8ee
UD
19752010-03-05 Andreas Schwab <schwab@redhat.com>
1976 Ulrich Drepper <drepper@redhat.com>
1977
1978 * allocatestack.c (setxid_mark_thread): Delay handling of thread if
1979 it is creating a thread or it is just being created.
1980 * pthread_create.c (start_thread): Wake setxid thread if it is
1981 waiting.
1982 (__pthread_create_2_1): Initialize setxid_futex.
1983 * sysdeps/pthread/createthread.c (do_clone): Wake setxid thread if it
1984 is waiting.
1985
893549c5
MS
19862010-01-15 Ulrich Drepper <drepper@redhat.com>
1987
1988 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1989 Fix unwind info.
1990 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
1991
19922010-01-15 Michal Schmidt <mschmidt@redhat.com>
1993
1994 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
1995 Fix pthread_cond_timedwait with requeue-PI.
1996 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
1997 Fix pthread_cond_wait with requeue-PI.
1998
402cd987
UD
19992010-01-14 Ulrich Drepper <drepper@redhat.com>
2000
78ee2185
UD
2001 * Versions: Add pthread_mutex_consistent, pthread_mutexattr_getrobust,
2002 and pthread_mutexattr_setrobust for GLIBC_2.12.
402cd987 2003 * pthread_mutex_consistent.c: Define alias pthread_mutex_consistent.
78ee2185
UD
2004 * pthread_mutexattr_getrobust.c: Define alias
2005 pthread_mutexattr_getrobust.
2006 * pthread_mutexattr_setrobust.c: Define alias
2007 pthread_mutexattr_setrobust.
402cd987 2008
d3c7e686
UD
20092010-01-12 Ulrich Drepper <drepper@redhat.com>
2010
2011 * sysdeps/pthread/pthread.h: Cleanup. Fix up for XPG7.
2012
f095bb72
UD
20132010-01-08 Ulrich Drepper <drepper@redhat.com>
2014
2015 * sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration.
2016
d34bd80f
TS
20172009-12-18 Thomas Schwinge <thomas@codesourcery.com>
2018
2019 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't
2020 call __gmon_start__.
2021 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (_init): Likewise.
2022
f01c2359
UD
20232009-12-17 Ulrich Drepper <drepper@redhat.com>
2024
2025 * pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by
2026 using memset.
2027
75956694
DG
20282009-12-01 Dinakar Guniguntala <dino@in.ibm.com>
2029
2030 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
2031 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
2032 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: If mutex
2033 is a non robust PI mutex, then use FUTEX_CMP_REQUEUE_PI.
2034 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
2035 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: If mutex
2036 is a non robust PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
2037 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
2038
9554ebf2
UD
20392009-12-12 Ulrich Drepper <drepper@redhat.com>
2040
2041 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
2042 Don't update nwaiters after invalid timeout is recognized.
2043
ebb92a49
TS
20442009-11-27 Thomas Schwinge <thomas@codesourcery.com>
2045
2046 * sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call
2047 __gmon_start__.
2048
b55ec98c
AS
20492009-11-27 Andreas Schwab <schwab@redhat.com>
2050
2051 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Reload
2052 THREAD_SELF->cancelhandling after returning from futex call.
2053
80b3a4ea
UD
20542009-11-24 Ulrich Drepper <drepper@redhat.com>
2055
2056 * tst-sem13.c: New file.
2057 * Makefile (tests): Add tst-sem13.
2058
57a299fe
RM
20592009-11-22 Roland McGrath <roland@redhat.com>
2060
2061 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: # include "i686/dl-sysdep.h"
2062 instead of recapitulating its contents.
2063
dfedb126
UD
20642009-11-18 Ulrich Drepper <drepper@redhat.com>
2065
2066 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
2067 optimizations and cleanups.
2068
dd7106b3
DG
20692009-11-18 Dinakar Guniguntala <dino@in.ibm.com>
2070
2071 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
2072 Remove redundant code. Fix cfi offsets.
2073 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
2074 Fix cfi offsets.
2075
f8c10bb4
UD
20762009-11-17 Ulrich Drepper <drepper@redhat.com>
2077
62616842
UD
2078 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally
2079 reduce size of unwind info.
2080
f8c10bb4
UD
2081 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use
2082 cfi directives.
2083 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
2084 Based on a patch by Dinakar Guniguntala <dino@in.ibm.com>.
2085
13f6812f
AS
20862009-11-03 Andreas Schwab <schwab@linux-m68k.org>
2087
2088 [BZ #4457]
2089 * sysdeps/pthread/unwind-resume.c: Include <libgcc_s.h> and use
2090 LIBGCC_S_SO.
2091 * sysdeps/pthread/unwind-forcedunwind.c: Likewise.
2092
25db0f6c
DJ
20932009-10-30 Ulrich Drepper <drepper@redhat.com>
2094
9c04f7c1
UD
2095 * tst-sem11.c (main): Rewrite to avoid aliasing problems.
2096
25db0f6c
DJ
2097 [BZ #3270]
2098 * allocatestack.c (__nptl_setxid): Perform the operation in multiple
2099 steps to avoid races with creation and terminations.
2100 * nptl-init.c (sighandler_setxid): Adjust.
2101 Patch by Daniel Jacobowitz.
2102
3d60eb17
AS
21032009-09-07 Andreas Schwab <schwab@redhat.com>
2104
2105 * sysdeps/pthread/bits/libc-lock.h (BP_SYM): Remove space before paren.
2106
38eb6136
SP
21072009-09-02 Suzuki K P <suzuki@in.ibm.com>
2108 Joseph Myers <joseph@codesourcery.com>
2109
2110 [BZ #7094]
2111 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
2112 Initialize the sigev_notify field for newly created timer to make sure
01034d75 2113 the timer gets deleted from the active timer's list upon timer_delete.
38eb6136 2114
7812c65b
AS
21152009-08-27 Andrew Stubbs <ams@codesourcery.com>
2116
2117 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
2118 Correct a logic error.
2119
84088310
UD
21202009-08-25 Ulrich Drepper <drepper@redhat.com>
2121
2122 * sysdeps/x86_64/tls.h (RTLD_ENABLE_FOREIGN_CALL): Store old value
2123 of the field in local variables.
2124 (RTLD_FINALIZE_FOREIGN_CALL): Restore rtld_must_xmm_save from local
2125 variable and don't unconditionally clear it.
2126
b42a214c
UD
21272009-08-24 Ulrich Drepper <drepper@redhat.com>
2128
2129 * pthread_create.c (start_thread): Hint to the kernel that memory for
2130 the stack can be reused. We do not mark all the memory. The part
2131 still in use and some reserve are kept.
2132
2d094b73
UD
21332009-08-23 Ulrich Drepper <drepper@redhat.com>
2134
2135 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Clean up namespace.
2136
ae0d5450
UD
21372009-08-11 Ulrich Drepper <drepper@redhat.com>
2138
2139 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Add CFI
2140 directives.
2141
1bc2b97e
UD
21422009-08-10 Ulrich Drepper <drepper@redhat.com>
2143
2144 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Add CFI
2145 directives.
2146 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
2147
ec492239
AS
21482009-08-10 Andreas Schwab <schwab@redhat.com>
2149
2150 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
2151 (__pthread_cond_signal): Don't clobber register used for syscall
2152 number.
2153
49eea97b
UD
21542009-08-08 Ulrich Drepper <drepper@redhat.com>
2155
efa0569d
UD
2156 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2157 Optimize code path used when FUTEX_CLOCK_REALTIME is supported.
2158
49eea97b
UD
2159 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2160 (__pthread_cond_wait): Optimize by avoiding use of callee-safe
2161 register.
2162
9083bcc5
UD
21632009-08-07 Ulrich Drepper <drepper@redhat.com>
2164
2165 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Little optimizations
2166 enabled by the special *_asynccancel functions.
2167 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2168 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2169
2170 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock.h.
2171
421665c4
UD
21722009-08-04 Ulrich Drepper <drepper@redhat.com>
2173
2174 * sysdeps/unix/sysv/linux/x86_64/cancellation.S: New file.
2175 * sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S: New file.
2176 * sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S: New file.
2177 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Optimize
2178 since we can assume the special __*_{en,dis}able_asynccancel
2179 functions.
2180 (PUSHARGS_*, POPARGS_*, SAVESTK_*, RESTSTK_*): Removed.
2181 * sysdeps/x86_64/tcb-offsets.sym: Add cancellation-related bits
2182 and PTHREAD_CANCELED.
2183
bd03a1af
UD
21842009-07-31 Ulrich Drepper <drepper@redhat.com>
2185
2186 * descr.h: Better definition of *_BITMASK macros for cancellation.
2187
b48a267b
UD
21882009-07-29 Ulrich Drepper <drepper@redhat.com>
2189
586fa886
UD
2190 * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.
2191
b48a267b 2192 * sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
586fa886
UD
2193 dynamic linker might have to save.
2194 Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
2195 RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL. Pretty
2196 printing.
2197
b48a267b
UD
2198 * sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.
2199
b0948ffd
UD
22002009-07-28 Ulrich Drepper <drepper@redhat.com>
2201
2202 * pthread_mutex_lock.c [NO_INCR] (__pthread_mutex_cond_lock_adjust):
2203 New function.
2204 * pthreadP.h: Declare __pthread_mutex_cond_lock_adjust.
2205 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add ROBUST_BIT.
2206 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Don't use
2207 requeue_pi for robust mutexes.
2208 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
2209 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2210 Don't only skip __pthread_mutex_cond_lock. Call instead
2211 __pthread_mutex_cond_lock_adjust.
2212 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2213
2214 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Minor
2215 optimization of PI mutex handling.
2216
e73e694e
UD
22172009-07-27 Ulrich Drepper <drepper@redhat.com>
2218
2219 [BZ #10418]
2220 * pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel
2221 instead of of _acq variants of cmpxchg.
2222
f1adf1f4
UD
22232009-07-23 Ulrich Drepper <drepper@redhat.com>
2224
01b597da
UD
2225 * sysdeps/x86_64/configure.in: New file.
2226
f1adf1f4
UD
2227 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
2228 path when not using absolute timeout futex.
2229
c3db953c
UD
22302009-07-20 Ulrich Drepper <drepper@redhat.com>
2231
2232 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
2233 optimizations of last changes.
2234 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
2235
515a8908
UD
22362009-07-19 Ulrich Drepper <drepper@redhat.com>
2237
42e69bcf
UD
2238 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
2239 FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
2240 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: If mutex
2241 is a PI mutex, then use FUTEX_CMP_REQUEUE_PI.
2242 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
2243 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: If mutex
2244 is a PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
2245 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
2246
515a8908
UD
2247 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2248 (__pthread_cond_timedwait): Make more robust.
2249
30b1954a
UD
22502009-07-18 Ulrich Drepper <drepper@redhat.com>
2251
e2dca2fe
UD
2252 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
2253 (__lll_robust_timedlock_wait): If possible use FUTEX_WAIT_BITSET to
2254 directly use absolute timeout.
2255
3d77b268
UD
2256 * tst-sem5.c (do_test): Add test for premature timeout.
2257 * Makefile: Linu tst-sem5 with librt.
2258
d979611e
UD
2259 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
2260 (pthread_rwlock_timedwrlock): If possible use FUTEX_WAIT_BITSET to
2261 directly use absolute timeout.
32c6c342
UD
2262 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
2263 (pthread_rwlock_timedrdlock): Likewise.
d979611e 2264
f8b6cd21
UD
2265 * tst-cond11.c (run_test): Add test to check that the timeout is
2266 long enough.
2267
e88726b4
UD
2268 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2269 (__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
2270 directly use absolute timeout.
2271
30b1954a
UD
2272 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2273 (__pthread_cond_wait): Convert to using exception handler instead of
2274 registered unwind buffer.
92618c95
UD
2275 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2276 (__pthread_cond_timedwait): Likewise.
30b1954a 2277
d52c96e7
UD
22782009-07-17 Ulrich Drepper <drepper@redhat.com>
2279
f351f2b7
UD
2280 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2281 If possible use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME to directly
2282 use absolute timeout.
2283
0adae468
UD
2284 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Optimize
2285 handling of uncontested semaphore.
2286
d52c96e7
UD
2287 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2288 (__condvar_cleanup): Rewrite to use cfi directives instead of
2289 hand-coded unwind tables.
63601ccd
UD
2290 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S (__pthread_once):
2291 Likewise.
c3c2f3cf 2292 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
aee2665a
UD
2293 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
2294 Likewise.
d52c96e7 2295
bfdb73e1
UD
22962009-06-12 Ulrich Drepper <drepper@redhat.com>
2297
2298 * Makefile (libpthread-routines): Add pthread_sigqueue.
2299 * Versions: Add pthread_sigqueue for GLIBC_2.11.
2300 * sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
2301 * sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.
2302
1828530f
BK
23032009-06-11 Ulrich Drepper <drepper@redhat.com>
2304
2305 [BZ #10262]
2306 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
2307 (LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
2308 cannot be assumed.
2309 Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.
2310
a5b8b56d
UD
23112009-05-16 Ulrich Drepper <drepper@redhat.com>
2312
e20c4ef0
UD
2313 * libc-cancellation.c: Move __libc_cleanup_routine to...
2314 * libc-cleanup.c: ...here. New file.
2315 * Makefile (routines): Add libc-cleanup.
2316
cba0ca79
UD
2317 * cancellation.c (__pthread_disable_asynccancel): Remove unnecessary
2318 test.
2319 * libc-cancellation.c: Use <nptl/cancellation.c: to define the code.
2320 * sysdeps/pthread/librt-cancellation.c: Likewise.
2321
a5b8b56d
UD
2322 [BZ #9924]
2323 * nptl-init.c: Renamed from init.c.
2324 * Makefile: Change all occurences of init.c to nptl-init.c.
2325
1a7f254b
UD
23262009-05-15 Ulrich Drepper <drepper@redhat.com>
2327
9437b427
UD
2328 * cancellation.c (__pthread_disable_asynccancel): Correct the bits
2329 to test when deciding on the delay.
2330 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2331 * pthread_cancel.c: Close race between deciding on sending a signal
2332 and setting the CANCELING_BIT bit.
2333
1a7f254b
UD
2334 * cancellation.c (__pthread_disable_asynccancel): Don't return if
2335 thread is canceled.
2336 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2337
d5c157a9
UD
23382009-04-27 Ulrich Drepper <drepper@redhat.com>
2339
2340 * cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
2341 is available.
2342 * libc-cancellation.c (__libc_disable_asynccancel): Likewise.
2343 * sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
2344 * sysdeps/i386/tls.h: Likewise.
2345 (tcbhead_t): Add __private_tm member.
2346
f521be31
UD
23472009-04-26 Ulrich Drepper <drepper@redhat.com>
2348
5efe8650
UD
2349 * sem_open.c (sem_open): Rewrite initialization of initsem to
2350 avoid warnings.
2351
f521be31
UD
2352 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
2353 Avoid warning by using may_alias attribute on ptrhack.
2354
d301a6e1
UD
23552009-04-22 Ulrich Drepper <drepper@redhat.com>
2356
5497de87 2357 [BZ #10090]
d301a6e1
UD
2358 * pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
2359 Check policy and priority for validity.
2360 Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
2361
71a5bd3e
UD
23622009-03-15 Ulrich Drepper <drepper@redhat.com>
2363
2364 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2365 (__pthread_cond_timedwait): Change to use cfi directives instead of
2366 hand-coded unwind sections.
2367
30991b8b
UD
23682009-03-10 Ulrich Drepper <drepper@redhat.com>
2369
2370 * init.c (nptl_freeres): Compile only for SHARED.
2371
9920a6b8
JJ
23722009-03-09 Jakub Jelinek <jakub@redhat.com>
2373
2374 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
2375 FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
2376 FUTEX_BITSET_MATCH_ANY.
2377
e965d514
RM
23782009-02-27 Roland McGrath <roland@redhat.com>
2379
2380 * init.c (__nptl_initial_report_events): Mark __attribute_used__.
2381 * pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
2382
6cbe890a
UD
23832009-02-26 Ulrich Drepper <drepper@redhat.com>
2384
2385 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
2386 _POSIX_THREAD_ROBUST_PRIO_INHERIT and
2387 _POSIX_THREAD_ROBUST_PRIO_PROTECT. Reset value of macros from
2388 200112L to 200809L.
2389
77db439e
UD
23902009-02-25 Ulrich Drepper <drepper@redhat.com>
2391
2392 * sysdeps/pthread/pthread.h: The robust mutex functions are in
2393 POSIX 2008.
2394
5be0a688
UD
23952009-02-24 Ulrich Drepper <drepper@redhat.com>
2396
2397 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
2398 Unify name of include protector macro.
2399
4c869eb6
UD
24002009-02-14 SUGIOKA Toshinobu <sugioka@itonet.co.jp>
2401
2402 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
2403 LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
2404
cca50323
UD
24052009-01-29 Ulrich Drepper <drepper@redhat.com>
2406
7f901dd7
UD
2407 * sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
2408 pointer variables.
2409
cca50323
UD
2410 * allocatestack.c (__free_stacks): Renamed from free_stacks.
2411 (__free_stack_cache): Removed. Change callers to call __free_stacks.
2412 * init.c (nptl_freeres): New function.
2413 (pthread_functions): Initialize ptr_freeres to nptl_freeres.
2414 * pthreadP.h: Don't declare __free_stack_cache. Declare __free_stacks.
2415 * sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
2416 variable.
2417 (pthread_cancel_init): Depend in libgcc_s_handle for decision to
2418 load DSO. Assign last.
2419 (__unwind_freeres): New function.
2420
2421 * allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
2422 for better debugging. No need to use stack_list_add here.
2423
a7bd183f
UD
24242009-01-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2425
2426 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
2427 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
2428 instead of computing relative timeout.
2429 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
2430 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
2431
563ee1cb
UD
24322009-01-25 Ulrich Drepper <drepper@redhat.com>
2433
2434 * pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
2435
f25c7b08
UD
24362009-01-08 Ulrich Drepper <drepper@redhat.com>
2437
2438 * sysdeps/pthread/list.h (list_add): Initialize new element first.
2439 (list_add_tail): Removed.
2440
40de0fe3
JJ
24412009-01-07 Ulrich Drepper <drepper@redhat.com>
2442
2443 * (in_flight_stack): New variable.
2444 (stack_list_del): New function. Use instead of list_del.
2445 (stack_list_add): New function. Use instead of list_add when adding to
2446 stack_cache and stack_used lists.
2447 (__reclaim_stacks): Complete operations on stack_cache and stack_used lists
2448 when the fork call interrupted another thread.
2449
3c612057
UD
24502009-01-04 Ulrich Drepper <drepper@redhat.com>
2451
2452 * init.c (__pthread_initialize_minimal_internal): Optimize test
2453 FUTEX_CLOCK_REALTIME a bit.
2454
19834b42
UD
24552009-01-03 Ulrich Drepper <drepper@redhat.com>
2456
2457 * init.c (__pthread_initialize_minimal_internal): Cheat a bit by
2458 only passing five parameters to FUTEX_WAIT_BITSET call.
2459
2460 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a9fa090b 2461 (__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
19834b42
UD
2462 instead of computing relative timeout.
2463
7dd650d7
UD
24642009-01-02 Ulrich Drepper <drepper@redhat.com>
2465
cbd8aeb8
UD
2466 * init.c (__pthread_initialize_minimal_internal): Check for
2467 FUTEX_CLOCK_REALTIME flag.
2468 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
a9fa090b 2469 Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
cbd8aeb8
UD
2470 relative timeout.
2471
7dd650d7
UD
2472 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
2473 FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
2474 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
2475 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2476 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2477 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2478
217d45cd
UD
24792008-12-09 Ulrich Drepper <drepper@redhat.com>
2480
2481 * sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
2482 loop body instead of ; to avoid gcc warnings.
2483 (pthread_cleanup_pop_restore_np): Likewise.
2484 Patch by Caolán McNamara <caolanm@redhat.com>.
2485
6de79a49
UD
24862008-12-09 Jakub Jelinek <jakub@redhat.com>
2487
2488 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
2489 fast path here, for robust/PI/PP mutexes call
2490 __pthread_mutex_lock_full. Don't use switch, instead use a series
2491 of ifs according to their probability.
2492 (__pthread_mutex_lock_full): New function.
2493 * pthread_mutex_unlock.c: Include assert.h.
2494 (__pthread_mutex_unlock_usercnt): Handle only the
2495 fast path here, for robust/PI/PP mutexes call
2496 __pthread_mutex_unlock_full. Don't use switch, instead use a series
2497 of ifs according to their probability.
2498 (__pthread_mutex_unlock_full): New function.
2499 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
2500 (__pthread_mutex_lock_full): Define.
2501
71bb2639
UD
25022008-12-08 Ulrich Drepper <drepper@redhat.com>
2503
2504 * sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
2505 implementation. Add necessary padding and.
2506 * descr.h (struct pthread): Increase padding for tcbhead_t to 24
2507 words.
2508
247626f3
UD
25092008-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2510
2511 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
2512 and FUTEX_WAKE_BITSET.
2513
da5ac135
UD
25142008-12-02 Ulrich Drepper <drepper@redhat.com>
2515
2516 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
2517 and FUTEX_WAKE_BITSET.
2518 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
2519 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
2520 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
2521 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
2522
c0439b95
RM
25232008-11-25 Roland McGrath <roland@redhat.com>
2524
2525 * sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
2526 Subdirectories moved to ports repository as
2527 sysdeps/.../nptl subdirectories.
2528
0e54a725
UD
25292008-11-12 Jakub Jelinek <jakub@redhat.com>
2530
2531 [BZ #7008]
2532 * pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
2533 of old value.
2534 * pthread_cond_init.c (__pthread_cond_init): Fix
2535 cond->__data.__nwaiters initialization.
2536 * Makefile (tests): Add tst-cond23.
2537 * tst-cond23.c: New test.
2538
4b23f9bd
JJ
25392008-11-07 Jakub Jelinek <jakub@redhat.com>
2540
2541 * sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
2542 arguments.
2543 (tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
2544 arguments.
2545
efac1fce
UD
25462008-11-01 Ulrich Drepper <drepper@redhat.com>
2547
2548 [BZ #6955]
2549 * pthread_mutex_lock.c: Add support for private PI mutexes.
2550 * pthread_mutex_timedlock.c: Likewise.
2551 * pthread_mutex_trylock.c: Likewise.
2552 * pthread_mutex_unlock.c: Likewise.
2553 Patch mostly by Ben Jackson <ben@ben.com>.
2554
bf837fa3
UD
25552008-10-31 Ulrich Drepper <drepper@redhat.com>
2556
2557 [BZ #6843]
2558 * sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
2559 Increase stack size for helper thread.
2560
208bc836
UD
25612008-10-06 Martin Schwidefsky <schwidefsky@de.ibm.com>
2562
2563 * sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
2564 assembly with a clobber list for access registers a0 and a1.
2565
17f8b4a9
UD
25662008-09-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
2567
2568 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
2569 to force runp->refcntr to be read from memory.
2570
2458c748
AJ
25712008-09-08 Richard Guenther <rguenther@suse.de>
2572
2573 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
2574 lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
2575 lll_timedlock, lll_robust_timedlock, lll_unlock,
2576 lll_robust_unlock): Promote private to int.
2577
965805e8
UD
25782008-08-15 Ulrich Drepper <drepper@redhat.com>
2579
2580 * sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
2581 ARCH_RETRY_MMAP definitions.
2582 * allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
2583 Define MAP_STACK when not defined.
2584 (allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS. Remove
2585 handling of ARCH_RETRY_MMAP.
2586
bd7f4857
UD
25872008-07-30 Ulrich Drepper <drepper@redhat.com>
2588
2589 * tst-align2.c (f): Print message that f is reached.
2590
619cc2f6
UD
25912008-04-28 Hiroki Kaminaga <kaminaga@sm.sony.co.jp>
2592
2593 [BZ #6740]
2594 * sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
2595 definition with #ifndef __ASSUME_PRIVATE_FUTEX.
2596
8ccf22f9
UD
25972008-07-25 Ulrich Drepper <drepper@redhat.com>
2598
2599 * sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
2600 SOCK_CLOEXEC if possible.
2601
26022008-05-29 Ulrich Drepper <drepper@redhat.com>
2603
2604 * Makefile (tests): Add tst-rwlock2a.
2605 * tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
2606 * tst-rwlock2a.c: New file.
2607
5a337776
UD
26082008-06-12 Ulrich Drepper <drepper@redhat.com>
2609
2610 * sysdeps/pthread/pthread.h: Remove inadvertant checkin.
2611
e4d6e7f5
UD
26122008-05-17 Samuel Thibault <samuel.thibault@ens-lyon.org>
2613
2614 * sysdeps/pthread/pthread.h: Fix typo in comment.
2615
d6296e88
UD
26162008-05-28 Ulrich Drepper <drepper@redhat.com>
2617
2618 * sysdeps/pthread/createthread.c (do_clone): Pass accurate length
2619 of CPU set to the kernel.
2620
62605cbf
UD
26212008-05-23 Paul Pluzhnikov <ppluzhnikov@google.com>
2622
2623 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
2624 cfi directives.
2625 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
2626 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
2627 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
2628 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
2629 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
2630 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
2631
26322008-05-22 Paul Pluzhnikov <ppluzhnikov@google.com>
2633
2634 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
2635 cfi directives.
2636 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2637 Likewise.
2638 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
2639 Likewise.
2640 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
2641 Likewise.
2642
4b2c85c0
UD
26432008-05-26 Ulrich Drepper <drepper@redhat.com>
2644
2645 * tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
2646
b72f5692 26472008-05-20 Jakub Jelinek <jakub@redhat.com>
4b2c85c0
UD
2648
2649 David S. Miller <davem@davemloft.net>
3b15b590 2650
b72f5692 2651 * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
3b15b590 2652
cdffaaa6
UD
26532008-05-10 Ulrich Drepper <drepper@redhat.com>
2654
2655 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
2656 __pshared correctly.
2657 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
2658 Likewise.
2659 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
2660 Likewise.
2661 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
2662 Likewise.
2663 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
2664 Likewise.
2665 Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
2666
2313c48f
JJ
26672008-04-14 David S. Miller <davem@davemloft.net>
2668
2669 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
2670 (__old_sem_wait): Fix argument to lll_futex_wait().
2671
2f611ada
UD
26722007-11-26 Daniel Jacobowitz <dan@codesourcery.com>
2673
2674 * pthread_create.c: Require pthread_mutex_trylock and
2675 pthread_key_delete for libgcc.
2676
d24be489
JJ
26772008-04-08 Jakub Jelinek <jakub@redhat.com>
2678
2679 [BZ #6020]
2680 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h
2681 (lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
2682 Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
2683
f96853be
UD
26842008-03-27 Ulrich Drepper <drepper@redhat.com>
2685
8ccf22f9 2686 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
f96853be
UD
2687 <linux/limits.h> has defined it.
2688 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
2689 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
2690 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
2691 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
2692
354b7527
JJ
26932008-03-18 Jakub Jelinek <jakub@redhat.com>
2694
2695 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
2696 of ASSEMBLER.
2697 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
2698 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
2699
702ae329
UD
27002008-03-14 Ulrich Drepper <drepper@redhat.com>
2701
2702 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
2703 HAVE_DL_DISCOVER_OSVERSION.
2704 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
2705 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
2706
443db178
UD
27072008-03-07 Ulrich Drepper <drepper@redhat.com>
2708
2709 [BZ #5778]
2710 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
2711 _POSIX_CHOWN_RESTRICTED value to zero.
2712
67fbfa5c
RM
27132008-01-31 Roland McGrath <roland@redhat.com>
2714
2715 * Makefile (omit-deps): Variable removed.
2716
dd3113da
UD
27172008-01-30 Ulrich Drepper <drepper@redhat.com>
2718
2719 * sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
2720 unnecessary addr32 prefix.
2721
16cd816f
RM
27222008-01-29 Roland McGrath <roland@redhat.com>
2723
2724 * Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
2725
b4b166af
UD
27262008-01-22 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2727
2728 * sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
2729
27302008-01-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2731
2732 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
2733 a scratch register.
2734 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
2735 (__lll_lock_wait_private): Fix typo.
2736 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
2737 (pthread_barrier_wait): Likewise. Adjust XADD use.
2738 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
2739 Adjust XADD use.
2740 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
2741 (pthread_rwlock_timedrdlock): Return correct return value.
2742 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
16cd816f 2743 (pthread_rwlock_timedwrlock): Likewise.
b4b166af 2744
eaf95a26
UD
27452008-01-15 Ulrich Drepper <drepper@redhat.com>
2746
2747 * tst-eintr2.c (do_test): make sure that if mutex_lock in main
2748 thread returns the program exits with an error code.
2749
ab355d9a
UD
27502008-01-10 Ulrich Drepper <drepper@redhat.com>
2751
2752 * pthread-errnos.sym: Add EOVERFLOW.
2753 * sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
2754 * sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
2755 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
2756 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
2757
b8cca206
UD
27582007-12-14 Ulrich Drepper <drepper@redhat.com>
2759
2760 * sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
2761 parameter. Passed it as permission to mmap.
2762 * allocatestack.c (allocate_stack): Pass prot as second parameter
2763 to ARCH_RETRY_MMAP.
2764
189dce4f
UD
27652007-12-12 Ulrich Drepper <drepper@redhat.com>
2766
3eb0e1c6
UD
2767 * tst-basic7.c: Allocate memory for the stack.
2768
189dce4f
UD
2769 [BZ #5465]
2770 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
2771 (__pthread_cond_timedwait): Don't use VDSO.
58d11795 2772 Patch by Michal Januszewski.
189dce4f 2773
26e21e75
UD
27742007-12-07 Ulrich Drepper <drepper@redhat.com>
2775
2776 [BZ #5455]
2777 * sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
2778 Allow label before pthread_cleanup_pop.
2779 (pthread_cleanup_pop_restore_np): Likewise.
2780
191ec77f
UD
27812007-12-04 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2782
2783 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
2784 Store 2 before returning ETIMEDOUT.
2785
c012be6f
UD
27862007-11-23 Ulrich Drepper <drepper@redhat.com>
2787
2788 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
2789 Store 2 before returning ETIMEDOUT.
2790 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
2791 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
2792 (__lll_lock_wait_private): Optimize.
2793 (__lll_lock_wait): Likewise.
2794
77f1e09a
UD
27952007-11-20 Jakub Jelinek <jakub@redhat.com>
2796
2797 * sysdeps/pthread/pthread.h (pthread_cleanup_push,
2798 pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
2799 g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
2800
0f7e0ee5
UD
28012007-11-08 Ulrich Drepper <drepper@redhat.com>
2802
cbed6a60
UD
2803 [BZ #5240]
2804 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
2805 If we time out, try one last time to lock the futex to avoid
2806 losing a wakeup signal.
2807 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
2808 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
2809
0f7e0ee5
UD
2810 [BZ #5245]
2811 * sysdeps/pthread/createthread.c (do_clone): Translate clone error
2812 if necessary.
2813
f6ed654c
UD
28142007-11-07 Ulrich Drepper <drepper@redhat.com>
2815
2816 [BZ #5245]
2817 * allocatestack.c (allocate_stack): Change ENOMEM error in case
2818 mmap failed to EAGAIN.
2819 * Makefile (tests): Add tst-basic7.
2820 * tst-basic7.c: New file.
2821
b92e3780
UD
28222007-11-05 Ulrich Drepper <drepper@redhat.com>
2823
2824 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
2825 Use __linkin_atfork.
2826
94a749f6
UD
28272007-11-03 Mike Frysinger <vapier@gentoo.org>
2828
2829 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
2830 missing line continuations.
2831 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
2832 LOAD_FUTEX_WAKE): Likewise. Also add missing 3rd parameter.
2833
f160a450
UD
28342007-10-28 Ulrich Drepper <drepper@redhat.com>
2835
2836 [BZ #5220]
2837 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
2838 __active_timer_sigev_thread and __active_timer_sigev_thread_lock.
2839 (struct timer): Add next element.
2840 * sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
2841 enqueue timer structure into __active_timer_sigev_thread list.
2842 * sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
2843 remove timer struct from __active_timer_sigev_thread.
2844 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
2845 Before using timer structure make sure it is still on the
2846 __active_timer_sigev_thread list. Keep lock until done.
2847 Define __active_timer_sigev_thread and
2848 __active_timer_sigev_thread_lock.
2849
94833f11
UD
28502007-10-27 Ulrich Drepper <drepper@redhat.com>
2851
2852 * sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
2853 Redefine thread_atfork for use of ATFORK_MEM.
2854 * sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
2855 * sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
2856 function.
2857 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
2858 Use atomic operation when removing first element of list.
2859
96c06e08
JJ
28602007-10-17 Jakub Jelinek <jakub@redhat.com>
2861
2862 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
2863 routine instead of an alias to __new_sem_post.
2864
e807818b
JJ
28652007-10-15 Jakub Jelinek <jakub@redhat.com>
2866
2867 * init.c (__pthread_initialize_minimal): Initialize word to appease
2868 valgrind.
2869
59d430c6
UD
28702007-10-10 Jakub Jelinek <jakub@redhat.com>
2871
2872 * sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
2873 libc.so just clear NAME.
2874 (__libc_rwlock_fini): Nop inside of libc.so.
2875 * tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
2876 all zeros.
2877
221d9d8e
UD
28782007-09-02 Ulrich Drepper <drepper@redhat.com>
2879
2880 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
2881 (__pthread_cond_wait): Fix unlocking of internal lock after mutex
2882 unlocking failed.
2883 Patch by Luca Barbieri <luca.barbieri@gmail.com>.
2884
2a01ce56
UD
28852007-08-21 Ulrich Drepper <drepper@redhat.com>
2886
2887 [BZ #4938]
2888 * allocatestack.c (__reclaim_stacks): Clear the TSD in the
2889 reclaimed stack if necessary.
2890 * Makefile (tests): Add tst-tsd6.
2891 * tst-tsd6.c: New file.
2892
c273641b
JJ
28932007-08-21 Jakub Jelinek <jakub@redhat.com>
2894
2895 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
2896 Add private argument.
2897
fb84593c
UD
28982007-08-20 Ulrich Drepper <drepper@redhat.com>
2899
2900 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
2901 (__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
2902
3e8d1eab
JJ
29032007-08-16 Jakub Jelinek <jakub@redhat.com>
2904
2905 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h
2906 (__lll_robust_timedlock): Pass private as last argument to
2907 __lll_robust_timedlock_wait.
2908 (__lll_unlock): Fix a pasto.
2909
e4720b0e
JJ
29102007-08-15 Jakub Jelinek <jakub@redhat.com>
2911
2912 * sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
2913 sparc_old_sem): New structs.
2914 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
2915 (__sem_wait_cleanup): New function.
2916 (__new_sem_wait): Use sparc_new_sem structure. Bump and afterwards
2917 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
2918 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2919 lll_futex_wait.
2920 (__old_sem_wait): New function.
2921 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
2922 nptl/sysdeps/unix/sysv/linux/sparc version.
2923 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
2924 Likewise.
2925 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
2926 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
2927 (__new_sem_trywait): Use sparc_old_sem structure.
2928 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
2929 (sem_timedwait): Use sparc_new_sem structure. Bump and afterwards
2930 decrease nwaiters. Register __sem_wait_cleanup as cleanup handler.
2931 Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2932 lll_futex_timed_wait.
2933 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
2934 Use sparc_new_sem structure. Only wake if nwaiters > 0. Pass
2935 isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
2936 lll_futex_wake.
2937 (__old_sem_post): New function.
2938 * sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
2939 * sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
2940 * sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
2941 * sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
2942 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
2943 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
2944
d13f4a43
UD
29452007-08-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
2946
2947 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
2948 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
2949 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2950 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
2951 * sysdeps/unix/sysv/linux/shpthread_cond_signal.S
2952 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
2953 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2954 Use FUTEX_WAKE_OP.
2955 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
2956 kernel-features.h and tcb-offsets.h.
2957 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
2958 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2959 process private.
2960 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
2961 tcb-offsets.h.
2962 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
2963 to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
2964 process private.
2965 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
2966 __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
2967 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
2968 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
2969 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
2970 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
2971 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
2972
702a9414
JJ
29732007-08-14 Jakub Jelinek <jakub@redhat.com>
2974
467d1345
JJ
2975 * sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
2976 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
2977 (__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
2978 lll_futex_timed_wait.
2979
702a9414
JJ
2980 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
2981 __lll_robust_unlock): Rewrite as macros instead of inline functions.
2982 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
2983 __lll_robust_unlock, __lll_wait_tid): Likewise.
2984
22502ea2
UD
29852007-08-13 Jakub Jelinek <jakub@redhat.com>
2986
2987 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
2988 Fix a pasto.
2989 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
2990 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
2991 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2992 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
2993 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
2994 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
2995 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
2996 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
2997 kernel-features.h.
2998 (__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
2999 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
3000 process private. Switch DW_CFA_advance_loc1 and some
3001 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
3002 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
3003 (__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
3004 lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
3005 process private. Switch DW_CFA_advance_loc{1,2} and some
3006 DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
3007 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
3008 #ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
3009 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3010 Likewise.
3011 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3012 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3013 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3014 Likewise.
3015 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
3016 (__pthread_cond_broadcast): Compare %r8 instead of
3017 dep_mutex-cond_*(%rdi) with $-1.
3018 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3019 (__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
3020 of oring.
3021
4baf59ad
UD
30222007-08-13 Ulrich Drepper <drepper@redhat.com>
3023
3024 * sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
3025
9c6f6953
UD
30262007-08-13 Jakub Jelinek <jakub@redhat.com>
3027
3028 * allocatestack.c: Include kernel-features.h.
3029 * pthread_create.c: Likewise.
3030 * pthread_mutex_init.c: Likewise.
3031 * init.c: Likewise.
3032 * pthread_cond_timedwait.c: Likewise.
3033 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
3034 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3035 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
3036 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
3037 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
3038 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
3039 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3040 Likewise.
3041 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3042 Likewise.
3043 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3044 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3045 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3046 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
3047
974a1f0f
UD
30482007-08-12 Jakub Jelinek <jakub@redhat.com>
3049
3050 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
3051 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
3052 byte elements. One of them is the new __shared element.
3053 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
3054 adjust names of other padding elements.
3055 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
3056 [__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
3057 byte elements. One of them is the new __shared element.
3058 [__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
3059 adjust names of other padding elements.
3060 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
3061 Renamed __pad1 element to __shared, adjust names of other padding
3062 elements.
3063 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
3064 (pthread_rwlock_t): Likewise.
3065 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
3066 typo.
3067
30682007-08-09 Anton Blanchard <anton@samba.org>
3069
3070 * sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
3071
f47e2626
UD
30722007-08-12 Ulrich Drepper <drepper@redhat.com>
3073
3074 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
3075 <kernel-features.h>.
3076 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
3077
5bd8a249
UD
30782007-08-11 Ulrich Drepper <drepper@redhat.com>
3079
3080 * pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
3081 * pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
3082 dealing with robust mutexes.
3083 * pthread_mutex_timedlock.c: Likewise.
3084 * pthread_mutex_trylock.c: Likewise.
3085 * pthread_mutex_unlock.c: Likewise.
3086 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
3087
30882007-08-06 Jakub Jelinek <jakub@redhat.com>
3089
3090 * pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
3091 (PTHREAD_MUTEX_TYPE): Mask __kind with 127.
3092 (PTHREAD_MUTEX_PSHARED): Define.
3093 * pthread_mutex_init.c (__pthread_mutex_init): Set
3094 PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
3095 mutexes.
3096 * pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
3097 instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
3098 as second argument to lll_lock.
3099 (LLL_MUTEX_TRYLOCK): Take mutex as argument
3100 instead of its __data.__lock field.
3101 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
3102 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
3103 to lll_robust_lock.
3104 (__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
3105 LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
3106 instead of mutex->__data.__kind directly, pass
3107 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
3108 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
3109 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
3110 directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
3111 (pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
3112 to lll_timedlock, lll_robust_timedlock, lll_unlock and
3113 lll_futex_timed_wait. Use PTHREAD_MUTEX_TYPE (mutex) instead
3114 of mutex->__data.__kind directly.
3115 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
3116 PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
3117 lll_robust_timedlock, lll_unlock and lll_futex_timed_wait. Use
3118 PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
3119 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
3120 PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
3121 and lll_futex_wake.
3122 * pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
3123 PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
3124 Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
3125 directly.
3126 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
3127 Take mutex as argument instead of its __data.__lock field, pass
3128 PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
3129 (LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
3130 __data.__lock field.
3131 (LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
3132 __data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
3133 to lll_robust_cond_lock.
3134 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
3135 variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
3136 lll_futex_wake. Don't use lll_futex_requeue if dependent mutex
3137 has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
3138 * pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
3139 variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
3140 lll_futex_wait.
3141 * pthread_cond_signal.c (__pthread_cond_signal): Add pshared
3142 variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
3143 lll_futex_wake.
3144 * pthread_cond_timedwait.c (__pthread_cond_wait): Add
3145 pshared variable, pass it to lll_lock, lll_unlock,
3146 lll_futex_timedwait and lll_futex_wake.
3147 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
3148 pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
3149 and lll_futex_wake.
3150 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
3151 lll_futex_wake_unlock): Add private argument, use __lll_private_flag
3152 macro.
3153 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
3154 lll_futex_wake_unlock): Likewise.
3155 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
3156 Likewise.
3157 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
3158 lll_futex_wake_unlock): Likewise.
3159 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
3160 Likewise.
3161 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
3162 lll_futex_wake_unlock): Likewise.
3163 (lll_futex_wake): Fix a typo.
3164 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
3165 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
3166 (__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
3167 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
3168 Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
3169 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
3170 (__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
3171 FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
3172 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
3173 (__pthread_cond_timedwait): Likewise.
3174 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
3175 (__condvar_cleanup, __pthread_cond_wait): Likewise.
3176
0470fa46
JJ
31772007-08-05 Jakub Jelinek <jakub@redhat.com>
3178
3179 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
3180 Don't use CGOTSETUP and CGOTRESTORE macros.
3181 (CGOTSETUP, CGOTRESTORE): Remove.
3182 <IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
3183 @local symbol.
3184
64f6281c
UD
31852007-08-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3186
3187 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
3188 definitions for private futexes.
3189 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
3190 kernel-features.h and lowlevellock.h. Use private futexes if
3191 they are available.
3192 (__lll_lock_wait_private, __lll_unlock_wake_private): New.
3193 (__lll_mutex_lock_wait): Rename to
3194 (__lll_lock_wait): ... this. Don't compile in for libc.so.
3195 (__lll_mutex_timedlock_wait): Rename to ...
3196 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday.
3197 Don't compile in for libc.so.
3198 (__lll_mutex_unlock_wake): Rename to ...
3199 (__lll_unlock_wake): ... this. Don't compile in for libc.so.
3200 (__lll_timedwait_tid): Use __NR_gettimeofday.
3201 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
3202 the header from assembler. Renamed all lll_mutex_* resp.
3203 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
3204 Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
3205 (FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
3206 Define.
3207 (__lll_lock_wait_private): Add prototype.
3208 (__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
3209 __lll_robust_timedlock_wait, __lll_unlock_wake_private,
3210 __lll_unlock_wake): Likewise.
3211 (lll_lock): Add private argument. Call __lll_lock_wait_private
3212 if private is constant LLL_PRIVATE.
3213 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
3214 lll_timedlock, lll_robust_timedlock): Add private argument.
3215 (lll_unlock): Add private argument. Call __lll_unlock_wake_private
3216 if private is constant LLL_PRIVATE.
3217 (lll_robust_unlock, lll_robust_dead): Add private argument.
3218 (lll_lock_t): Remove.
3219 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
3220 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
3221 lll_cond_wake, lll_cond_broadcast): Remove.
3222 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
3223 kernel-features.h and lowlevellock.h.
3224 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
3225 (LOAD_FUTEX_WAIT): Define.
3226 (__lll_robust_mutex_lock_wait): Rename to ...
3227 (__lll_robust_lock_wait): ... this. Add private argument.
3228 Use LOAD_FUTEX_WAIT macro.
3229 (__lll_robust_mutex_timedlock_wait): Rename to ...
3230 (__lll_robust_timedlock_wait): ... this. Add private argument.
3231 Use __NR_gettimeofday. Use LOAD_FUTEX_WAIT macro.
3232 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
3233 lowlevellock.h.
3234 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
3235 (pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
3236 __lll_mutex_{lock,unlock}_*.
3237 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
3238 lowlevellock.h and pthread-errnos.h.
3239 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
3240 FUTEX_CMP_REQUEUE, EINVAL): Remove.
3241 (__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
3242 __lll_mutex_{lock,unlock}_*.
3243 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
3244 lowlevellock.h and pthread-errnos.h.
3245 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
3246 (__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
3247 __lll_mutex_{lock,unlock}_*.
3248 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
3249 lowlevellock.h.
3250 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
3251 (__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
3252 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
3253 (__condvar_tw_cleanup): Likewise.
3254 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
3255 lowlevellock.h.
3256 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
3257 (__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
3258 __lll_mutex_{lock,unlock}_*.
3259 ( __condvar_w_cleanup): Likewise.
3260 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
3261 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3262 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
3263 lowlevellock.h.
3264 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3265 (__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
3266 __lll_mutex_{lock,unlock}_*.
3267 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
3268 lowlevellock.h.
3269 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3270 FUTEX_PRIVATE_FLAG): Remove.
3271 (pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
3272 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
3273 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
3274 lowlevellock.h.
3275 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3276 FUTEX_PRIVATE_FLAG): Remove.
3277 (pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
3278 __lll_mutex_{lock,unlock}_*. Use __NR_gettimeofday.
3279 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
3280 lowlevellock.h.
3281 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3282 (__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
3283 __lll_mutex_{lock,unlock}_*.
3284 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
3285 lowlevellock.h.
3286 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3287 (__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
3288 __lll_mutex_{lock,unlock}_*.
3289 * sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
3290 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
3291 (__new_sem_post): Use standard initial exec code sequences.
3292 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
3293 lowlevellock.h.
3294 (SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
3295 FUTEX_PRIVATE_FLAG): Remove.
3296 (sem_timedwait): Use __NR_gettimeofday. Use standard initial
3297 exec code sequences.
3298 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
3299 (__new_sem_trywait): Use standard initial exec code sequences.
3300 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
3301 (__new_sem_wait): Use standard initial exec code sequences.
3302
e51deae7
UD
33032007-07-31 Anton Blanchard <anton@samba.org>
3304
3305 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3306 Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
3307 atomic_full_barrier.
3308
33092007-07-31 Jakub Jelinek <jakub@redhat.com>
3310
3311 * allocatestack.c (stack_cache_lock): Change type to int.
3312 (get_cached_stack, allocate_stack, __deallocate_stack,
3313 __make_stacks_executable, __find_thread_by_id, __nptl_setxid,
3314 __pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
3315 as second argument to lll_lock and lll_unlock macros on
3316 stack_cache_lock.
3317 * pthread_create.c (__find_in_stack_list): Likewise.
3318 (start_thread): Similarly with pd->lock. Use lll_robust_dead
3319 macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
3320 as second argument.
3321 * descr.h (struct pthread): Change lock and setxid_futex field
3322 type to int.
3323 * old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
3324 LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
3325 * old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
3326 * old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
3327 Likewise.
3328 * old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
3329 * pthread_cond_init.c (__pthread_cond_init): Likewise.
3330 * pthreadP.h (__attr_list_lock): Change type to int.
3331 * pthread_attr_init.c (__attr_list_lock): Likewise.
3332 * pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
3333 ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
3334 lll_{,un}lock.
3335 * pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
3336 also for lll_futex_{wake,wait}.
3337 * pthread_barrier_init.c (pthread_barrier_init): Make iattr
3338 a pointer to const.
3339 * pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
3340 LLL_SHARED as second argument to lll_{,un}lock.
3341 * pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
3342 * pthread_cond_signal.c (__pthread_cond_singal): Likewise.
3343 * pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
3344 * pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
3345 Likewise.
3346 * pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
3347 as second argument to lll_{,un}lock macros on pd->lock.
3348 * pthread_getschedparam.c (__pthread_getschedparam): Likewise.
3349 * pthread_setschedparam.c (__pthread_setschedparam): Likewise.
3350 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
3351 * tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
3352 Likewise.
3353 * sysdeps/pthread/createthread.c (do_clone, create_thread):
3354 Likewise.
3355 * pthread_once.c (once_lock): Change type to int.
3356 (__pthread_once): Pass LLL_PRIVATE as second argument to
3357 lll_{,un}lock macros on once_lock.
3358 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
3359 lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
3360 rwlock->__data.__shared as second argument to them and similarly
3361 for lll_futex_w*.
3362 * pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
3363 Likewise.
3364 * pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
3365 Likewise.
3366 * pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
3367 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
3368 * pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
3369 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
3370 * sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
3371 to lll_{,un}lock macros on __sem_mappings_lock.
3372 * sem_open.c (check_add_mapping): Likewise.
3373 (__sem_mappings_lock): Change type to int.
3374 * semaphoreP.h (__sem_mappings_lock): Likewise.
3375 * pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
3376 LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
3377 instead of lll_*mutex_*, pass LLL_SHARED as last
3378 argument.
3379 (__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
3380 pass LLL_SHARED as last argument.
3381 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
3382 LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
3383 lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
3384 pass LLL_SHARED as last argument.
3385 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
3386 lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
3387 LLL_SHARED as last argument.
3388 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
3389 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
3390 Similarly.
3391 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
3392 __libc_lock_lock_recursive, __libc_lock_unlock,
3393 __libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
3394 argument to lll_{,un}lock.
3395 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
3396 _IO_lock_unlock): Likewise.
3397 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
3398 compound literal.
3399 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
3400 Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
3401 __fork_lock.
3402 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
3403 free_mem): Likewise.
3404 (__fork_lock): Change type to int.
3405 * sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
3406 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
3407 isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
3408 lll_futex_wake.
3409 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
3410 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
3411 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
3412 New function.
3413 (__lll_lock_wait, __lll_timedlock_wait): Add private argument and
3414 pass it through to lll_futex_*wait, only compile in when
3415 IS_IN_libpthread.
3416 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
3417 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
3418 argument and pass it through to lll_futex_*wait.
3419 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
3420 lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
3421 lll_robust_*. Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
3422 inline functions to __lll_* resp. __lll_robust_*.
3423 (LLL_MUTEX_LOCK_INITIALIZER): Remove.
3424 (lll_mutex_dead): Add private argument.
3425 (__lll_lock_wait_private): New prototype.
3426 (__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
3427 __lll_robust_lock_timedwait): Add private argument to prototypes.
3428 (__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
3429 call __lll_lock_wait_private, otherwise pass private to
3430 __lll_lock_wait.
3431 (__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
3432 __lll_robust_timedlock): Add private argument, pass it to
3433 __lll_*wait functions.
3434 (__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
3435 call __lll_unlock_wake_private, otherwise pass private to
3436 __lll_unlock_wake.
3437 (__lll_robust_unlock): Add private argument, pass it to
3438 __lll_robust_unlock_wake.
3439 (lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
3440 lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
3441 argument, pass it through to __lll_* inline function.
3442 (__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
3443 (lll_lock_t): Remove.
3444 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
3445 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
3446 lll_cond_wake, lll_cond_broadcast): Remove.
3447 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
3448 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
3449 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
3450 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
3451 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
3452 the header from assembler. Renamed all lll_mutex_* resp.
3453 lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
3454 (LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
3455 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
3456 (LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
3457 LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
3458 (__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
3459 __lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
3460 Remove prototype.
3461 (__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
3462 (lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
3463 rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
3464 (lll_trylock): Likewise, use __lll_trylock_asm, pass
3465 MULTIPLE_THREADS_OFFSET as another asm operand.
3466 (lll_lock): Add private argument, use __lll_lock_asm_start, pass
3467 MULTIPLE_THREADS_OFFSET as last asm operand, call
3468 __lll_lock_wait_private if private is constant LLL_PRIVATE,
3469 otherwise pass private as another argument to __lll_lock_wait.
3470 (lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
3471 lll_timedlock, lll_robust_timedlock): Add private argument, pass
3472 private as another argument to __lll_*lock_wait call.
3473 (lll_unlock): Add private argument, use __lll_unlock_asm, pass
3474 MULTIPLE_THREADS_OFFSET as another asm operand, call
3475 __lll_unlock_wake_private if private is constant LLL_PRIVATE,
3476 otherwise pass private as another argument to __lll_unlock_wake.
3477 (lll_robust_unlock): Add private argument, pass private as another
3478 argument to __lll_unlock_wake.
3479 (lll_robust_dead): Add private argument, use __lll_private_flag
3480 macro.
3481 (lll_islocked): Use LLL_LOCK_INITIALIZER instead of
3482 LLL_MUTEX_LOCK_INITIALIZER.
3483 (lll_lock_t): Remove.
3484 (LLL_LOCK_INITIALIZER_WAITERS): Define.
3485 (__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
3486 __lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
3487 lll_cond_wake, lll_cond_broadcast): Remove.
3488 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
3489 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
3490 2007-05-2{3,9} changes.
3491 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
3492 kernel-features.h and lowlevellock.h.
3493 (LOAD_PRIVATE_FUTEX_WAIT): Define.
3494 (LOAD_FUTEX_WAIT): Rewritten.
3495 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
3496 define.
3497 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
3498 (__lll_mutex_lock_wait): Rename to ...
3499 (__lll_lock_wait): ... this. Take futex addr from %edx instead of
3500 %ecx, %ecx is now private argument. Don't compile in for libc.so.
3501 (__lll_mutex_timedlock_wait): Rename to ...
3502 (__lll_timedlock_wait): ... this. Use __NR_gettimeofday. %esi
3503 contains private argument. Don't compile in for libc.so.
3504 (__lll_mutex_unlock_wake): Rename to ...
3505 (__lll_unlock_wake): ... this. %ecx contains private argument.
3506 Don't compile in for libc.so.
3507 (__lll_timedwait_tid): Use __NR_gettimeofday.
3508 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
3509 kernel-features.h and lowlevellock.h.
3510 (LOAD_FUTEX_WAIT): Define.
3511 (LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
3512 define.
3513 (__lll_robust_mutex_lock_wait): Rename to ...
3514 (__lll_robust_lock_wait): ... this. Futex addr is now in %edx
3515 argument, %ecx argument contains private. Use LOAD_FUTEX_WAIT
3516 macro.
3517 (__lll_robust_mutex_timedlock_wait): Rename to ...
3518 (__lll_robust_timedlock_wait): ... this. Use __NR_gettimeofday.
3519 %esi argument contains private, use LOAD_FUTEX_WAIT macro.
3520 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
3521 lowlevellock.h.
3522 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3523 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
3524 PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
3525 __lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
3526 to __lll_lock_wait in %edx.
3527 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
3528 Include lowlevellock.h and pthread-errnos.h.
3529 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
3530 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
3531 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
3532 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3533 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3534 __lll_unlock_wake.
3535 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
3536 Include lowlevellock.h and pthread-errnos.h.
3537 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
3538 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
3539 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
3540 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3541 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3542 __lll_unlock_wake.
3543 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
3544 Include lowlevellock.h.
3545 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3546 Don't define.
3547 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
3548 cond_lock address in %edx rather than %ecx to __lll_lock_wait,
3549 pass LLL_SHARED in %ecx to both __lll_lock_wait and
3550 __lll_unlock_wake. Use __NR_gettimeofday.
3551 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
3552 Include lowlevellock.h.
3553 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3554 (__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
3555 to __lll_*, pass cond_lock address in %edx rather than %ecx to
3556 __lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
3557 and __lll_unlock_wake.
3558 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
3559 Include lowlevellock.h.
3560 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3561 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
3562 MUTEX(%ebx) address in %edx rather than %ecx to
3563 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
3564 and __lll_unlock_wake. Move return value from %ecx to %edx
3565 register.
3566 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
3567 Include lowlevellock.h.
3568 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3569 Don't define.
3570 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3571 MUTEX(%ebp) address in %edx rather than %ecx to
3572 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
3573 and __lll_unlock_wake. Move return value from %ecx to %edx
3574 register. Use __NR_gettimeofday.
3575 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
3576 Include lowlevellock.h.
3577 (SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
3578 Don't define.
3579 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3580 MUTEX(%ebp) address in %edx rather than %ecx to
3581 __lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
3582 and __lll_unlock_wake. Move return value from %ecx to %edx
3583 register. Use __NR_gettimeofday.
3584 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
3585 Include lowlevellock.h.
3586 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3587 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
3588 MUTEX(%edi) address in %edx rather than %ecx to
3589 __lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
3590 and __lll_unlock_wake.
3591 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
3592 Include lowlevellock.h.
3593 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3594 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
3595 MUTEX(%ebx) address in %edx rather than %ecx to
3596 __lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
3597 and __lll_unlock_wake. Move return value from %ecx to %edx
3598 register.
3599 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
3600 lowlevellock.h.
3601 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
3602 define.
3603 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
3604 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
3605 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
3606 lowlevellock.h.
3607 (LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
3608 (sem_timedwait): Use __NR_gettimeofday.
3609 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
3610 lowlevellock.h.
3611 (LOCK): Don't define.
3612 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
3613 lowlevellock.h.
3614 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3615 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
3616 are waiters.
3617 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
3618 2007-05-2{3,9} changes.
3619 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
3620 kernel-features.h and lowlevellock.h.
3621 (LOAD_PRIVATE_FUTEX_WAIT): Define.
3622 (LOAD_FUTEX_WAIT): Rewritten.
3623 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
3624 (__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
3625 (__lll_mutex_lock_wait): Rename to ...
3626 (__lll_lock_wait): ... this. %esi is now private argument.
3627 Don't compile in for libc.so.
3628 (__lll_mutex_timedlock_wait): Rename to ...
3629 (__lll_timedlock_wait): ... this. %esi contains private argument.
3630 Don't compile in for libc.so.
3631 (__lll_mutex_unlock_wake): Rename to ...
3632 (__lll_unlock_wake): ... this. %esi contains private argument.
3633 Don't compile in for libc.so.
3634 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
3635 kernel-features.h and lowlevellock.h.
3636 (LOAD_FUTEX_WAIT): Define.
3637 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
3638 (__lll_robust_mutex_lock_wait): Rename to ...
3639 (__lll_robust_lock_wait): ... this. %esi argument contains private.
3640 Use LOAD_FUTEX_WAIT macro.
3641 (__lll_robust_mutex_timedlock_wait): Rename to ...
3642 (__lll_robust_timedlock_wait): ... this. %esi argument contains
3643 private, use LOAD_FUTEX_WAIT macro.
3644 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
3645 lowlevellock.h.
3646 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3647 (pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
3648 PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
3649 __lll_lock_wait and __lll_unlock_wake.
3650 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
3651 Include lowlevellock.h and pthread-errnos.h.
3652 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
3653 FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
3654 (__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
3655 pass LLL_SHARED in %esi to both __lll_lock_wait and
3656 __lll_unlock_wake.
3657 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
3658 Include lowlevellock.h and pthread-errnos.h.
3659 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
3660 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
3661 (__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
3662 pass LLL_SHARED in %esi to both __lll_lock_wait and
3663 __lll_unlock_wake.
3664 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
3665 Include lowlevellock.h.
3666 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3667 (__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
3668 pass LLL_SHARED in %esi to both __lll_lock_wait and
3669 __lll_unlock_wake.
3670 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
3671 Include lowlevellock.h.
3672 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
3673 (__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
3674 to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
3675 and __lll_unlock_wake.
3676 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
3677 Include lowlevellock.h.
3678 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3679 Don't define.
3680 (__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
3681 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3682 and __lll_unlock_wake.
3683 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
3684 Include lowlevellock.h.
3685 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3686 Don't define.
3687 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3688 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3689 and __lll_unlock_wake.
3690 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3691 Include lowlevellock.h.
3692 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3693 Don't define.
3694 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3695 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3696 and __lll_unlock_wake.
3697 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
3698 Include lowlevellock.h.
3699 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3700 Don't define.
3701 (__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
3702 pass PSHARED(%rdi) in %esi to both __lll_lock_wait
3703 and __lll_unlock_wake.
3704 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
3705 Include lowlevellock.h.
3706 (SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
3707 Don't define.
3708 (__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
3709 pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
3710 and __lll_unlock_wake.
3711 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
3712 lowlevellock.h.
3713 (LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
3714 define.
3715 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
3716 (LOCK, SYS_futex, FUTEX_WAKE): Don't define.
3717 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
3718 lowlevellock.h.
3719 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3720 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
3721 lowlevellock.h.
3722 (LOCK): Don't define.
3723 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
3724 lowlevellock.h.
3725 (LOCK, SYS_futex, FUTEX_WAIT): Don't define.
3726 * sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
3727 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
3728 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
3729 * sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
3730 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
3731 (__lll_lock_wait_private): New function.
3732 (__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
3733 it to lll_futex_*wait. Don't compile in for libc.so.
3734 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
3735 Remove.
3736 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
3737 (struct sparc_pthread_barrier): Remove.
3738 (pthread_barrier_wait): Use union sparc_pthread_barrier instead of
3739 struct sparc_pthread_barrier. Pass
3740 ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
3741 and lll_futex_wait macros.
3742 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
3743 Remove.
3744 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
3745 Include sparc pthread_barrier_wait.c instead of generic one.
3746
6f59d56e
UD
37472007-07-30 Jakub Jelinek <jakub@redhat.com>
3748
1475e201
UD
3749 * tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
3750
6f59d56e
UD
3751 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
3752 (pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
3753 %ecx.
3754 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
3755 (pthread_rwlock_timedwrlock): Likewise.
3756 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
3757 (__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
3758
558f0300
JJ
37592007-07-31 Jakub Jelinek <jakub@redhat.com>
3760
3761 * sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
3762
cedb4109
UD
37632007-07-26 Jakub Jelinek <jakub@redhat.com>
3764
3765 * tst-locale2.c (useless): Add return statement.
3766
085a4412
UD
37672007-07-24 Jakub Jelinek <jakub@redhat.com>
3768
3769 * allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
3770 lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
3771 * pthread_create.c (start_thread): Likewise.
3772 * init.c (sighandler_setxid): Likewise.
3773 * sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3774 * sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3775 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3776 * sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3777 * sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3778 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3779 * sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3780 * sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
3781 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
3782 Likewise.
3783 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
3784 Likewise.
3785 * sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
3786 Likewise.
3787 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
3788 __rtld_notify): Likewise.
3789 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
3790 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
3791 __pthread_once): Likewise.
3792 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
3793 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3794 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3795 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3796 (lll_futex_wait): Add private argument, define as wrapper around
3797 lll_futex_timed_wait.
3798 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3799 use __lll_private_flag macro.
3800 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3801 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
3802 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
3803 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3804 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3805 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3806 (lll_futex_wait): Add private argument, define as wrapper around
3807 lll_futex_timed_wait.
3808 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3809 use __lll_private_flag macro.
3810 (__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
3811 __lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
3812 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
3813 Define.
3814 (lll_futex_timed_wait, lll_futex_wake): Use it.
3815 (lll_private_futex_wait, lll_private_futex_timed_wait,
3816 lll_private_futex_wake): Removed.
3817 * sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
3818 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3819 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3820 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3821 (lll_futex_wait): Add private argument, define as wrapper around
3822 lll_futex_timed_wait.
3823 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3824 use __lll_private_flag macro.
3825 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3826 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
3827 to lll_futex_*.
3828 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3829 (lll_private_futex_wait, lll_private_futex_timed_wait,
3830 lll_private_futex_wake): Removed.
3831 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
3832 Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
3833 (lll_private_futex_wait, lll_private_futex_timed_wait,
3834 lll_private_futex_wake): Removed.
3835 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
3836 __pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
3837 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
3838 LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
3839 (lll_futex_wait): Add private argument, define as wrapper around
3840 lll_futex_timed_wait.
3841 (lll_futex_timed_wait, lll_futex_wake): Add private argument,
3842 use __lll_private_flag macro.
3843 (lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
3844 lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
3845 to lll_futex_*.
3846 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
3847 Define.
3848 (lll_futex_timed_wait, lll_futex_wake): Use it.
3849 (lll_private_futex_wait, lll_private_futex_timed_wait,
3850 lll_private_futex_wake): Removed.
3851
ef0af159
JJ
38522007-07-27 Jakub Jelinek <jakub@redhat.com>
3853
3854 * sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
3855 of the structure for sparc32.
3856
38572007-07-26 Aurelien Jarno <aurelien@aurel32.net>
3858
3859 * sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
3860
eb4f5909
UD
38612007-07-23 Ulrich Drepper <drepper@redhat.com>
3862
3863 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
3864 code used when private futexes are assumed.
3865 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3866 Likewise.
3867
b5f13526
UD
38682007-07-23 Jakub Jelinek <jakub@redhat.com>
3869
3870 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
3871 (__lll_private_flag): Define.
3872 (lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
3873 (lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
3874 __lll_private_flag.
3875 (lll_private_futex_wait, lll_private_futex_timedwait,
3876 lll_private_futex_wake): Define as wrapper around non-_private
3877 macros.
3878 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
3879 (__lll_private_flag): Define.
3880 (lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
3881 (lll_private_futex_wait, lll_private_futex_timedwait,
3882 lll_private_futex_wake): Define as wrapper around non-_private
3883 macros.
3884
eb7721f2
UD
38852007-07-10 Steven Munroe <sjmunroe@us.ibm.com>
3886
3887 * pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
3888 parameter to lll_futex_wait call.
3889 * pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
3890
3891 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
3892 Replace lll_futex_wait with lll_private_futex_wait.
3893 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
3894 Add LLL_SHARED parameter to lll_futex_wake().
3895
3896 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
3897 LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
3898 lll_private_futex_wake.
3899 (lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
3900 bit from private parm before syscall.
3901 (lll_futex_timed_wait): Likewise.
3902 (lll_futex_wake): Likewise.
3903 (lll_futex_wake_unlock): Likewise.
3904 (lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
3905 (lll_robust_mutex_unlock): Likewise.
3906 (lll_mutex_unlock_force): Likewise.
3907 (lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
3908
defc45f2
UD
39092007-07-23 Ulrich Drepper <drepper@redhat.com>
3910
3911 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
3912 compilation when unconditionally using private futexes.
3913 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
3914 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
3915 Likewise.
3916 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
3917 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
3918
087722b8
UD
39192007-07-17 Jakub Jelinek <jakub@redhat.com>
3920
3921 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
3922 Define.
3923
765c6b0c
UD
39242007-07-06 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3925
3926 * sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
3927 kernel-features.h.
3928
7d9d8bd1
RM
39292007-05-16 Roland McGrath <roland@redhat.com>
3930
3931 * init.c (__nptl_initial_report_events): New variable.
3932 (__pthread_initialize_minimal_internal): Initialize pd->report_events
3933 to that.
3934
a4915df2
UD
39352007-06-22 Jakub Jelinek <jakub@redhat.com>
3936
3937 * pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
3938 cpusetsize if pthread_getaffinity_np failed with ENOSYS.
3939
e4eb675d
UD
39402007-06-19 Ulrich Drepper <drepper@redhat.com>
3941
3942 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
3943 implementation.
3944
ae1ad3ae
UD
39452007-06-18 Ulrich Drepper <drepper@redhat.com>
3946
3947 * pthreadP.h: Define PTHREAD_MUTEX_TYPE.
3948 * phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
3949 * pthread_mutex_timedlock.c: Likewise.
3950 * pthread_mutex_trylock.c: Likewise.
3951 * pthread_mutex_unlock.c: Likewise.
3952
89074592
UD
39532007-06-17 Andreas Schwab <schwab@suse.de>
3954
3955 * sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
3956 sections.
3957
d4201cc4
UD
39582007-06-17 Ulrich Drepper <drepper@redhat.com>
3959
3960 * allocatestack.c (allocate_stack): Make code compile if
3961 __ASSUME_PRIVATE_FUTEX is set.
3962
339dbf0e
UD
39632007-06-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3964
3965 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
3966 (__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
3967 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
3968 (__pthread_rwlock_wrlock): Likewise.
3969 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
3970 (pthread_rwlock_timedrdlock): Likewise.
3971 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
3972 (pthread_rwlock_timedwrlock): Likewise.
3973 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
3974 (__pthread_rwlock_unlock): Likewise.
3975
39762007-06-10 Kaz Kojima <kkojima@rr.iij4u.or.jp>
3977
3978 * sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
3979 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
3980 Split __flags into __flags, __shared, __pad1 and __pad2.
3981 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
b42a214c 3982 futexes if they are available.
339dbf0e 3983 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
b42a214c 3984 in libc-lowlevellock.S allow using private futexes.
339dbf0e
UD
3985 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
3986 FUTEX_PRIVATE_FLAG. Add additional parameter to lll_futex_wait,
3987 lll_futex_timed_wait and lll_futex_wake. Change lll_futex_wait
3988 to call lll_futex_timed_wait. Add lll_private_futex_wait,
3989 lll_private_futex_timed_wait and lll_private_futex_wake.
3990 (lll_robust_mutex_unlock): Fix typo.
3991 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
b42a214c 3992 field in futex command setup.
339dbf0e
UD
3993 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
3994 COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
3995 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
3996 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
b42a214c 3997 if they are available. Remove clear_once_control.
339dbf0e
UD
3998 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
3999 futexes if they are available.
4000 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
4001 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
4002 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
4003 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
4004 * sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
4005 Wake only when there are waiters.
4006 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
4007 support. Indicate that there are waiters. Remove unnecessary
b42a214c 4008 extra cancellation test.
339dbf0e
UD
4009 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise. Removed
4010 left-over duplication of __sem_wait_cleanup.
4011
26f56c1c
UD
40122007-06-07 Ulrich Drepper <drepper@redhat.com>
4013
4014 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
4015 parameter to lll_futex_wait, lll_futex_timed_wait, and
4016 lll_futex_wake. Change lll_futex_wait to call lll_futex_timed_wait.
4017 Add lll_private_futex_wait, lll_private_futex_timed_wait, and
4018 lll_private_futex_wake.
4019 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
4020 * allocatestack.c: Adjust use of lll_futex_* macros.
4021 * init.c: Likewise.
4022 * lowlevellock.h: Likewise.
4023 * pthread_barrier_wait.c: Likewise.
4024 * pthread_cond_broadcast.c: Likewise.
4025 * pthread_cond_destroy.c: Likewise.
4026 * pthread_cond_signal.c: Likewise.
4027 * pthread_cond_timedwait.c: Likewise.
4028 * pthread_cond_wait.c: Likewise.
4029 * pthread_create.c: Likewise.
4030 * pthread_mutex_lock.c: Likewise.
4031 * pthread_mutex_setprioceiling.c: Likewise.
4032 * pthread_mutex_timedlock.c: Likewise.
4033 * pthread_mutex_unlock.c: Likewise.
4034 * pthread_rwlock_timedrdlock.c: Likewise.
4035 * pthread_rwlock_timedwrlock.c: Likewise.
4036 * pthread_rwlock_unlock.c: Likewise.
4037 * sysdeps/alpha/tls.h: Likewise.
4038 * sysdeps/i386/tls.h: Likewise.
4039 * sysdeps/ia64/tls.h: Likewise.
4040 * sysdeps/powerpc/tls.h: Likewise.
4041 * sysdeps/pthread/aio_misc.h: Likewise.
4042 * sysdeps/pthread/gai_misc.h: Likewise.
4043 * sysdeps/s390/tls.h: Likewise.
4044 * sysdeps/sh/tls.h: Likewise.
4045 * sysdeps/sparc/tls.h: Likewise.
4046 * sysdeps/unix/sysv/linux/fork.c: Likewise.
4047 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
4048 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
4049 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
4050 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
4051 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
4052 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
4053 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
4054 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
4055 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
4056 Likewise.
4057 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
4058 * sysdeps/x86_64/tls.h: Likewise.
4059
ee5d5755
UD
40602007-05-29 Ulrich Drepper <drepper@redhat.com>
4061
b03b0c29
UD
4062 * pthread_getattr_np.c: No need to install a cancellation handler,
4063 this is no cancellation point.
4064 * pthread_getschedparam.c: Likewise.
4065 * pthread_setschedparam.c: Likewise.
4066 * pthread_setschedprio.c: Likewise.
4067 * sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
4068 lll_unlock_wake_cb.
4069 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
4070 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
4071 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4072 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4073 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
4074 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
4075 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
4076 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
4077 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
4078 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
4079 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
4080 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
fc3f0ccb 4081
0154658d
UD
4082 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
4083 whether there are more than one thread makes no sense here since
4084 we only call the slow path if the locks are taken.
4085 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
4086
ee5d5755
UD
4087 * sysdeps/unix/sysv/linux/internaltypes.h: Introduce
4088 COND_NWAITERS_SHIFT.
4089 * pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
4090 COND_CLOCK_BITS.
4091 * pthread_cond_init.c: Likewise.
4092 * pthread_cond_timedwait.c: Likewise.
4093 * pthread_cond_wait.c: Likewise.
4094 * pthread_condattr_getclock.c: Likewise.
4095 * pthread_condattr_setclock.c: Likewise.
4096 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
4097 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4098 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4099 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
4100 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
4101
991fa82b
UD
41022007-05-28 Jakub Jelinek <jakub@redhat.com>
4103
40f57573
UD
4104 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
4105 unistd.h.
4106
991fa82b
UD
4107 * sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
4108 insn suffix.
4109 (THREAD_GSCOPE_GET_FLAG): Remove.
4110 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
4111 * allocatestack.c (__wait_lookup_done): Revert 2007-05-24
4112 changes.
4113 * sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
4114 (THREAD_GSCOPE_GET_FLAG): Remove.
4115 (THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
4116 instead of THREAD_GSCOPE_GET_FLAG.
4117 (THREAD_GSCOPE_SET_FLAG): Likewise. Add atomic_write_barrier after
4118 it.
4119 * sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
4120 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
4121 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
4122 THREAD_GSCOPE_WAIT): Define.
4123 * sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
4124 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
4125 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
4126 THREAD_GSCOPE_WAIT): Define.
4127 * sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
4128 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
4129 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
4130 THREAD_GSCOPE_WAIT): Define.
4131 * sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
4132 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
4133 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
4134 THREAD_GSCOPE_WAIT): Define.
4135
41362007-05-24 Richard Henderson <rth@redhat.com>
4137
4138 * descr.h (struct pthread): Add header.gscope_flag.
4139 * sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
4140 THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
4141 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
4142 THREAD_GSCOPE_WAIT): Define.
4143
e59660bc
UD
41442007-05-27 Ulrich Drepper <drepper@redhat.com>
4145
4146 * init.c: Make it compile with older kernel headers.
4147
4148 * tst-initializers1.c: Show through exit code which test failed.
4149
4150 * pthread_rwlock_init.c: Also initialize __shared field.
4151 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
4152 element in rwlock structure into four byte elements. One of them is
4153 the new __shared element.
4154 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
4155 Likewise.
cd0dbd89 4156 [__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
e59660bc
UD
4157 __shared, adjust names of other padding elements.
4158 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
4159 * sysdeps/pthread/pthread.h: Adjust rwlock initializers.
4160 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
4161 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
4162 FUTEX_PRIVATE_FLAG.
4163 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
4164 futex to use private operations if possible.
4165 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
4166 Likewise.
4167 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
4168 Likewise.
4169 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
4170 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
50f1dec5
UD
4171 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
4172 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
4173 Likewise.
4174 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
4175 Likewise.
4176 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
4177 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
e59660bc 4178
d8ff3792
UD
41792007-05-26 Ulrich Drepper <drepper@redhat.com>
4180
546346b6
UD
4181 * pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
4182 * pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
4183 * pthread_rwlock_timedrdlock.c: Likewise.
4184 * pthread_rwlock_tryrdlock.c: Likewise.
4185
a2dd3360
UD
4186 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
4187 optimization.
4188
6df7ffad
UD
4189 * sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
4190 * sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
4191 duplication of __sem_wait_cleanup.
4192
4193 * allocatestack.c: Revert last change.
4194 * init.c: Likewise.
4195 * sysdeps/i386/tls.h: Likewise.
4196 * sysdeps/x86_64/tls.h: Likewise.
4197 * descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
4198 header structure.
4199 * sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
4200
d8ff3792
UD
4201 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
4202 Add private field.
4203 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
4204 * pthread_barrier_init.c: Set private flag if pshared and private
4205 futexes are supported.
4206 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
4207 private field in futex command setup.
4208 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
4209
3d2dd6ca
UD
42102007-05-25 Ulrich Drepper <drepper@redhat.com>
4211
42e6c665
UD
4212 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
4213 support.
4214 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4215 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4216 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
4217 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4218 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4219
3d2dd6ca
UD
4220 * semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
4221 * sem_init.c (__new_sem_init): Rewrite to initialize all three
4222 fields in the structure.
4223 (__old_sem_init): New function.
4224 * sem_open.c: Initialize all fields of the structure.
4225 * sem_getvalue.c: Adjust for renamed element.
4226 * sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
4227 (gen-as-const-headers): Add structsem.sym.
4228 * sysdeps/unix/sysv/linux/structsem.sym: New file.
4229 * sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
4230 struct new_sem. Add struct old_sem.
4231 * sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
4232 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
4233 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
4234 * sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
4235 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
4236 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
4237 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
4238 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
4239 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4240 * Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
4241 * tst-sem10.c: New file.
4242 * tst-sem11.c: New file.
4243 * tst-sem12.c: New file.
4244 * tst-typesizes.c: Test struct new_sem and struct old_sem instead
4245 of struct sem.
4246
20a4d722
JJ
42472007-05-25 Ulrich Drepper <drepper@redhat.com>
4248 Jakub Jelinek <jakub@redhat.com>
4249
4250 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
4251 Move __pthread_enable_asynccancel right before futex syscall.
4252 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
4253 Likewise.
4254
42552007-05-24 Jakub Jelinek <jakub@redhat.com>
86acd596
UD
4256
4257 * sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
4258 THREAD_COPY_PRIVATE_FUTEX): Define.
4259 * sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
4260 THREAD_COPY_PRIVATE_FUTEX): Define.
4261 * allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
4262 * init.c (__pthread_initialize_minimal_internal): Use
4263 THREAD_SET_PRIVATE_FUTEX.
0a54ab53
UD
4264
4265 * sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
4266 (THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
4267 THREAD_GSCOPE_FLAG_WAIT): Define.
4268 (THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
4269 THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
4270 * sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
4271 PTR_DEMANGLE.
4272 (THREAD_GSCOPE_GET_FLAG): Define.
4273 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
4274 * allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
4275 instead of ->header.gscope_flag directly.
4276
5a8075b1
UD
42772007-05-23 Ulrich Drepper <drepper@redhat.com>
4278
4279 * init.c (__pthread_initialize_minimal_internal): Check whether
4280 private futexes are available.
4281 * allocatestack.c (allocate_stack): Copy private_futex field from
4282 current thread into the new stack.
4283 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
4284 futexes if they are available.
4285 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
4286 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
4287 in libc-lowlevellock.S allow using private futexes.
4288 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
4289 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
4290 FUTEX_PRIVATE_FLAG.
4291 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
4292 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
4293 if they are available.
4294 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
4295 * sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
4296 * sysdeps/i386/tcb-offsets.sym: Likewise.
4297 * sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
4298 * sysdeps/i386/tls.h (tcbhead_t): Likewise.
4299
6d59823c
UD
43002007-05-21 Ulrich Drepper <drepper@redhat.com>
4301
4302 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4303 Remove ptr_wait_lookup_done again.
4304 * init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
4305 (__pthread_initialize_minimal_internal): Initialize
4306 _dl_wait_lookup_done pointer in _rtld_global directly.
4307 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4308 Remove code to code _dl_wait_lookup_done.
4309 * sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
4310 encrypted for now.
4311
2c9718f3
JJ
43122007-05-21 Jakub Jelinek <jakub@redhat.com>
4313
4314 * tst-robust9.c (do_test): Don't fail if ENABLE_PI and
4315 pthread_mutex_init failed with ENOTSUP.
4316
df94b641
UD
43172007-05-19 Ulrich Drepper <drepper@redhat.com>
4318
4319 * allocatestack.c (__wait_lookup_done): New function.
4320 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
4321 Add ptr_wait_lookup_done.
4322 * init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
4323 * pthreadP.h: Declare __wait_lookup_done.
4324 * sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
4325 Define macros to implement reference handling of global scope.
4326 * sysdeps/x86_64/tls.h: Likewise.
4327 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
4328 Initialize GL(dl_wait_lookup_done).
4329
bec51a30
UD
43302007-05-17 Ulrich Drepper <drepper@redhat.com>
4331
113ad5fc
UD
4332 [BZ #4512]
4333 * pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
4334 is detected.
4335 * pthread_mutex_timedlock.c: Likewise.
4336 * pthread_mutex_trylock.c: Likewise.
4337 Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
4338
4339 * Makefile (tests): Add tst-robust9 and tst-robustpi9.
4340 * tst-robust9.c: New file.
4341 * tst-robustpi9.c: New file.
4342
bec51a30
UD
4343 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
4344 unnecessary extra cancellation test.
4345
83d87915
UD
43462007-05-14 Ulrich Drepper <drepper@redhat.com>
4347
83d87915
UD
4348 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
4349 extra cancellation test.
4350 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
4351
3771196d
UD
43522007-05-10 Ulrich Drepper <drepper@redhat.com>
4353
341c566f
UD
4354 * descr.h (struct pthread): Rearrange members to fill hole in
4355 64-bit layout.
4356
3771196d
UD
4357 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4358 (__pthread_setaffinity_new): If syscall was successful and
4359 RESET_VGETCPU_CACHE is defined, use it before returning.
4360 * sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
4361
7d29b542
JJ
43622007-05-10 Jakub Jelinek <jakub@redhat.com>
4363
4364 [BZ #4455]
4365 * tst-align2.c: Include stackinfo.h.
4366 * tst-getpid1.c: Likewise.
4367
16105fe0
UD
43682007-05-02 Carlos O'Donell <carlos@systemhalted.org>
4369
29c113f0
UD
4370 [BZ #4455]
4371 * tst-align2.c (do_test): Add _STACK_GROWS_UP case.
4372 * tst-getpid1.c (do_test): Likewise.
4373
16105fe0
UD
4374 [BZ #4456]
4375 * allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
4376 (allocate_stack): Likewise.
4377
6780bc44
UD
43782007-05-07 Ulrich Drepper <drepper@redhat.com>
4379
4380 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
4381 (__lll_robust_lock_wait): Fix race caused by reloading of futex value.
4382 (__lll_robust_timedlock_wait): Likewise.
4383 Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
4384
aa75f64c
UD
43852007-05-06 Mike Frysinger <vapier@gentoo.org>
4386
15eca720 4387 [BZ #4465]
aa75f64c
UD
4388 * tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
4389 * tst-cancel4.c (tf_fdatasync): New test.
4390
f672076e
UD
43912007-04-27 Ulrich Drepper <drepper@redhat.com>
4392
1bb5f5a1
UD
4393 [BZ #4392]
4394 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
4395 check mutexes like normal mutexes.
4396
f672076e
UD
4397 [BZ #4306]
4398 * sysdeps/unix/sysv/linux/timer_create.c (timer_create):
4399 Initialize the whole sigevent structure to appease valgrind.
4400
bce20b9a
UD
44012007-04-25 Ulrich Drepper <drepper@redhat.com>
4402
4403 * sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
4404 * sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
4405
0c786eac
UD
44062007-04-06 Ulrich Drepper <drepper@redhat.com>
4407
4408 * tst-locale1.c: Avoid warnings.
4409 * tst-locale2.c: Likewise.
4410
e1f0c5bc
UD
44112007-03-19 Steven Munroe <sjmunroe@us.ibm.com>
4412
4413 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
4414 (__lll_robust_trylock): Add MUTEX_HINT_ACQ to lwarx instruction.
4415
965cba04
UD
44162007-03-16 Jakub Jelinek <jakub@redhat.com>
4417
4418 * sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
4419 __extern_always_inline where appropriate.
4420 * sysdeps/pthread/pthread.h: Likewise.
4421
a5ea509b
RH
44222007-03-13 Richard Henderson <rth@redhat.com>
4423
4424 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
4425 separate cfi regions for the two subsections.
4426
00a1430e
UD
44272007-02-25 Ulrich Drepper <drepper@redhat.com>
4428
4429 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
4430 new thread, don't just decrement it.
4431 Patch by Suzuki K P <suzuki@in.ibm.com>.
4432
63a2f305
UD
44332007-02-21 Ulrich Drepper <drepper@redhat.com>
4434
4435 * sysdeps/pthread/pthread-functions.h: Correct last patch, correct
4436 PTHFCT_CALL definition.
4437
2484468b
UD
44382007-02-18 Ulrich Drepper <drepper@redhat.com>
4439
4440 * sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
4441 available, don't use it.
4442
5ed61e0f
UD
44432007-02-09 Jakub Jelinek <jakub@redhat.com>
4444
4445 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4446 (__lll_mutex_timedlock_wait): Use correct pointer when we don't
4447 call into the kernel to delay.
4448
10ccaa5c
UD
44492007-01-18 Ulrich Drepper <drepper@redhat.com>
4450
f8a17855
UD
4451 * tst-initializers1.c: We want to test the initializers as seen
4452 outside of libc, so undefined _LIBC.
4453
10ccaa5c
UD
4454 * pthread_join.c (cleanup): Avoid warning.
4455
ea1533e0
UD
44562007-01-17 Ulrich Drepper <drepper@redhat.com>
4457
1476bce6
UD
4458 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
4459 (__lll_timedwait_tid): Add unwind info.
4460
ea1533e0
UD
4461 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
4462 function table, mangle the pointers.
4463 * sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
4464 * forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
4465 * sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
4466 demangle pointers before use.
4467 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
4468 demangle pointer.
4469 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
4470 * sysdeps/pthread/setxid.h: Likewise.
4471
8980796b
UD
44722007-01-12 Ulrich Drepper <drepper@redhat.com>
4473
4474 * tst-rwlock7.c: Show some more information in case of correct
4475 behavior.
4476
a1d87b5d
UD
44772007-01-11 Ulrich Drepper <drepper@redhat.com>
4478
4479 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
4480 (lll_futex_timed_wait): Undo part of last change, don't negate
4481 return value.
4482
11bf311e 44832007-01-10 Ulrich Drepper <drepper@redhat.com>
66193697 4484
11bf311e
UD
4485 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups. Define
4486 FUTEX_CMP_REQUEUE and lll_futex_requeue.
66193697 4487
11bf311e 44882006-12-28 David S. Miller <davem@davemloft.net>
14a31e35 4489
11bf311e 4490 * shlib-versions: Fix sparc64 linux target specification.
a744da90 4491
11bf311e 44922007-01-10 Jakub Jelinek <jakub@redhat.com>
a744da90 4493
11bf311e
UD
4494 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
4495 Adjust include path for pthread_barrier_wait.c move.
fc242bef 4496
11bf311e 44972006-12-21 Jakub Jelinek <jakub@redhat.com>
fc242bef 4498
11bf311e
UD
4499 * sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
4500 tid isn't reread from pd->tid in between ESRCH test and the syscall.
a822d9f4 4501
11bf311e
UD
45022006-12-06 Jakub Jelinek <jakub@redhat.com>
4503
4504 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
4505 6 argument cancellable syscalls.
4506 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
4507 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
4508 6 argument cancellable syscalls.
4509 (STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
a822d9f4 4510
66f17705
UD
45112006-12-09 Ulrich Drepper <drepper@redhat.com>
4512
4513 * sysdeps/unix/sysv/linux/rtld-lowlevel.h
4514 (__rtld_mrlock_initialize): Add missing closing parenthesis.
4515
11bf311e
UD
45162006-10-30 Jakub Jelinek <jakub@redhat.com>
4517
4518 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
4519 __sync_lock_release instead of __sync_lock_release_si.
4520
536e40e2
UD
45212006-10-29 Jakub Jelinek <jakub@redhat.com>
4522
4523 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
4524 Define.
4525 (SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
4526 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
4527 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
4528 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
4529 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
4530 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
4531 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
4532 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
4533 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
4534 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
4535 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
4536
11bf311e
UD
45372006-10-27 Ulrich Drepper <drepper@redhat.com>
4538
4539 * sysdeps/pthread/pthread_barrier_wait.c: Move to...
4540 * pthread_barrier_wait.c: ...here.
4541 * sysdeps/pthread/pthread_cond_broadcast.c: Move to...
4542 * pthread_cond_broadcast.c: ...here.
4543 * sysdeps/pthread/pthread_cond_signal.c: Move to...
4544 * pthread_cond_signal.c: ...here.
4545 * sysdeps/pthread/pthread_cond_timedwait.c: Move to...
4546 * pthread_cond_timedwait.c: ...here.
4547 * sysdeps/pthread/pthread_cond_wait.c: Move to...
4548 * pthread_cond_wait.c: ...here.
4549 * sysdeps/pthread/pthread_once.c: Move to...
4550 * pthread_once.c: ...here.
4551 * sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
4552 * pthread_rwlock_rdlock.c: ...here.
4553 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
4554 * pthread_rwlock_timedrdlock.c: ...here.
4555 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
4556 * pthread_rwlock_timedwrlock.c: ...here.
4557 * sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
4558 * pthread_rwlock_unlock.c: ...here.
4559 * sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
4560 * pthread_rwlock_wrlock.c: ...here.
4561 * sysdeps/pthread/pthread_spin_destroy.c: Move to...
4562 * pthread_spin_destroy.c: ...here.
4563 * sysdeps/pthread/pthread_spin_init.c: Move to...
4564 * pthread_spin_init.c: ...here.
4565 * sysdeps/pthread/pthread_spin_unlock.c: Move to...
4566 * pthread_spin_unlock.c: ...here.
4567 * sysdeps/pthread/pthread_getcpuclockid.c: Move to...
4568 * pthread_getcpuclockid.c: ...here.
4569
4570 * init.c: USE_TLS support is now always enabled.
4571 * tst-tls5.h: Likewise.
4572 * sysdeps/alpha/tls.h: Likewise.
4573 * sysdeps/i386/tls.h: Likewise.
4574 * sysdeps/ia64/tls.h: Likewise.
4575 * sysdeps/powerpc/tls.h: Likewise.
4576 * sysdeps/s390/tls.h: Likewise.
4577 * sysdeps/sh/tls.h: Likewise.
4578 * sysdeps/sparc/tls.h: Likewise.
4579 * sysdeps/x86_64/tls.h: Likewise.
4580
006a8f6f 45812006-10-27 Jakub Jelinek <jakub@redhat.com>
c0a777e8
UD
4582
4583 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
4584 __rtld_mrlock_change): Update oldval if atomic compare and exchange
4585 failed.
4586
4587 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
4588 Define to THREAD_SELF->header.multiple_threads.
4589 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
4590 Likewise.
4591 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
4592 Likewise.
4593 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
4594 (SINGLE_THREAD_P): Likewise.
4595 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
4596 (SINGLE_THREAD_P): Likewise.
4597 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
4598 (SINGLE_THREAD_P): Likewise.
4599 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
4600 (SINGLE_THREAD_P): Likewise.
4601 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
4602 Likewise.
4603 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
4604 (SINGLE_THREAD_P): Likewise.
4605 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
4606 (SINGLE_THREAD_P): Likewise.
4607 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
4608 Likewise.
4609
11bf311e 46102006-10-26 Jakub Jelinek <jakub@redhat.com>
32c075e1 4611
11bf311e
UD
4612 * pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
4613 by default rather than 2_3_3.
32c075e1 4614
11bf311e 46152006-10-17 Jakub Jelinek <jakub@redhat.com>
32c075e1 4616
11bf311e
UD
4617 * sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
4618 __rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
4619 atomic_* instead of catomic_* macros.
4620
46212006-10-12 Ulrich Drepper <drepper@redhat.com>
4622
4623 [BZ #3285]
4624 * sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
4625 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
4626 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
4627 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
4628 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
4629 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
4630 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
4631 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
4632 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
4633 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
4634 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
4635 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
4636 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
4637
46382006-10-11 Ulrich Drepper <drepper@redhat.com>
4639
4640 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
4641 cancelable syscalls with six parameters.
4642
4643 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
4644 operations instead of atomic_*.
32c075e1 4645
11bf311e 46462006-10-09 Ulrich Drepper <drepper@redhat.com>
32c075e1 4647
11bf311e 4648 * sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
32c075e1 4649
11bf311e 46502006-10-07 Ulrich Drepper <drepper@redhat.com>
32c075e1 4651
11bf311e
UD
4652 * sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
4653 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
4654 * sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
4655 New file.
4656 * pthread_attr_setstack.c: Allow overwriting the version number of the
4657 new symbol.
4658 * pthread_attr_setstacksize.c: Likewise.
4659 (__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
4660 it.
4661 * sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
4662 pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
fa279678 4663
457b559e
UD
46642006-09-24 Ulrich Drepper <drepper@redhat.com>
4665
4666 [BZ #3251]
4667 * descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
4668 Patch by Petr Baudis.
4669
0466106e
UD
46702006-09-18 Jakub Jelinek <jakub@redhat.com>
4671
4672 * tst-kill4.c (do_test): Explicitly set tf thread's stack size.
4673
4674 * tst-cancel2.c (tf): Loop as long as something was written.
4675
bd6d3b7d
UD
46762006-09-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
4677
4678 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
4679 mutexes wake all mutexes.
4680 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
4681 WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
4682 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
4683
30aa5785
UD
46842006-09-12 Ulrich Drepper <drepper@redhat.com>
4685
4686 * tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
4687 to guarantee the thread is always canceled.
4688
2b6a801e
UD
46892006-09-08 Jakub Jelinek <jakub@redhat.com>
4690
4691 * tst-cond22.c: Include pthread.h instead of pthreadP.h.
4692 Include stdlib.h.
4693 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
4694 increase FUTEX if increasing WAKEUP_SEQ. Fix comment typo.
4695 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4696 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4697 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
bd6d3b7d 4698
346e6ad4
UD
46992006-09-08 Ulrich Drepper <drepper@redhat.com>
4700
4701 [BZ #3123]
4702 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
4703 increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
2b6a801e
UD
4704 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
4705 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
4706 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
346e6ad4
UD
4707 * Makefile (tests): Add tst-cond22.
4708 * tst-cond22.c: New file.
4709
b051fc44
UD
47102006-09-05 Ulrich Drepper <drepper@redhat.com>
4711
4712 [BZ #3124]
4713 * descr.h (struct pthread): Add parent_cancelhandling.
4714 * sysdeps/pthread/createthread.c (create_thread): Pass parent
4715 cancelhandling value to child.
4716 * pthread_create.c (start_thread): If parent thread was canceled
4717 reset the SIGCANCEL mask.
4718 * Makefile (tests): Add tst-cancel25.
4719 * tst-cancel25.c: New file.
4720
d052233c 47212006-09-05 Jakub Jelinek <jakub@redhat.com>
b42a214c 4722 Ulrich Drepper <drepper@redhat.com>
d052233c
UD
4723
4724 * sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
4725 counterp if it is already zero.
4726 * sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
4727
cd248c3f 47282006-03-04 Jakub Jelinek <jakub@redhat.com>
b42a214c 4729 Roland McGrath <roland@redhat.com>
cd248c3f
UD
4730
4731 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
4732 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
4733 LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
4734 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
4735 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
4736 lll_robust_mutex_timedlock, lll_mutex_unlock,
4737 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
4738 Add _L_*_ symbols around the subsection.
4739 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
4740 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
4741
47422006-03-03 Jakub Jelinek <jakub@redhat.com>
b42a214c 4743 Roland McGrath <roland@redhat.com>
cd248c3f
UD
4744
4745 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
4746 (LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
4747 LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
4748 (lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
4749 lll_robust_mutex_cond_lock, lll_mutex_timedlock,
4750 lll_robust_mutex_timedlock, lll_mutex_unlock,
4751 lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
4752 Add _L_*_ symbols around the subsection.
4753 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
4754 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
4755
b80770b2
UD
47562006-08-31 Ulrich Drepper <drepper@redhat.com>
4757
4758 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
4759 change because it can disturb too much existing code. If real hard
4760 reader preference is needed we'll introduce another type.
4761 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4762 (pthread_rwlock_timedwrlock): Likewise.
4763 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
4764 Likewise.
4765
bee2df0b
UD
47662006-08-30 Ulrich Drepper <drepper@redhat.com>
4767
4768 * pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
4769 reader preference.
4770 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
4771 (pthread_rwlock_timedwrlock): Likewise.
4772 * sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
4773 Likewise.
4774
d678ebc1
UD
47752006-08-25 Jakub Jelinek <jakub@redhat.com>
4776
4777 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
4778 Only define ifdef SHARED.
4779
ba408f84
UD
47802006-08-23 Ulrich Drepper <drepper@redhat.com>
4781
4782 * allocatestack.c (queue_stack): Move freeing of surplus stacks to...
4783 (free_stacks): ...here.
4784 (__free_stack_cache): New function.
4785 * pthreadP.h: Declare __free_stack_cache.
4786 * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
4787 ptr_freeres.
4788 * init.c (pthread_functions): Initialize ptr_freeres.
4789 * sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
4790 New freeres function.
4791
376e973a
UD
47922006-07-30 Joseph S. Myers <joseph@codesourcery.com>
4793
4794 [BZ #3018]
4795 * Makefile (extra-objs): Add modules to extra-test-objs instead.
4796
2b34af01
UD
47972006-08-20 Ulrich Drepper <drepper@redhat.com>
4798
4799 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4800 _XOPEN_REALTIME_THREADS.
4801
89c85f87
UD
48022006-08-15 Jakub Jelinek <jakub@redhat.com>
4803
4804 * sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
4805 HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
4806 HAVE_CLOCK_GETTIME_VSYSCALL.
4807 (maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
4808
f17efcb4
UD
48092006-08-14 Jakub Jelinek <jakub@redhat.com>
4810
4811 * sysdeps/unix/sysv/linux/bits/posix_opt.h
4812 (_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
4813 * descr.h (struct priority_protection_data): New type.
4814 (struct pthread): Add tpp field.
4815 * pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
4816 PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
4817 PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
4818 * pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
4819 TPP mutexes.
4820 * pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
4821 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
4822 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
4823 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
4824 * tpp.c: New file.
4825 * pthread_setschedparam.c (__pthread_setschedparam): Handle priority
4826 boosted by TPP.
4827 * pthread_setschedprio.c (pthread_setschedprio): Likewise.
4828 * pthread_mutexattr_getprioceiling.c
4829 (pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
4830 in the SCHED_FIFO priority range.
4831 * pthread_mutexattr_setprioceiling.c
4832 (pthread_mutexattr_setprioceiling): Fix prioceiling validation.
4833 * pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
4834 if mutex is not TPP. Ceiling is now in __data.__lock.
4835 * pthread_mutex_setprioceiling.c: Include stdbool.h.
4836 (pthread_mutex_setprioceiling): Fix prioceiling validation. Ceiling
4837 is now in __data.__lock. Add locking.
4838 * pthread_create.c (__free_tcb): Free pd->tpp structure.
4839 * Makefile (libpthread-routines): Add tpp.
4840 (xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
4841 * tst-tpp.h: New file.
4842 * tst-mutexpp1.c: New file.
4843 * tst-mutexpp6.c: New file.
4844 * tst-mutexpp10.c: New file.
4845 * tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
4846 * tst-mutex6.c (TEST_FUNCTION): Likewise.
4847
22bb134c
UD
48482006-08-12 Ulrich Drepper <drepper@redhat.com>
4849
4850 [BZ #2843]
4851 * pthread_join.c (pthread_join): Account for self being canceled
4852 when checking for deadlocks.
4853 * tst-join5.c: Cleanups. Allow to be used in tst-join6.
4854 (tf1): Don't print anything after pthread_join returns, this would be
4855 another cancellation point.
4856 (tf2): Likewise.
4857 * tst-join6.c: New file.
4858 * Makefile (tests): Add tst-join6.
4859
f1762c0c
UD
48602006-08-03 Ulrich Drepper <drepper@redhat.com>
4861
9c06eb66
UD
4862 [BZ #2892]
4863 * pthread_setspecific.c (__pthread_setspecific): Check
4864 out-of-range index before checking for unused key.
4865
f1762c0c
UD
4866 * sysdeps/pthread/gai_misc.h: New file.
4867
7bb1b2c9
UD
48682006-08-01 Ulrich Drepper <drepper@redhat.com>
4869
4870 * sysdeps/unix/sysv/linux/i386/smp.h: New file. Old Linux-specific
4871 file. Don't use sysctl.
4872 * sysdeps/unix/sysv/linux/smp.h: Always assume SMP. Archs can
4873 overwrite the file if this is likely not true.
4874
b06e7e9a
UD
48752006-07-31 Daniel Jacobowitz <dan@codesourcery.com>
4876
4877 * allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
4878 * Makefile (tests): Add tst-getpid3.
4879 * tst-getpid3.c: New file.
4880
b894c2ea
RM
48812006-07-30 Roland McGrath <roland@redhat.com>
4882
4883 * Makefile (libpthread-routines): Add ptw-sigsuspend.
4884
4885 * sysdeps/unix/sysv/linux/i386/not-cancel.h
4886 (pause_not_cancel): New macro.
4887 (nanosleep_not_cancel): New macro.
4888 (sigsuspend_not_cancel): New macro.
4889 * pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
4890 nanosleep_not_cancel macro from <not-cancel.h>.
4891 * pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
4892 macro from <not-cancel.h>.
4893
df47504c
UD
48942006-07-28 Ulrich Drepper <drepper@redhat.com>
4895 Jakub Jelinek <jakub@redhat.com>
4896
4897 * descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
4898 notification of PI mutex. Add ENQUEUE_MUTEX_PI.
4899 * pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
4900 * pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
4901 * pthread_mutex_init.c: Add support for priority inheritance mutex.
4902 * pthread_mutex_lock.c: Likewise.
4903 * pthread_mutex_timedlock.c: Likewise.
4904 * pthread_mutex_trylock.c: Likewise.
4905 * pthread_mutex_unlock.c: Likewise.
4906 * sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
4907 all mutexes.
4908 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
4909 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
4910 * sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
4911 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
4912 pthread-pi-defines.sym.
4913 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
4914 FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
4915 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
d5ba53f9
UD
4916 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
4917 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
4918 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
4919 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
4920 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
4921 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
df47504c
UD
4922 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
4923 _POSIX_THREAD_PRIO_INHERIT to 200112L.
4924 * tst-mutex1.c: Adjust to allow use in PI mutex test.
4925 * tst-mutex2.c: Likewise.
4926 * tst-mutex3.c: Likewise.
4927 * tst-mutex4.c: Likewise.
4928 * tst-mutex5.c: Likewise.
4929 * tst-mutex6.c: Likewise.
4930 * tst-mutex7.c: Likewise.
4931 * tst-mutex7a.c: Likewise.
4932 * tst-mutex8.c: Likewise.
4933 * tst-mutex9.c: Likewise.
4934 * tst-robust1.c: Likewise.
4935 * tst-robust7.c: Likewise.
4936 * tst-robust8.c: Likewise.
4937 * tst-mutexpi1.c: New file.
4938 * tst-mutexpi2.c: New file.
4939 * tst-mutexpi3.c: New file.
4940 * tst-mutexpi4.c: New file.
4941 * tst-mutexpi5.c: New file.
4942 * tst-mutexpi6.c: New file.
4943 * tst-mutexpi7.c: New file.
4944 * tst-mutexpi7a.c: New file.
4945 * tst-mutexpi8.c: New file.
4946 * tst-mutexpi9.c: New file.
4947 * tst-robust1.c: New file.
4948 * tst-robust2.c: New file.
4949 * tst-robust3.c: New file.
4950 * tst-robust4.c: New file.
4951 * tst-robust5.c: New file.
4952 * tst-robust6.c: New file.
4953 * tst-robust7.c: New file.
4954 * tst-robust8.c: New file.
4955 * Makefile (tests): Add the new tests.
4956
4957 * pthread_create.c (start_thread): Add some casts to avoid warnings.
4958 * pthread_mutex_destroy.c: Remove unneeded label.
4959
f3be81a9
UD
49602006-07-01 Ulrich Drepper <drepper@redhat.com>
4961
4962 * pthread_mutex_init.c (__pthread_mutex_init): Move some
4963 computations to compile time.
4964
c26ca5e1
UD
49652006-06-04 Ulrich Drepper <drepper@redhat.com>
4966
4967 * sysdeps/pthread/pthread.h: Add pthread_equal inline version.
4968
6f8a7dff
UD
49692006-05-15 Ulrich Drepper <drepper@redhat.com>
4970
c26ca5e1 4971 * sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
6f8a7dff 4972
3d237e42
UD
49732006-05-11 Ulrich Drepper <drepper@redhat.com>
4974
04974d63
UD
4975 * pthread_key_create.c (__pthread_key_create): Do away with
4976 __pthread_keys_lock.
4977
4978 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
4979 (__kernel_cpumask_size): Mark as hidden.
4980 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
4981
3d237e42
UD
4982 * sem_open.c (__sem_mappings_lock): Mark as hidden.
4983 * semaphoreP.h (__sem_mappings_lock): Likewise.
4984
790fc6e4
UD
49852006-05-10 Ulrich Drepper <drepper@redhat.com>
4986
4987 * pthread_atfork.c: Mark __dso_handle as hidden.
4988
be434a72
UD
49892006-05-09 Ulrich Drepper <drepper@redhat.com>
4990
4991 [BZ #2644]
4992 * sysdeps/pthread/unwind-forcedunwind.c: Different solution for
4993 the reload problem. Change the one path in pthread_cancel_init
4994 which causes the problem. Force gcc to reload. Simplify callers.
4995 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
4996 (_Unwind_GetBSP): Undo last patch.
4997
3142b1ac
UD
49982006-05-07 Ulrich Drepper <drepper@redhat.com>
4999
bf3635d3
UD
5000 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
5001 function pointer is reloaded after pthread_cancel_init calls.
3142b1ac
UD
5002
5003 [BZ #2644]
5004 * sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
5005 pointers are reloaded after pthread_cancel_init calls.
5006
27488789
UD
50072006-05-01 Ulrich Drepper <drepper@redhat.com>
5008
5009 * sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
5010 __always_inline.
5011
a6375d11
UD
50122006-04-27 Ulrich Drepper <drepper@redhat.com>
5013
5014 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
5015 Allocate new object which is passed to timer_sigev_thread so that
5016 the timer can be deleted before the new thread is scheduled.
5017
16a1d952
RM
50182006-04-26 Roland McGrath <roland@redhat.com>
5019
5020 * sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
5021
7960f2a7
UD
50222006-04-08 Ulrich Drepper <drepper@redhat.com>
5023
ab9a9ff8
UD
5024 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
5025 suffix for conditional jumps.
5026 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
5027 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
5028 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
5029 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
5030 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
5031 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
5032
7960f2a7
UD
5033 * init.c (sigcancel_handler): Compare with correct PID even if the
5034 thread is in the middle of a fork call.
5035 (sighandler_setxid): Likewise.
5036 Reported by Suzuki K P <suzuki@in.ibm.com> .
5037
2035d91c
UD
50382006-04-07 Jakub Jelinek <jakub@redhat.com>
5039
5040 * pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
5041
0292b0dd
UD
50422006-04-06 Ulrich Drepper <drepper@redhat.com>
5043
5044 * pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
5045 fails [Coverity CID 105].
5046
6738b3c0
UD
50472006-04-05 Ulrich Drepper <drepper@redhat.com>
5048
5049 * sysdeps/pthread/pthread.h: Add nonnull attributes.
5050
359157a5
RM
50512006-04-03 Steven Munroe <sjmunroe@us.ibm.com>
5052
5053 [BZ #2505]
5054 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
5055 Define __lll_rel_instr using lwsync.
5056
cd277b2d
UD
50572006-03-27 Ulrich Drepper <drepper@redhat.com>
5058
5059 * allocatestack.c (allocate_stack): Always initialize robust_head.
5060 * descr.h: Define struct robust_list_head.
5061 (struct pthread): Use robust_list_head in robust mutex list definition.
5062 Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
5063 * init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
5064 (__pthread_initialize_minimal_internal): Register robust_list with
5065 the kernel.
5066 * pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
5067 Declare __set_robust_list_avail.
5068 * pthread_create.c (start_thread): Register robust_list of new thread.
5069 [!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
5070 waiters.
5071 * pthread_mutex_destroy.c: For robust mutexes don't look at the
5072 number of users, it's unreliable.
5073 * pthread_mutex_init.c: Allow use of pshared robust mutexes if
5074 set_robust_list syscall is available.
5075 * pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
5076 * pthread_mutex_lock.c: Simplify robust mutex code a bit.
5077 Set robust_head.list_op_pending before trying to lock a robust mutex.
5078 * pthread_mutex_timedlock.c: Likewise.
5079 * pthread_mutex_trylock.c: Likewise.
5080 * pthread_mutex_unlock.c: Likewise for unlocking.
5081 * Makefile (tests): Add tst-robust8.
5082 * tst-robust8.c: New file.
5083
facac085
UD
50842006-03-08 Andreas Schwab <schwab@suse.de>
5085
5086 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
5087 (DL_SYSINFO_IMPLEMENTATION): Add missing newline.
5088
7ccbe1a1
RM
50892006-03-05 Roland McGrath <roland@redhat.com>
5090
5091 * configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
5092 and $config_os doesn't match *linux*.
5093
043cee37
RM
50942006-03-05 David S. Miller <davem@sunset.davemloft.net>
5095
5096 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
5097 Use __syscall_error.
5098 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
5099 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
5100 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
5101 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
5102 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
5103 * sysdeps/unix/sysv/linux/sparc/Makefile: New file.
5104
88bce79e
UD
51052006-03-02 Ulrich Drepper <drepper@redhat.com>
5106
5107 * sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
5108
672ec465
UD
51092006-03-01 Ulrich Drepper <drepper@redhat.com>
5110
5111 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
5112 (__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
5113 mutex.
5114 (__lll_robust_timedlock_wait): Likewise.
5115 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
5116 (__lll_robust_lock_wait): Likewise.
5117 (__lll_robust_timedlock_wait): Likewise.
5118 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c
5119 (__lll_robust_lock_wait): Likewise.
5120 (__lll_robust_timedlock_wait): Likewise.
5121
c4a4875d
RM
51222006-03-01 Jakub Jelinek <jakub@redhat.com>
5123
5124 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
5125 lll_robust_mutex_trylock, lll_robust_mutex_lock,
5126 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
5127 lll_robust_mutex_unlock): Define.
5128 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
5129
3192fd8e
RM
51302006-02-28 H.J. Lu <hongjiu.lu@intel.com>
5131
5132 * sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
5133 instead of <clone.S>.
5134
14d44b19
RM
51352006-02-27 Jakub Jelinek <jakub@redhat.com>
5136
5137 * Makefile (libpthread-routines): Add
5138 pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
5139 and pthread_mutex_[sg]etprioceiling.
5140 * Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
5141 pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
5142 pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
5143 pthread_mutex_setprioceiling.
5144 * sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
5145 PTHREAD_PRIO_PROTECT): New enum values.
5146 (pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
5147 pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
5148 pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
5149 prototypes.
5150 * pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
5151 PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
5152 (PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
5153 Define.
5154 (PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
5155 PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
5156 PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
5157 (PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
5158 and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
5159 * pthread_mutex_init.c (__pthread_mutex_init): For the time being
5160 return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
5161 protocol mutexes.
5162 * pthread_mutex_getprioceiling.c: New file.
5163 * pthread_mutex_setprioceiling.c: New file.
5164 * pthread_mutexattr_getprioceiling.c: New file.
5165 * pthread_mutexattr_setprioceiling.c: New file.
5166 * pthread_mutexattr_getprotocol.c: New file.
5167 * pthread_mutexattr_setprotocol.c: New file.
5168
62f6b9b2
RM
51692006-02-27 Daniel Jacobowitz <dan@codesourcery.com>
5170
5171 * sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
5172
e0a3ed4f
RM
51732006-02-27 Roland McGrath <roland@redhat.com>
5174
5175 * sysdeps/pthread/Subdirs: List nptl here too.
5176 * configure (libc_add_on_canonical): New variable.
5177
5178 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
5179
5180 * sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
5181 self to get main source tree's file.
5182 * sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
5183 * sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
5184 * sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
5185 * sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
5186 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
5187 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
5188 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
5189 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
5190 * sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
5191 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
5192 * sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
5193 * sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
5194 * sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
5195
5196 * Makefile: Use $(sysdirs) in vpath directive.
5197
5198 * sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
5199 (CPPFLAGS-timer_routines.c): Likewise.
5200
5201 * Makeconfig (includes): Variable removed.
5202
84cfa284
RM
52032006-02-26 Roland McGrath <roland@redhat.com>
5204
5205 * sysdeps/generic/pt-raise.c: Moved to ...
5206 * pt-raise.c: ... here.
5207 * sysdeps/generic/lowlevellock.h: Moved to ...
5208 * lowlevellock.h: ... here.
5209
c5132ca1
RM
52102006-02-23 Roland McGrath <roland@redhat.com>
5211
5212 * descr.h (struct pthread): Add final member `end_padding'.
5213 (PTHREAD_STRUCT_END_PADDING): Use it.
5214
52152006-02-20 Roland McGrath <roland@redhat.com>
5216
5217 * sysdeps/mips: Directory removed, saved in ports repository.
5218 * sysdeps/unix/sysv/linux/mips: Likewise.
5219
a93317a1
UD
52202006-02-18 Ulrich Drepper <drepper@redhat.com>
5221
5222 * tst-robust1.c: Add second mutex to check that the mutex list is
5223 handled correctly.
5224
f1740bc4
UD
52252006-02-17 Jakub Jelinek <jakub@redhat.com>
5226
5227 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
5228 lll_robust_mutex_trylock, lll_robust_mutex_lock,
5229 lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
5230 lll_robust_mutex_unlock): New macros.
5231 (__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
5232 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
5233 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
5234 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
5235 * sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
5236
a7245bf5
UD
52372006-02-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5238
5239 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
5240 definitions.
5241 * sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
5242
49bfc1fe
UD
52432006-02-17 Ulrich Drepper <drepper@redhat.com>
5244
5245 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
5246 (lll_robust_mutex_unlock): Avoid unnecessary wakeups.
5247 * sysdeps/unix/sysv/linux/i386/lowlevellock.h
5248 (lll_robust_mutex_unlock): Likewise.
5249
56e987ac
UD
52502006-02-13 Jakub Jelinek <jakub@redhat.com>
5251
5252 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
5253 Set robust_list.__next rather than robust_list.
5254 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
5255 (__pthread_list_t): New typedef.
5256 (pthread_mutex_t): Replace __next and __prev fields with __list.
5257 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
5258 (__pthread_list_t): New typedef.
5259 (pthread_mutex_t): Replace __next and __prev fields with __list.
5260 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
5261 (__pthread_list_t, __pthread_slist_t): New typedefs.
5262 (pthread_mutex_t): Replace __next and __prev fields with __list.
5263 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
5264 (__pthread_list_t, __pthread_slist_t): New typedefs.
5265 (pthread_mutex_t): Replace __next and __prev fields with __list.
5266 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
5267 (__pthread_list_t, __pthread_slist_t): New typedefs.
5268 (pthread_mutex_t): Replace __next and __prev fields with __list.
5269 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
5270 (__pthread_slist_t): New typedef.
5271 (pthread_mutex_t): Replace __next field with __list.
5272
683040c3
UD
52732006-02-15 Ulrich Drepper <drepper@redhat.com>
5274
25bc77e6 5275 * pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
683040c3
UD
5276 PTHREAD_MUTEX_OWNERDEAD.
5277 (PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
5278 Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
5279 * Makefile (libpthread-routines): Add lowlevelrobustlock.
5280 * pthread_create.c (start_thread): Very much simplify robust_list loop.
5281 * pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
5282 to PTHREAD_MUTEX_INCONSISTENT.
5283 * pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
5284 * pthread_mutex_lock.c: Reimplement robust mutex handling.
5285 * pthread_mutex_trylock.c: Likewise.
5286 * pthread_mutex_timedlock.c: Likewise.
5287 * pthread_mutex_unlock.c: Likewise.
5288 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
5289 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
5290 lowlevelrobustlock.sym.
5291 * sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
5292 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
5293 definitions.
5294 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5295 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
5296 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
5297 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
5298 * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
5299
bbf209a4
UD
53002006-02-12 Ulrich Drepper <drepper@redhat.com>
5301
b007ce7c
UD
5302 * allocatestack.c (allocate_stack): Initialize robust_list.
5303 * init.c (__pthread_initialize_minimal_internal): Likewise.
5304 * descr.h (struct xid_command): Pretty printing.
5305 (struct pthread): Use __pthread_list_t or __pthread_slist_t for
5306 robust_list. Adjust macros.
5307 * pthread_create.c (start_thread): Adjust robust_list handling.
5308 * phtread_mutex_unlock.c: Don't allow unlocking from any thread
5309 but the owner for all robust mutex types.
5310 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
5311 __pthread_list_t and __pthread_slist_t. Use them in pthread_mutex_t.
0ca3379d 5312 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
b007ce7c
UD
5313 * sysdeps/pthread/pthread.h: Adjust mutex initializers.
5314
bbf209a4 5315 * sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
b42a214c 5316 openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
bbf209a4 5317
b576fca1
UD
53182006-02-08 Jakub Jelinek <jakub@redhat.com>
5319
5320 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
5321 lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
5322
a6df7387
UD
53232006-01-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5324
5325 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
5326 Return status.
5327 (lll_futex_timed_wait): Define.
5328
7c65e900
UD
53292006-01-19 Ulrich Drepper <drepper@redhat.com>
5330
5331 * tst-cancel4.c: Test ppoll.
5332
5f9f21e8
AJ
53332006-01-18 Andreas Jaeger <aj@suse.de>
5334
cf407dfb 5335 [BZ #2167]
5f9f21e8
AJ
5336 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
5337 (pthread_mutex_t): Follow changes for other archs. Based on patch
5338 by Jim Gifford <patches@jg555.com>.
5339
251278c6
UD
53402006-01-13 Richard Henderson <rth@redhat.com>
5341
5342 * sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
5343
de59a291
RM
53442006-01-10 Roland McGrath <roland@redhat.com>
5345
5346 * sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
5347 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
5348 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
5349 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
5350 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
5351 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
5352 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
5353 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
5354 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
0ca13e14 5355 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
de59a291 5356
931786ee
RM
53572006-01-09 Roland McGrath <roland@redhat.com>
5358
5d42c8c3
RM
5359 * tst-initializers1-c89.c: New file.
5360 * tst-initializers1-c99.c: New file.
5361 * tst-initializers1-gnu89.c: New file.
5362 * tst-initializers1-gnu99.c: New file.
5363 * Makefile (tests): Add them.
5364 (CFLAGS-tst-initializers1-c89.c): New variable.
5365 (CFLAGS-tst-initializers1-c99.c): New variable.
5366 (CFLAGS-tst-initializers1-gnu89.c): New variable.
5367 (CFLAGS-tst-initializers1-gnu99.c): New variable.
5368
931786ee
RM
5369 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
5370 Use __extension__ on anonymous union definition.
5371 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5372 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
5373 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5374 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
3c238452 5375 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
931786ee 5376
8dd18431
RM
53772006-01-08 Jakub Jelinek <jakub@redhat.com>
5378
5379 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
5380 Don't give the union a name because it changes the mangled name.
5381 Instead name the struct for __data.
5382 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
5383 Likewise.
5384 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
5385 Likewise.
5386
ae11e412
UD
53872006-01-09 Jakub Jelinek <jakub@redhat.com>
5388
5389 * sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
5390 stack bias to mc_ftp field.
5391
c6885aa1
UD
53922006-01-07 Ulrich Drepper <drepper@redhat.com>
5393
5394 * sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
6e741bc3 5395 being too clever and reloading the futex value where it shouldn't.
c6885aa1 5396
ae4ad00a
UD
53972006-01-06 Ulrich Drepper <drepper@redhat.com>
5398
5399 * descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
5400 correct type.
5401
ced368f7
UD
54022006-01-06 Jakub Jelinek <jakub@redhat.com>
5403
5404 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
5405 Add cfi directives.
5406
d804f5df
UD
54072006-01-06 Ulrich Drepper <drepper@redhat.com>
5408
cbbbb188 5409 * sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
719046c1
UD
5410 * sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
5411 rename in tcbhead_t.
5412
d804f5df
UD
5413 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
5414 Don't give the union a name because it changes the mangled name.
5415 Instead name the struct for __data.
5416 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5417 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5418 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5419 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
5420 * pthread_create.c (start_thread): Adjust robust mutex free loop.
5421 * descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
5422
679d83ba
UD
54232006-01-05 Ulrich Drepper <drepper@redhat.com>
5424
5425 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
5426 Return status.
5427 (lll_futex_timed_wait): Define.
5428 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
5429 * sysdeps/pthread/aio_misc.h: New file.
5430
06dc5bf3
RM
54312006-01-03 Joseph S. Myers <joseph@codesourcery.com>
5432
5433 * Makefile ($(objpfx)$(multidir)): Use mkdir -p.
5434
9759bbf1
UD
54352006-01-03 Steven Munroe <sjmunroe@us.ibm.com>
5436
5437 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5438 (PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
5439 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
5440
db59b28b
UD
54412006-01-04 Ulrich Drepper <drepper@redhat.com>
5442
5443 * tst-cancel24.cc: Use C headers instead of C++ headers.
5444
b01fe5f7
UD
54452006-01-03 Jakub Jelinek <jakub@redhat.com>
5446
5447 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
5448 sparc-linux configured glibc.
5449 (lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
5450 (__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
5451 __lll_mutex_cond_lock, __lll_mutex_timedlock): Use
5452 atomic_compare_and_exchange_val_24_acq instead of
5453 atomic_compare_and_exchange_val_acq.
5454 (lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
5455 instead of atomic_exchange_rel.
5456 * sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
5457 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
5458 file.
5459 * sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
5460 file.
5461 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
5462 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
5463 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
5464 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
5465 * sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
5466 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
5467 New file.
5468 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
5469 New file.
5470 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
5471 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
5472 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
5473 file.
5474 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
5475 file.
5476 * sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
5477
35c2fd59
UD
54782006-01-03 Ulrich Drepper <drepper@redhat.com>
5479
5480 * sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
5481 mutex initializers.
5482
305bb37e
UD
54832006-01-02 Jakub Jelinek <jakub@redhat.com>
5484
5485 * sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
5486 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5487 THREAD_COPY_POINTER_GUARD): Define.
5488 * sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
5489 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
5490
cc792128
UD
54912006-01-01 Ulrich Drepper <drepper@redhat.com>
5492
5493 * version.c: Update copyright year.
5494
db0a00d3
UD
54952005-12-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5496
5497 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
5498 .eh_frame section, use cfi_* directives.
5499 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
5500
b36205c4
UD
55012005-12-30 Ulrich Drepper <drepper@redhat.com>
5502
5503 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
5504 now.
5505
8b4f1598
UD
55062005-12-29 Ulrich Drepper <drepper@redhat.com>
5507
5508 * sysdeps/pthread/sigaction.c: Removed.
5509 * sigaction.c: New file.
5510 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
5511
fec5592d
UD
55122005-12-28 Ulrich Drepper <drepper@redhat.com>
5513
5514 * Makefile (tests): Add tst-signal7.
5515 * tst-signal7.c: New file.
5516
db169ed5
RM
55172005-12-27 Roland McGrath <roland@redhat.com>
5518
5519 * sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
5520 (_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
5521 * sysdeps/alpha/jmpbuf-unwind.h: Likewise.
5522 * sysdeps/i386/jmpbuf-unwind.h: Likewise.
5523 * sysdeps/mips/jmpbuf-unwind.h: Likewise.
5524 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
5525 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
5526 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
5527 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
5528 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
5529 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
5530
bfffffae
UD
55312005-12-27 Jakub Jelinek <jakub@redhat.com>
5532
5533 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
5534 and __prev field to pthread_mutex_t.
5535 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
5536 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
5537 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
5538 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
5539 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
5540 to pthread_mutex_t.
5541
1bcfb5a5
UD
55422005-12-26 Ulrich Drepper <drepper@redhat.com>
5543
5544 * pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
5545 PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
5546 PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
5547 PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
5548 PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
5549 and PTHREAD_MUTEXATTR_FLAG_BITS.
5550 * descr.h (struct pthread): Add robust_list field and define
5551 ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
5552 * pthread_mutexattr_getrobust.c: New file.
5553 * pthread_mutexattr_setrobust.c: New file.
5554 * pthread_mutex_consistent.c: New file.
5555 * sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
5556 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
5557 Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
5558 Adjust pthread_mutex_t initializers.
5559 * nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
5560 field to pthread_mutex_t.
5561 * nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
5562 and __prev field to pthread_mutex_t.
5563 * Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
5564 pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
5565 * pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
5566 and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
5567 * pthread_mutexattr_gettype.c: Likewise.
5568 * pthread_mutexattr_setpshared.c: Likewise.
5569 * pthread_mutexattr_settype.c: Likewise.
5570 * pthread_mutex_init.c: Reject robust+pshared attribute for now.
5571 Initialize mutex kind according to robust flag.
5572 * pthread_mutex_lock.c: Implement local robust mutex.
5573 * pthread_mutex_timedlock.c: Likewise.
5574 * pthread_mutex_trylock.c: Likewise.
5575 * pthread_mutex_unlock.c: Likewise.
5576 * pthread_create.c (start_thread): Mark robust mutexes which remained
5577 locked as dead.
5578 * tst-robust1.c: New file.
5579 * tst-robust2.c: New file.
5580 * tst-robust3.c: New file.
5581 * tst-robust4.c: New file.
5582 * tst-robust5.c: New file.
5583 * tst-robust6.c: New file.
5584 * tst-robust7.c: New file.
5585 * Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
5586 pthread_mutexattr_setrobust, and pthread_mutex_consistent.
5587 (tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
5588 tst-robust5, tst-robust6, and tst-robust7.
5589
5590 * tst-typesizes.c: New file.
5591 * Makefile (tests): Add tst-typesizes.
5592
5593 * tst-once3.c: More debug output.
5594
9333ed0d
UD
55952005-12-24 Ulrich Drepper <drepper@redhat.com>
5596
d4d138a4
UD
5597 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
5598 missing after last change.
5599
bfffffae 5600 * version.c: Update copyright year.
9333ed0d 5601
dcc73a8d
UD
56022005-12-23 Ulrich Drepper <drepper@redhat.com>
5603
5604 * pthread_mutex_destroy.c: Set mutex type to an invalid value.
5605 * pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
5606 * pthread_mutex_trylock.c: Likewise.
5607 * pthread_mutex_timedlock.c: Likewise.
5608 * pthread_mutex_unlock.c: Likewise.
5609
879f3ca6
RM
56102005-12-22 Roland McGrath <roland@redhat.com>
5611
5612 * sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
5613 so that #include_next's search location is not reset to the -I..
5614 directory where <nptl/...> can be found.
5615
077a0da7
UD
56162005-12-22 Ulrich Drepper <drepper@redhat.com>
5617
5618 [BZ #1913]
5619 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
5620 Fix unwind info. Remove useless branch prediction prefix.
7735afa2
UD
5621 * tst-cancel24.cc: New file.
5622 * Makefile: Add rules to build and run tst-cancel24.
077a0da7 5623
8dea90aa
RM
56242005-12-21 Roland McGrath <roland@redhat.com>
5625
5626 * libc-cancellation.c: Use <> rather than "" #includes.
5627 * pt-cleanup.c: Likewise.
5628 * pthread_create.c: Likewise.
5629 * pthread_join.c: Likewise.
5630 * pthread_timedjoin.c: Likewise.
5631 * pthread_tryjoin.c: Likewise.
5632 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
5633 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
5634 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
5635 * unwind.c: Likewise.
5636
8da21f96
UD
56372005-12-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5638
5639 * sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
5640 * sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
5641 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5642 THREAD_COPY_POINTER_GUARD): Define.
5643
00c2b3b9
UD
56442005-12-19 Jakub Jelinek <jakub@redhat.com>
5645
5646 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
5647 rather than one.
5648 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5649 THREAD_COPY_POINTER_GUARD): Define.
5650 * sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
5651 * sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
5652 (THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
5653 THREAD_COPY_POINTER_GUARD): Define.
5654 * sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
5655 * sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
5656 THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
5657 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
5658 Use PTR_DEMANGLE for B0 if defined.
5659
827b7087
UD
56602005-12-17 Ulrich Drepper <drepper@redhat.com>
5661
5662 * pthread_create.c (__pthread_create_2_1): Use
5663 THREAD_COPY_POINTER_GUARD if available.
5664 * sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
5665 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
5666 * sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
5667 Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
5668 * sysdeps/x86_64/tls.h: Likewise.
5669
2826ac7e
RM
56702005-12-15 Roland McGrath <roland@redhat.com>
5671
5672 * sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
5673
b6ab06ce
UD
56742005-12-13 Ulrich Drepper <drepper@redhat.com>
5675
5676 * sysdeps/pthread/sigfillset.c: Adjust for files moved out of
5677 sysdeps/generic.
5678 * errno-loc.c: New file.
5679
f0d1a3b5
RM
56802005-12-12 Roland McGrath <roland@redhat.com>
5681
5682 * init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
5683 adjustments before choosing stack size. Update minimum stack size
5684 calculation to match allocate_stack change.
5685
db13ddbc
UD
56862005-12-12 Ulrich Drepper <drepper@redhat.com>
5687
5688 * allocatestack.c (allocate_stack): Don't demand that there is an
5689 additional full page available on the stack beside guard, TLS, the
5690 minimum stack.
5691
088f460f
UD
56922005-11-24 Ulrich Drepper <drepper@redhat.com>
5693
5694 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
5695 (__cleanup_fct_attribute): Use __regparm__ not regparm.
5696
5697 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
5698 compiling 32-bit code we must define __cleanup_fct_attribute.
5699
16feadf2
UD
5700005-11-24 Jakub Jelinek <jakub@redhat.com>
5701
5702 [BZ #1920]
5703 * sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
5704 __attribute__ instead of __attribute.
5705 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
5706 (__cleanup_fct_attribute): Likewise.
5707
e6e493bb
UD
57082005-11-17 Jakub Jelinek <jakub@redhat.com>
5709
5710 * sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
5711 a write barrier before writing libgcc_s_getcfa.
5712
8e635611
UD
57132005-11-06 Ulrich Drepper <drepper@redhat.com>
5714
5715 * sysdeps/unix/sysv/linux/configure: Removed.
5716
ce33ee7c
UD
57172005-11-05 Ulrich Drepper <drepper@redhat.com>
5718
5719 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
5720 optional init_array/fini_array support.
5721
20d511e0
RM
57222005-10-24 Roland McGrath <roland@redhat.com>
5723
5724 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
5725 versioned_symbol use.
5726
fe60d146
RM
57272005-10-16 Roland McGrath <roland@redhat.com>
5728
5729 * init.c (__pthread_initialize_minimal_internal): Even when using a
5730 compile-time default stack size, apply the minimum that allocate_stack
5731 will require, and round up to page size.
5732
0faa1cf5
RM
57332005-10-10 Daniel Jacobowitz <dan@codesourcery.com>
5734
5735 * Makefile ($(test-modules)): Remove static pattern rule.
5736
f9126cc2 57372005-10-14 Jakub Jelinek <jakub@redhat.com>
b42a214c 5738 Ulrich Drepper <drepper@redhat.com>
f9126cc2
UD
5739
5740 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
5741 alignment in callback function.
5742 * Makefile: Add rules to build and run tst-align3.
5743 * tst-align3.c: New file.
5744
015a5d22
RM
57452005-10-03 Jakub Jelinek <jakub@redhat.com>
5746
5747 * allocatestack.c (setxid_signal_thread): Add
5748 INTERNAL_SYSCALL_DECL (err).
5749
b71ce910
UD
57502005-10-02 Jakub Jelinek <jakub@redhat.com>
5751
5752 * allocatestack.c (setxid_signal_thread): Need to use
5753 atomic_compare_and_exchange_bool_acq.
5754
dff9a7a1 57552005-10-01 Ulrich Drepper <drepper@redhat.com>
b42a214c 5756 Jakub Jelinek <jakub@redhat.com>
dff9a7a1
UD
5757
5758 * descr.h: Define SETXID_BIT and SETXID_BITMASK. Adjust
5759 CANCEL_RESTMASK.
5760 (struct pthread): Move specific_used field to avoid padding.
5761 Add setxid_futex field.
5762 * init.c (sighandler_setxid): Reset setxid flag and release the
5763 setxid futex.
5764 * allocatestack.c (setxid_signal_thread): New function. Broken
5765 out of the bodies of the two loops in __nptl_setxid. For undetached
5766 threads check whether they are exiting and if yes, don't send a signal.
5767 (__nptl_setxid): Simplify loops by using setxid_signal_thread.
5768 * pthread_create.c (start_thread): For undetached threads, check
5769 whether setxid bit is set. If yes, wait until signal has been
5770 processed.
5771
5772 * allocatestack.c (STACK_VARIABLES): Initialize them.
5773 * pthread_create.c (__pthread_create_2_1): Initialize pd.
5774
560b4709
UD
57752004-09-02 Jakub Jelinek <jakub@redhat.com>
5776
5777 * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
5778 waiters, awake all waiters on the associated mutex.
5779
5eac4760
RM
57802005-09-22 Roland McGrath <roland@redhat.com>
5781
5782 * perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
5783 ../sysdeps/x86_64/hp-timing.h).
5784
a3615024
UD
57852005-08-29 Jakub Jelinek <jakub@redhat.com>
5786
5787 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
5788 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5789 (lll_futex_wake_unlock): Define.
5790 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
5791 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5792 (lll_futex_wake_unlock): Define.
5793 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
5794 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5795 (lll_futex_wake_unlock): Define.
5796 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
5797 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5798 (lll_futex_wake_unlock): Define.
5799 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
5800 FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5801 (lll_futex_wake_unlock): Define.
5802 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
5803 lll_futex_wake_unlock.
5804 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
5805 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5806 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
5807 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
5808 (FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
5809 (__pthread_cond_signal): Use FUTEX_WAKE_OP.
5810
bf017034
UD
58112005-09-05 Kaz Kojima <kkojima@rr.iij4u.or.jp>
5812
5813 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
5814 Fix typo in register name.
5815
fd4af664
UD
58162005-08-23 Ulrich Drepper <drepper@redhat.com>
5817
8558d715
UD
5818 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
5819 Use __sigfillset. Document that sigfillset does the right thing wrt
5820 to SIGSETXID.
fd4af664 5821
3fd1bc67
UD
58222005-07-11 Jakub Jelinek <jakub@redhat.com>
5823
44d75caf 5824 [BZ #1102]
3fd1bc67
UD
5825 * sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
5826 PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
5827 PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
5828 PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
5829 PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
5830 PTHREAD_COND_INITIALIZER): Supply zeros for all fields
5831 in the structure.
5832 * Makefile (tests): Add tst-initializers1.
5833 (CFLAGS-tst-initializers1.c): Set.
5834 * tst-initializers1.c: New test.
5835
553185e2
UD
58362005-07-11 Jakub Jelinek <jakub@redhat.com>
5837
5838 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
5839 Make sure __flags are located at offset 48 from the start of the
5840 structure.
5841
8df08cb2
RM
58422005-07-02 Roland McGrath <roland@redhat.com>
5843
5844 * Makeconfig: Comment fix.
5845
253eb3a0
UD
58462005-07-05 Jakub Jelinek <jakub@redhat.com>
5847
5848 * descr.h (PTHREAD_STRUCT_END_PADDING): Define.
5849 * sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
5850 is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
5851 (THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
5852 TLS_PRE_TCB_SIZE is sizeof (struct pthread).
5853 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5854 * sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
5855 Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
5856 * sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
5857 assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
5858
bb6e8ca3
UD
58592005-06-25 Jakub Jelinek <jakub@redhat.com>
5860
5861 * sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
5862 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5863 * sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
5864 fields.
5865 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5866 * sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
5867 field. Put in sysinfo field unconditionally.
5868 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5869 * sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
5870 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5871 * sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
5872 fields.
5873 (THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
5874 * pthread_create.c (__pthread_create_2_1): Use
5875 THREAD_COPY_STACK_GUARD macro.
5876 * Makefile: Add rules to build and run tst-stackguard1{,-static}
5877 tests.
5878 * tst-stackguard1.c: New file.
5879 * tst-stackguard1-static.c: New file.
5880
99c7f870
UD
58812005-06-14 Alan Modra <amodra@bigpond.net.au>
5882
5883 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
5884 Invoke CGOTSETUP and CGOTRESTORE.
5885 (CGOTSETUP, CGOTRESTORE): Define.
5886
8074c5c5
RM
58872005-05-29 Richard Henderson <rth@redhat.com>
5888
5889 * tst-cancel4.c (WRITE_BUFFER_SIZE): New.
5890 (tf_write, tf_writev): Use it.
5891 (do_test): Use socketpair instead of pipe. Set SO_SNDBUF to
5892 the system minimum.
5893
c179df4e
UD
58942005-05-23 Jakub Jelinek <jakub@redhat.com>
5895
5896 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
5897 [IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
5898 __librt_*_asynccancel@local.
5899
b0e196a4
UD
59002005-05-17 Alan Modra <amodra@bigpond.net.au>
5901
5902 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
5903 all occurrences of JUMPTARGET. Instead append @local to labels.
5904
f7d78e18
UD
59052005-05-20 Jakub Jelinek <jakub@redhat.com>
5906
5907 * sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
5908 size/alignment of struct pthread rather than tcbhead_t.
5909 * sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5910 Likewise.
5911 * sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5912 Likewise.
5913 * sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
5914 Likewise.
5915
363dd976
UD
59162005-05-19 Richard Henderson <rth@redhat.com>
5917
5918 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
5919 __sync_val_compare_and_swap, not explicit _si variant.
5920 * sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
5921
1ad9da69
UD
59222005-05-03 Ulrich Drepper <drepper@redhat.com>
5923
5924 [BZ #915]
5925 * sysdeps/pthread/pthread.h: Avoid empty initializers.
5926
5085cd1f
UD
59272005-05-03 Jakub Jelinek <jakub@redhat.com>
5928
5929 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
5930 .eh_frame section, use cfi_* directives.
5931
ad529081
UD
59322005-04-27 Jakub Jelinek <jakub@redhat.com>
5933
5934 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
5935 of "" includes.
5936
dea99685
UD
59372005-04-27 Ulrich Drepper <drepper@redhat.com>
5938
c06aad09 5939 [BZ #1075]
dea99685
UD
5940 * tst-cancel17.c (do_test): Add arbitrary factor to make sure
5941 aio_write blocks.
5942
84060bad
RM
59432005-04-27 Roland McGrath <roland@redhat.com>
5944
5e2d8ac8
RM
5945 * Makefile (tests): Remove tst-clock2.
5946
84060bad
RM
5947 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
5948 CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
5949 translating to the kernel clockid_t for our own process/thread clock.
5950
5951 * sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
5952
4a035b9d
RM
59532005-04-15 Jakub Jelinek <jakub@redhat.com>
5954
5955 * old_pthread_cond_init.c: Include <errno.h>.
5956 (__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
5957 process shared or uses clock other than CLOCK_REALTIME.
5958 * pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
5959
edac0e8f
UD
59602005-04-13 David S. Miller <davem@davemloft.net>
5961
5962 * sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
5963 * sysdeps/sparc/sparc64/clone.S: New file.
5964
613d8d52
RM
59652005-04-05 Jakub Jelinek <jakub@redhat.com>
5966
44d75caf 5967 [BZ #1102]
613d8d52
RM
5968 * sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
5969 __inline instead of inline.
5970 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
5971
ee618985
UD
59722005-03-31 Jakub Jelinek <jakub@redhat.com>
5973
5974 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
5975 functionally equivalent, but shorter instructions.
5976 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
5977 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
5978 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
5979 Likewise.
5980 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
5981 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
5982 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
5983 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
5984 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
5985 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
5986 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
5987 Likewise.
5988 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
5989 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
5990 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
5991 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
5992 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
5993
f850220b
AJ
59942005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
5995
5996 * sysdeps/mips/Makefile: New file.
5997 * sysdeps/mips/nptl-sysdep.S: New file.
5998 * sysdeps/mips/tcb-offsets.sym: New file.
5999 * sysdeps/mips/pthread_spin_lock.S: New file.
6000 * sysdeps/mips/pthread_spin_trylock.S: New file.
6001 * sysdeps/mips/pthreaddef.h: New file.
6002 * sysdeps/mips/tls.h: New file.
6003 * sysdeps/mips/jmpbuf-unwind.h: New file.
6004 * sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
6005 * sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
6006 * sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
6007 * sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
6008 * sysdeps/unix/sysv/linux/mips/fork.c: New file.
6009 * sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
6010 * sysdeps/unix/sysv/linux/mips/vfork.S: New file.
6011 * sysdeps/unix/sysv/linux/mips/clone.S: New file.
6012 * sysdeps/unix/sysv/linux/mips/createthread.c: New file.
6013 * sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
6014
1e6da2b0
UD
60152005-03-23 Ulrich Drepper <drepper@redhat.com>
6016
c06aad09 6017 [BZ #1112]
1e6da2b0
UD
6018 * pthread_create.c (__pthread_create_2_1): Rename syscall error
6019 variable to scerr.
6020
5233d576
RM
60212005-03-10 Jakub Jelinek <jakub@redhat.com>
6022
6023 * tst-getpid1.c (do_test): Align stack passed to clone{2,}.
6024
3053ff11
RM
60252005-02-25 Roland McGrath <roland@redhat.com>
6026
6027 * alloca_cutoff.c: Correct license text.
6028 * tst-unload.c: Likewise.
6029 * sysdeps/pthread/allocalim.h: Likewise.
6030 * sysdeps/pthread/pt-initfini.c: Likewise.
6031 * sysdeps/pthread/bits/libc-lock.h: Likewise.
6032 * sysdeps/pthread/bits/sigthread.h: Likewise.
6033 * sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
6034 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
6035
9cfe5381
RM
60362005-02-16 Roland McGrath <roland@redhat.com>
6037
6038 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
6039 Use unsigned int * for ptr_nthreads.
6040
7de00121
RM
60412005-02-14 Alan Modra <amodra@bigpond.net.au>
6042
20d511e0 6043 [BZ #721]
7de00121
RM
6044 * sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
6045 gcc4.
6046
4bae262d
UD
60472005-02-07 Richard Henderson <rth@redhat.com>
6048
613d8d52 6049 [BZ #787]
4bae262d
UD
6050 * sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
6051 argument.
6052
75df54b7
RM
60532004-11-03 Marcus Brinkmann <marcus@gnu.org>
6054
6055 * sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
6056 order of arguments in invocation of atomic_add_zero.
6057
ea9c93cc
UD
60582005-01-26 Jakub Jelinek <jakub@redhat.com>
6059
9cfe5381 6060 [BZ #737]
ea9c93cc
UD
6061 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
6062 Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
6063 at least gotntpoff relocation and addition.
6064 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
6065 Likewise.
6066 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
6067 Likewise.
6068 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
6069 Likewise.
6070
9dcafc55
UD
60712005-01-06 Ulrich Drepper <drepper@redhat.com>
6072
6073 * allocatestack.c (init_one_static_tls): Adjust initialization of DTV
6074 entry for static tls deallocation fix.
6075 * sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
6076 also contains information whether the memory pointed to is static
6077 TLS or not.
6078 * sysdeps/i386/tls.h: Likewise.
6079 * sysdeps/ia64/tls.h: Likewise.
6080 * sysdeps/powerpc/tls.h: Likewise.
6081 * sysdeps/s390/tls.h: Likewise.
6082 * sysdeps/sh/tls.h: Likewise.
6083 * sysdeps/sparc/tls.h: Likewise.
6084 * sysdeps/x86_64/tls.h: Likewise.
6085
a71c152c
UD
60862004-12-27 Ulrich Drepper <drepper@redhat.com>
6087
6088 * init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
6089
d143c49e
UD
60902004-12-21 Jakub Jelinek <jakub@redhat.com>
6091
6092 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
6093 %esp.
6094 * Makefile (tests): Add tst-align2.
6095 * tst-align2.c: New test.
6096 * sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
6097 -mpreferred-stack-boundary=4.
6098
50130ded
RM
60992004-12-18 Roland McGrath <roland@redhat.com>
6100
6101 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
6102 New file removed withdrawn for the moment.
6103
cbc53df0
RH
61042004-12-17 Richard Henderson <rth@redhat.com>
6105
6106 * sysdeps/unix/sysv/linux/alpha/clone.S: New file.
6107 * sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
50130ded 6108
fb9d5c73
UD
61092004-12-16 Ulrich Drepper <drepper@redhat.com>
6110
03332aa6
UD
6111 * sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
6112 Increased PTHREAD_STACK_MIN.
6113
fb9d5c73
UD
6114 * tst-context1.c (stacks): Use bigger stack size.
6115
e853ea00
UD
61162004-12-16 Jakub Jelinek <jakub@redhat.com>
6117
6118 * sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
6119 * sysdeps/sparc/tcb-offsets.sym: Add TID.
6120
f23673fc
UD
61212004-12-15 Jakub Jelinek <jakub@redhat.com>
6122
6123 * sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
6124 * sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
6125 * sysdeps/s390/tcb-offsets.sym (TID): Add.
6126
917fbe70
UD
61272004-12-15 Ulrich Drepper <drepper@redhat.com>
6128
6129 * sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
6130
1f9d7c27
UD
61312004-12-14 Ulrich Drepper <drepper@redhat.com>
6132
6133 * sysdeps/powerpc/tcb-offsets.sym: Add TID.
6134 * sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
6135
6136 * tst-getpid1.c: If child crashes, report this first. Print which
6137 signal.
6138
bf7c04cd
UD
61392004-12-09 Ulrich Drepper <drepper@redhat.com>
6140
6141 * init.c (__pthread_initialize_minimal_internal): Also unblock
6142 SIGSETXID.
6143
61442004-12-01 Jakub Jelinek <jakub@redhat.com>
6145
6146 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
6147 _POSIX_THREAD_CPUTIME): Define to 0.
6148 * sysdeps/pthread/timer_create.c (timer_create): Remove unused code
6149 handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
6150 * sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
6151 __timer_signal_thread_tclk): Remove.
6152 (init_module): Remove their initialization.
6153 (thread_cleanup): Remove their cleanup assertions.
6154 * sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
6155 __timer_signal_thread_tclk): Remove.
6156 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
75df54b7 6157 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
bf7c04cd
UD
6158 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
6159
484cc801
UD
61602004-12-07 Jakub Jelinek <jakub@redhat.com>
6161
6162 * sysdeps/ia64/tcb-offsets.sym (TID): Add.
6163 * sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
6164
6165 * Makefile (tests): Add tst-getpid2.
6166 * tst-getpid1.c (TEST_CLONE_FLAGS): Define.
6167 (do_test): Use it. Use __clone2 instead of clone on ia64.
6168 * tst-getpid2.c: New test.
6169
2da9a6a1
UD
61702004-12-07 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6171
6172 * sysdeps/unix/sysv/linux/sh/clone.S: New file.
6173
1ff241b8
UD
61742004-12-04 Ulrich Drepper <drepper@redhat.com>
6175
6176 * Makefile (tests): Add tst-getpid1.
6177 * tst-getpid1.c: New file.
6178 * sysdeps/unix/sysv/linux/i386/clone.S: New file.
6179 * sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
6180
3f488b9c
RM
61812004-12-02 Roland McGrath <roland@redhat.com>
6182
6183 * Makefile (libpthread-nonshared): Variable removed.
6184 ($(objpfx)libpthread_nonshared.a): Target removed.
6185 ($(inst_libdir)/libpthread_nonshared.a): Likewise.
6186 These are now handled by generic magic from
6187 libpthread-static-only-routines being set.
6188
597ce09c
UD
61892004-11-27 Ulrich Drepper <drepper@redhat.com>
6190
6191 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
6192 _POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
6193 _POSIX_THREAD_PRIO_PROTECT): Define.
6194 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6195 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
6196 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6197
60e4523a
UD
61982004-11-26 Jakub Jelinek <jakub@redhat.com>
6199
6200 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
6201 _POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
6202 _POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
6203 _POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
6204 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
6205 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
6206 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
6207
f1f2cafc
UD
62082004-11-24 Ulrich Drepper <drepper@redhat.com>
6209
bca2d208
UD
6210 * sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
6211
f1f2cafc
UD
6212 * Makefile (libpthread-routines): Add pthread_setschedprio.
6213 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
6214 * sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
6215 * pthread_setschedprio.c: New file.
6216
b639d0c9
UD
62172004-11-20 Jakub Jelinek <jakub@redhat.com>
6218
ef2bb413
UD
6219 * pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
6220 * pthread_cancel.c (pthread_create): Likewise.
6221
b639d0c9
UD
6222 * Makefile (libpthread-routines): Add vars.
6223 * sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
6224 * init.c (__default_stacksize, __is_smp): Remove.
6225 * vars.c: New file.
6226 * pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
6227 and define a wrapper macro.
6228 (PTHREAD_STATIC_FN_REQUIRE): Define.
6229 * allocatestack.c (__find_thread_by_id): Undefine.
6230 * pthread_create (__pthread_keys): Remove.
6231 (pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
6232 pthread_key_create, pthread_setspecific, pthread_getspecific): Add
6233 PTHREAD_STATIC_FN_REQUIRE.
6234
3defcff3
UD
62352004-11-18 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6236
6237 * sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
6238 parameter to REGISTER macro.
6239
ec188f92
RM
62402004-11-17 Roland McGrath <roland@redhat.com>
6241
6242 * sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
6243 Make sure SIGCANCEL is blocked as well.
6244
ccd8de9a
UD
62452004-11-10 Jakub Jelinek <jakub@redhat.com>
6246
6247 * sysdeps/pthread/setxid.h: New file.
6248 * sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
6249 (struct xid_command): Add forward decl.
6250 (struct pthread_functions): Change return type of __nptl_setxid hook
6251 to int.
6252 * pthreadP.h (__nptl_setxid): Change return type to int.
6253 * allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
6254 calling thread, return its return value and set errno on failure.
6255 * descr.h (struct xid_command): Change id type to long array.
6256
6257 * Makefile: Add rules to build and test tst-setuid1 and
6258 tst-setuid1-static.
6259 * tst-setuid1.c: New test.
6260 * tst-setuid1-static.c: New test.
6261
ed2ced8a
UD
62622004-11-10 Jakub Jelinek <jakub@redhat.com>
6263
6264 * Makefile (tests): Add tst-exit3.
6265 * tst-exit3.c: New test.
6266
948603ee
UD
62672004-11-09 Ulrich Drepper <drepper@redhat.com>
6268
6269 * Makefile (tests): Add tst-exit2.
6270 * tst-exit2.c: New file.
6271
ba5ffd2a
RM
62722004-11-09 Roland McGrath <roland@redhat.com>
6273
6274 [BZ #530]
6275 * sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
6276 here, before calling clone.
6277 * pthread_create.c (start_thread): Don't do it here.
6278
c4d7bd39
RM
62792004-11-02 Jakub Jelinek <jakub@redhat.com>
6280
6281 * sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
6282
543fb0c8
UD
62832004-10-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6284
6285 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
6286 Set ETIMEDOUT to errno when time is up. Tweak to avoid
6287 assembler warning.
6288
a1fbd858
UD
62892004-10-28 Jakub Jelinek <jakub@redhat.com>
6290
6291 * pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
6292 if sched_priority is not between minprio and maxprio.
6293
c2a4357a
UD
62942004-10-25 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6295
6296 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6297 (__pthread_cond_timedwait): Use clock_gettime syscall if exists.
6298
6299 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
6300 (__lll_mutex_timedlock_wait): Fix a bad branch condition.
6301
78d8d211
UD
63022004-10-24 Ulrich Drepper <drepper@redhat.com>
6303
6304 * sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
6305 not-cancelable I/O functions.
6306
dd28590f
UD
63072004-10-21 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6308
6309 * sysdeps/unix/sysv/linux/sh/lowlevellock.S
6310 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
6311 make sure 2 is stored in the futex and we looked at the old value.
6312 Fix a few other problems to return the correct value.
6313
f8c97af7
RH
63142004-10-14 Richard Henderson <rth@redhat.com>
6315
6316 * sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
6317 make gcc4 happy.
6318
3feb8efa
UD
63192004-10-06 Jakub Jelinek <jakub@redhat.com>
6320
6321 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
6322 of pthread-functions.h and pthreaddef.h.
6323 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
6324
6325 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6326 Change __data.__nwaiters from int to unsigned int.
6327
6328 * tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
6329 sysconf (_SC_THREAD_CPUTIME) returns negative value.
6330
6331 * allocatestack.c (__find_thread_by_id): Move attribute_hidden
6332 before return type.
6333
6334 * sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
6335 (JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
6336
67060ef5
UD
63372004-10-06 Ulrich Drepper <drepper@redhat.com>
6338
6339 * tst-cancel4.c (tf_msgrcv): Check for failure in msgget. If the
6340 test fails, remove message queue.
6341 (tf_msgsnd): Likewise.
6342
f38a3086
UD
63432004-10-05 Jakub Jelinek <jakub@redhat.com>
6344
6345 * tst-clock1.c: Change #ifdef to #if defined.
6346 * tst-clock2.c: Likewise.
6347 * tst-cond11.c: Likewise.
6348
2c03b6db
UD
6349 * sysdeps/pthread/timer_create.c (timer_create): Use
6350 defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
6351 defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
6352 THREAD_CPUTIME.
6353
6ab5f50d
UD
63542004-10-05 Jakub Jelinek <jakub@redhat.com>
6355
6356 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
6357 _POSIX_THREAD_CPUTIME): Define to 0.
6358
e4bb4853
UD
63592004-10-04 Ulrich Drepper <drepper@redhat.com>
6360
6361 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
6362 and _POSIX_THREAD_CPUTIME to zero.
6363 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
6364 * tst-barrier2.c: Fix testing for POSIX feature.
6365 * tst-clock1.c: Likewise.
6366 * tst-clock2.c: Likewise.
6367 * tst-cond11.c: Likewise.
6368 * tst-cond4.c: Likewise.
6369 * tst-cond6.c: Likewise.
6370 * tst-flock2.c: Likewise.
6371 * tst-mutex4.c: Likewise.
6372 * tst-mutex9.c: Likewise.
6373 * tst-rwlock12.c: Likewise.
6374 * tst-rwlock4.c: Likewise.
6375 * tst-signal1.c: Likewise.
6376 * tst-spin2.c: Likewise.
6377 * sysdeps/pthread/posix-timer.h: Likewise.
6378 * sysdeps/pthread/timer_create.c: Likewise.
6379 * sysdeps/pthread/timer_routines.c: Likewise.
6380
c1b48791
UD
63812004-10-01 Ulrich Drepper <drepper@redhat.com>
6382
927f0673
UD
6383 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
6384 (__lll_mutex_timedlock_wait): Address futex correctly.
6385
c1b48791 6386 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
b610fa2d 6387 (__lll_mutex_timedlock_wait): If woken but cannot get the lock,
c1b48791
UD
6388 make sure 2 is stored in the futex and we looked at the old value.
6389 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
6390 (__lll_mutex_timedlock_wait): Likewise. Fix a few other problems
6391 which might very well made the code not working at all before.
7b87aca6 6392 [BZ #417]
c1b48791 6393
e9f4e844
UD
63942004-09-28 Ulrich Drepper <drepper@redhat.com>
6395
4f21c95d
UD
6396 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
6397 allow SIGSETXID to be sent.
6398 * sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
6399 for SIGSETXID to be defined.
6400 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
6401 SIGSETXID cannot be blocked.
6402
e9f4e844
UD
6403 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6404 Add __extension__ to long long types.
6405 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6406 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6407 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6408 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6409 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
6410 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6411 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6412
5f66b766
UD
64132004-09-25 Ulrich Drepper <drepper@redhat.com>
6414
6415 * descr.h (struct pthread): Add stopped_start field.
6416 * sysdeps/pthread/createthread.c (create_thread): Set
6417 start_stopped flag in descriptor for new thread appropriately.
6418 * pthread_create.c (start_thread): Only take lock to be stopped on
6419 startup if stopped_start flag says so.
6420
362038b0
UD
64212004-09-24 Ulrich Drepper <drepper@redhat.com>
6422
3f80a99b
UD
6423 * pthread_create.c (__pthread_create_2_1): Remember whether thread
6424 is created detached and if yes, do not try to free the stack in case
6425 the thread creation failed.
6426 * sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
6427 call fails. Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
6428 case there has been no error. [BZ #405]
6429
362038b0
UD
6430 * pthread_create.c (start_thread): Don't wait for scheduler data
6431 etc to be set at the beginning of the function. The cancellation
6432 infrastructure must have been set up. And enable async
6433 cancellation before potentially going to sleep. [BZ #401]
6434
65f0beb9
UD
64352004-09-20 Ulrich Drepper <drepper@redhat.com>
6436
3c12b91a 6437 * Versions: Remove exports for pthread_set*id_np functions.
65f0beb9
UD
6438 * sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
6439 for now.
6440 * Makefile: Don't build pthread_set*id code for now.
6441
2edb61e3
UD
64422004-09-19 Ulrich Drepper <drepper@redhat.com>
6443
6444 * sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
6445 internal use.
6446 * allocatestack.c (__nptl_setxid): New function.
6447 * descr.h (struct xid_command): Define type.
6448 * init.c (pthread_functions): Add ptr__nptl_setxid initialization.
6449 (sighandler_setxid): New function.
6450 (__pthread_initialize_minimal): Register sighandler_setxid for
6451 SIGCANCEL.
6452 * pt-allocrtsig.c: Update comment.
6453 * pthreadP.h: Define SIGSETXID. Declare __xidcmd variable.
6454 Declare __nptl_setxid.
6455 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
6456 * sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
6457 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
6458 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
6459 and pthread_setresuid_np.
6460 * pthread_setgid_np.c: New file.
6461 * pthread_setuid_np.c: New file.
6462 * pthread_setegid_np.c: New file.
6463 * pthread_seteuid_np.c: New file.
6464 * pthread_setregid_np.c: New file.
6465 * pthread_setreuid_np.c: New file.
6466 * pthread_setresgid_np.c: New file.
6467 * pthread_setresuid_np.c: New file.
6468 * Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
6469 pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
6470 pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
6471 and pthread_setresuid_np.
6472 * Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
6473 pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
6474 pthread_setregid, and pthread_setresgid.
6475
1ab1fa6f
UD
64762004-09-18 Ulrich Drepper <drepper@redhat.com>
6477
6478 * allocatestack.c (allocate_stack): Return EAGAIN instead of
6479 ENOMEM when out of memory.
6480
ae9e6b36
RM
64812004-09-10 Roland McGrath <roland@redhat.com>
6482
6483 [BZ #379]
6484 * allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
6485 code, since we don't try to use the broken CLONE_STOPPED any more.
6486 * pthread_create.c (start_thread): Likewise.
6487
424bd2f8
RH
64882004-09-15 Richard Henderson <rth@redhat.com>
6489
6490 * sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
6491
17b8a52d
UD
64922004-09-01 David Mosberger <davidm@hpl.hp.com>
6493
6494 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
6495 (__libc_unwind_longjmp): Delete macro and declare as function.
6496 * sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
6497 __ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
6498 nptl directory.
6499 * sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
6500 * sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
6501 * sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
6502
ccc63b07
UD
65032004-09-12 Ulrich Drepper <drepper@redhat.com>
6504
6505 * sysdeps/pthread/pthread.h: Make rwlock prototypes available also
6506 for __USE_XOPEN2K.
6507 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
6508 types also for __USE_XOPEN2K.
6509 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6510 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6511 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6512 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6513 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
6514 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6515 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
6516 [BZ #320]
6517
31f93b3b
UD
65182004-09-08 Ulrich Drepper <drepper@redhat.com>
6519
6520 * sysdeps/pthread/pthread.h
6521 (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
6522 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
6523 (PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
6524 (PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
6525 [BZ #375]
6526
e0329987
UD
65272004-09-07 Ulrich Drepper <drepper@redhat.com>
6528
590b40f7
UD
6529 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
6530 PSEUDO to be used with . prefix.
6531
67254a97
UD
6532 * sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
6533 Use atomic_increment instead of atomic_exchange_and_add.
6534 * sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
6535 Likewise.
6536 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
6537 Likewise.
6538 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
6539 Likewise.
6540
6541 * allocatestack.c (allocate_stack): Use atomic_increment_val
6542 instead of atomic_exchange_and_add.
6543 * sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
6544 * sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
6545 Likewise.
6546 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
6547 Likewise.
6548
e0329987
UD
6549 * sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
6550 the initialization function might throw.
6551
42d86dd6 65522005-09-05 Richard Henderson <rth@redhat.com>
e0329987 6553
42d86dd6
RH
6554 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
6555 Move definition inside libpthread, libc, librt check. Provide
6556 definition for rtld.
6557
73f7c32c
UD
65582004-09-02 Ulrich Drepper <drepper@redhat.com>
6559
f76c8499
UD
6560 * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
6561 * sysdeps/i386/jmpbuf-unwind.h: Likewise
6562 * sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
6563 * sysdeps/s390/jmpbuf-unwind.h: Likewise.
6564 * sysdeps/sh/jmpbuf-unwind.h: Likewise.
6565 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
6566 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
6567 * sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
6568 * unwind.c: Use it.
6569
73f7c32c
UD
6570 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6571 Rename __data.__clock to __data.__nwaiters, make it unsigned int.
6572 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6573 Likewise.
6574 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
6575 Decrement __nwaiters. If pthread_cond_destroy has been called and
6576 this is the last waiter, signal pthread_cond_destroy caller and
6577 avoid using the pthread_cond_t structure after unlock.
6578 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
6579 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6580 Read clock type from the least significant bits of __nwaiters instead
6581 of __clock.
6582 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6583 * sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
6584
65852004-08-31 Jakub Jelinek <jakub@redhat.com>
6586
6587 [BZ #342]
6588 * Makefile (tests): Add tst-cond20 and tst-cond21.
6589 * tst-cond20.c: New test.
6590 * tst-cond21.c: New test.
6591 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
6592 (pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
6593 it unsigned int.
6594 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6595 Likewise.
6596 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6597 (pthread_cond_t): Likewise.
6598 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
6599 Likewise.
6600 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6601 Likewise.
6602 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
6603 Likewise.
6604 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
6605 (cond_nwaiters): New.
6606 (clock_bits): New.
6607 * pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
6608 if there are waiters not signalled yet.
6609 Wait until all already signalled waiters wake up.
6610 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
6611 __nwaiters. If pthread_cond_destroy has been called and this is the
6612 last waiter, signal pthread_cond_destroy caller and avoid using
6613 the pthread_cond_t structure after unlock.
6614 (__pthread_cond_wait): Increment __nwaiters in the beginning,
6615 decrement it when leaving. If pthread_cond_destroy has been called
6616 and this is the last waiter, signal pthread_cond_destroy caller.
6617 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6618 Likewise. Read clock type from the least significant bits of
6619 __nwaiters instead of __clock.
6620 * pthread_condattr_setclock.c (pthread_condattr_setclock): Check
6621 whether clock ID can be encoded in COND_CLOCK_BITS bits.
6622 * pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
6623 clock type just from the last COND_CLOCK_BITS bits of value.
6624 * pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
6625 instead of __clock, just from second bit of condattr's value.
6626
409f7493
UD
66272004-08-30 Jakub Jelinek <jakub@redhat.com>
6628
6629 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
6630 bits/wordsize.h. Make the header match i386 header when __WORDSIZE
6631 != 64.
6632 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
6633
92c6ccd1
RM
66342004-08-15 Roland McGrath <roland@frob.com>
6635
6636 * pthread_atfork.c: Update copyright terms including special exception
6637 for these trivial files, which are statically linked into executables
6638 that use dynamic linking for the significant library code.
6639
4d004cfb
UD
66402004-08-09 Jakub Jelinek <jakub@redhat.com>
6641
6642 * DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
6643 pthread_rwlock_rdlock.
6644 * sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
6645 Decrease __nr_readers_queued after reacquiring lock.
6646 * sysdeps/pthread/pthread_rwlock_timedrdlock
6647 (pthread_rwlock_timedrdlock): Likewise.
6648 Reported by Bob Cook <bobcook47@hotmail.com>.
6649
90595fb6
RM
66502004-08-11 Jakub Jelinek <jakub@redhat.com>
6651
6652 * tst-rwlock14.c (tf): Read main thread handle from *ARG
6653 before pthread_barrier_wait.
6654
fa46f7ab
UD
66552004-08-07 Ulrich Drepper <drepper@redhat.com>
6656
6657 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
6658 Remove unnecessary exception handling data.
6659
15ef4b55
UD
66602004-07-23 Jakub Jelinek <jakub@redhat.com>
6661
6662 [BZ #284]
6663 * sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
6664 instead of clockid_t.
6665
4fb907b7
RM
66662004-07-21 Roland McGrath <roland@redhat.com>
6667
6668 * Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
6669
66702004-07-19 Roland McGrath <roland@redhat.com>
6671
6672 * tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
6673
8f73811b
RM
66742004-07-02 Roland McGrath <roland@redhat.com>
6675
6676 * configure: Don't exit.
6677
290639c3
UD
66782004-07-14 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6679
6680 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6681 (__pthread_cond_timedwait): Check for invalid nanosecond in
6682 timeout value.
6683
8e5aaad9
UD
66842004-07-07 Ulrich Drepper <drepper@redhat.com>
6685
6686 * Makefile: Add rules to build and run tst-fini1.
6687 * tst-fini1.c: New file.
6688 * tst-fini1mod.c: New file.
6689
ce6e047f
UD
66902004-07-05 Ulrich Drepper <drepper@redhat.com>
6691
6692 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
6693 if no cancellation support is needed.
6694 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
6695 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
6696 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
6697 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
6698 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
6699 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
6700 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
6701 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
6702 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
6703
6704 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
6705 only if not already defined.
6706
9b9ef823
UD
67072004-07-05 Jakub Jelinek <jakub@redhat.com>
6708
2dd18ce2
UD
6709 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
6710 constraint "m" instead of "0" for futex.
6711
9b9ef823
UD
6712 * shlib-versions: Add powerpc64-.*-linux.*.
6713
38205402
UD
67142004-07-04 Jakub Jelinek <jakub@redhat.com>
6715
6716 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
6717 (pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
6718 for valid tv_nsec.
6719 * tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
6720 1 billion and 64-bit tv_nsec which is valid when truncated to 32
6721 bits.
6722
78a9c837
RM
67232004-06-29 Roland McGrath <roland@redhat.com>
6724
6725 * Banner: NPTL no longer has its own version number.
6726 * Makefile (nptl-version): Variable removed.
6727 * sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
6728 using $(version), the glibc version number.
6729
d3d35527
UD
67302004-06-29 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6731
6732 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
6733 Fix branch offset for a PLT entry.
6734 * sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
6735 Likewise.
6736 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
6737 Likewise.
6738 * sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
6739 Likewise.
6740 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
6741 Likewise.
6742
346f18ae
UD
67432004-06-28 Jakub Jelinek <jakub@redhat.com>
6744
6745 * sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
6746 unconditionally.
6747
f3a19754
UD
67482004-06-28 Jakub Jelinek <jakub@redhat.com>
6749
6750 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
6751 (pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
6752 instead of tv_sec.
6753 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
6754 (pthread_rwlock_timedrdlock): Likewise.
6755
539842a4
UD
67562004-06-22 Jakub Jelinek <jakub@redhat.com>
6757
6758 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
6759 Set __r7 to val, not mutex.
6760
46f4c578
UD
67612004-06-27 Ulrich Drepper <drepper@redhat.com>
6762
6763 * Makefile: Add rules to build tst-rwlock14.
6764 * tst-rwlock14.c: New file.
6765
67662004-06-24 Boris Hu <boris.hu@intel.com>
6767
6768 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
6769 check.
6770 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
6771
9898e99c
AJ
67722004-06-19 Andreas Jaeger <aj@suse.de>
6773
6774 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
6775 assembler in last patch.
6776
7c3164bc
UD
67772004-06-17 Ulrich Drepper <drepper@redhat.com>
6778
6779 * sysdeps/pthread/pthread_cond_timedwait.c
6780 (__pthread_cond_timedwait): Also check for negativ nanoseconds.
6781 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6782 (__pthread_cond_timedwait): Check for invalid nanosecond in
6783 timeout value.
6784 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
6785 * tst-cond19.c: New file.
6786 * Makefile: Add rules to build and run tst-cond19.
6787
72e61500
UD
67882004-06-15 Steven Munroe <sjmunroe@us.ibm.com>
6789
6790 * tst-context1.c (GUARD_PATTERN): Defined.
6791 (tst_context_t): Define struct containing ucontext_t & guard words.
6792 (ctx): Declare as an array of tst_context_t.
6793 (fct): Verify uc_link & guard words are still valid.
6794 (tf): Initialize guard words in ctx. Adjust ctx refs for new struct.
6795
7c370086
UD
67962004-06-13 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6797
6798 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6799 Add __data.__futex field, reshuffle __data.__clock.
6800 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
6801 (__pthread_cond_signal): Increment __futex at the same time as
6802 __wakeup_seq or __total_seq. Pass address of __futex instead of
6803 address of low 32-bits of __wakeup_seq to futex syscall.
6804 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
6805 (__pthread_cond_wait): Likewise. Pass __futex value from before
6806 releasing internal lock to FUTEX_WAIT.
6807 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
6808 (__pthread_cond_timedwait): Likewise.
6809 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
6810 (FUTEX_CMP_REQUEUE): Define.
6811 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6812 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6813 Pass __futex value from before the unlock and __futex address instead
6814 of address of low 32-bits of __wakeup_seq to futex syscall.
6815 Fallback to FUTEX_WAKE all on any errors.
6816
a9e526e7
RM
68172004-06-08 Jakub Jelinek <jakub@redhat.com>
6818
6819 * pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
6820 comment typo.
6821 * pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
6822 * pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
6823 * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
6824 * pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
6825 Likewise. Reported by Bob Cook <bobcook47@hotmail.com>.
6826
f1847a84
RM
68272004-06-11 Martin Schwidefsky <schwidefsky@de.ibm.com>
6828
6829 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
6830 Add memory clobber to inline assembly.
6831 (__lll_mutex_trylock): Likewise.
6832 (__lll_mutex_cond_trylock): Likewise.
6833
f7c81e1a
UD
68342004-06-07 Martin Schwidefsky <schwidefsky@de.ibm.com>
6835
6836 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
6837 Pass val argument as 6th system call argument in %r7.
6838
75fccede
UD
68392004-05-21 Jakub Jelinek <jakub@redhat.com>
6840
6841 * Makefile (tests): Add tst-cond16.
6842 * sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
6843 * pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
6844 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
6845 Add __data.__futex field, reshuffle __data.__clock.
6846 * sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
6847 (__pthread_cond_signal): Increment __futex at the same time as
6848 __wakeup_seq or __total_seq. Pass address of __futex instead of
6849 address of low 32-bits of __wakeup_seq to futex syscall.
6850 * sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
6851 (__pthread_cond_wait): Likewise. Pass __futex value from before
6852 releasing internal lock to FUTEX_WAIT.
6853 * sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
6854 (__pthread_cond_timedwait): Likewise.
6855 * sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
6856 (FUTEX_CMP_REQUEUE): Define.
6857 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6858 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6859 Pass __futex value from before the unlock and __futex address instead
6860 of address of low 32-bits of __wakeup_seq to futex syscall.
6861 Fallback to FUTEX_WAKE all on any errors.
6862 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
6863 Define.
6864 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6865 internally. Return non-zero if error, zero if success.
6866 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
6867 Add __data.__futex field, reshuffle __data.__clock.
6868 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
6869 Define.
6870 (lll_futex_requeue): Add val argument, return 1 unconditionally
6871 for the time being.
6872 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
6873 Add __data.__futex field, reshuffle __data.__clock.
6874 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
6875 Define.
6876 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6877 internally. Return non-zero if error, zero if success.
6878 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
6879 (pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
6880 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
6881 Define.
6882 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6883 internally. Return non-zero if error, zero if success.
6884 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
6885 Add __data.__futex field, reshuffle __data.__clock.
6886 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
6887 Define.
6888 (lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
6889 internally. Return non-zero if error, zero if success.
6890 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
6891 Add __data.__futex field, reshuffle __data.__clock.
6892 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
6893 Add __data.__futex field, reshuffle __data.__clock.
6894 * sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
6895 Increment __futex at the same time as __wakeup_seq or __total_seq.
6896 Pass address of __futex instead of address of low 32-bits of
6897 __wakeup_seq to futex syscall.
6898 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
6899 Pass __futex value from before releasing internal lock
6900 to FUTEX_WAIT.
6901 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
6902 Likewise. Avoid unnecessary shadowing of variables.
6903 * sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
6904 Set __futex to 2 * __total_seq. Pass __futex value from before the
6905 unlock and __futex address instead of address of low 32-bits of
6906 __wakeup_seq to futex_requeue macro, adjust for new return value
6907 meaning.
6908 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
6909 (__pthread_cond_signal): Increment __futex at the same time as
6910 __wakeup_seq or __total_seq. Pass address of __futex instead of
6911 address of low 32-bits of __wakeup_seq to futex syscall.
6912 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
6913 (__pthread_cond_wait): Likewise. Pass __futex value from before
6914 releasing internal lock to FUTEX_WAIT.
6915 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
6916 (__pthread_cond_timedwait): Likewise.
6917 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
6918 (FUTEX_CMP_REQUEUE): Define.
6919 (__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
6920 Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
6921 Pass __futex value from before the unlock and __futex address instead
6922 of address of low 32-bits of __wakeup_seq to futex syscall.
6923 Fallback to FUTEX_WAKE all on any errors.
6924
69252004-06-03 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6926
6927 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
6928 Add nop to align the end of critical section.
6929 (lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
6930
fbf86dda
UD
69312004-06-01 Kaz Kojima <kkojima@rr.iij4u.or.jp>
6932
6933 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
6934 Add __broadcast_seq field.
6935 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
6936 all waiters as woken with woken_seq and bump broadcast counter.
6937 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
6938 __broadcast_seq. Increment __woken_seq correctly when cleanuped.
6939 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
6940 Comment typo fixes. Avoid returning -ETIMEDOUT.
6941
69422004-06-01 Ulrich Drepper <drepper@redhat.com>
6943
6944 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6945 (__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
6946 Reported by Kaz Kojima.
6947
ffdd5e50
UD
69482004-05-25 Jakub Jelinek <jakub@redhat.com>
6949
6950 * sysdeps/unix/sysv/linux/aio_misc.h: New file.
6951
3abc82c8
UD
69522004-05-21 Jakub Jelinek <jakub@redhat.com>
6953
6954 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
6955 __broadcast_seq with bc_seq after acquiring internal lock instead of
6956 before it.
6957
893a3511
UD
69582004-05-18 Jakub Jelinek <jakub@redhat.com>
6959
6960 * Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
6961 compilation.
6962 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
6963 (__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
6964 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
6965 (pthread_cond_t): Add __data.__broadcast_seq field.
6966 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
6967 (FRAME_SIZE): Define.
6968 (__pthread_cond_timedwait): Use it. Store/check broadcast_seq.
6969 Comment typo fixes.
6970 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
6971 Define.
6972 (__pthread_cond_wait): Use it. Store/check broadcast_seq. Comment
6973 typo fixes.
6974 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
6975 (__pthread_cond_broadcast): Increment broadcast_seq. Comment typo
6976 fixes.
6977
69782004-05-18 Ulrich Drepper <drepper@redhat.com>
6979
6980 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
6981 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
6982 Add __broadcast_seq field.
6983 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
6984 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
6985 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
6986 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
6987 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
6988 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
6989 all waiters as woken with woken_seq and bump broadcast counter.
6990 * sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
6991 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
6992 __broadcast_seq field.
6993 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
6994 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
6995 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
6996 * pthread_cond_init.c: Initialize __broadcast_seq field.
6997 * Makefile (tests): Add tst-cond17 and tst-cond18.
6998 Add .NOTPARALLEL goal.
6999 * tst-cond16.c: New file. From Jakub.
7000 * tst-cond17.c: New file. From Jakub.
7001 * tst-cond18.c: New file. From Jakub.
7002
4123718e
UD
70032004-05-16 Ulrich Drepper <drepper@redhat.com>
7004
7005 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
7006 unwind info.
7007
7008 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
7009 Parametrize frame size. Correct some unwind info.
7010 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
7011
2d7ae210
UD
70122004-05-04 Jakub Jelinek <jakub@redhat.com>
7013
7014 * tst-stack3.c: Note testing functionality beyond POSIX.
7015
50c2b6d7
UD
70162004-05-04 Jakub Jelinek <jakub@redhat.com>
7017
7018 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
7019 Change conditional from ifdef to if.
7020
27b02589
UD
70212004-04-23 Jakub Jelinek <jakub@redhat.com>
7022
7023 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
7024 SYSDEP_CANCEL_ERROR): Define.
7025 (PSEUDO): Use it.
7026
4bb8fc33
UD
70272004-05-01 Jakub Jelinek <jakub@redhat.com>
7028
7029 * Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
7030
f9a06dc1
UD
70312004-04-20 Jakub Jelinek <jakub@redhat.com>
7032
7033 * sem_unlink.c (sem_unlink): Change EPERM into EACCES.
7034
d3b52028
UD
70352004-04-19 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7036
7037 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
7038 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
7039 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
7040 info. Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
7041
a5dd0a6c
UD
70422004-04-19 Ulrich Drepper <drepper@redhat.com>
7043
7044 * sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
7045 thread has all signals blocked.
7046
620c3354
AJ
70472004-04-18 Andreas Jaeger <aj@suse.de>
7048
7049 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
7050 (SEM_VALUE_MAX): Add missing brace.
7051
1683daeb
UD
70522004-04-17 Jakub Jelinek <jakub@redhat.com>
7053
7054 * sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
7055 in rt subdir.
7056 (CFLAGS-tst-mqueue8x.c): Add -fexceptions.
7057 * sysdeps/pthread/tst-mqueue8x.c: New test.
7058 * tst-cancel4.c: Update comment about message queues.
7059
7060 * sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
7061 return it_value { 0, 0 }.
7062 * sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
7063 like SIGEV_SIGNAL.
7064 * sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
7065 assertion for SIGEV_NONE.
7066 (thread_attr_compare): Compare all attributes, not just a partial
7067 subset.
7068
70692004-04-17 Jakub Jelinek <jakub@redhat.com>
7070
7071 * sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
7072
f532641d
UD
70732004-04-17 Ulrich Drepper <drepper@redhat.com>
7074
7075 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
7076 Just use a plain number.
7077 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
7078 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
7079 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
7080 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
7081 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
7082 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
7083 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
7084
7eb7fdda
UD
70852004-04-16 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7086
53392906
UD
7087 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
7088 frame info.
7089 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7eb7fdda 7090
d7ba1313
UD
70912004-04-15 Jakub Jelinek <jakub@redhat.com>
7092
7093 * sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
7094 (timer_helper_thread): Use inline rt_sigtimedwait syscall instead
7095 of calling sigwaitinfo.
7096
5adac0e4
UD
70972004-04-16 Ulrich Drepper <drepper@redhat.com>
7098
7099 * allocatestack.c (allocate_stack): Set reported_guardsize
7100 unconditionally.
7101 * pthread_getattr_np.c (pthread_getattr_np): Use
7102 reported_guardsize instead of guardsize.
7103 * descr.h (struct pthread): Add reported_guardsize field.
7104
f93fa7d4
UD
71052004-04-13 Jakub Jelinek <jakub@redhat.com>
7106
7107 * sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
7108
1b82c6c7
UD
71092004-04-12 Ulrich Drepper <drepper@redhat.com>
7110
7111 * sysdeps/unix/sysv/linux/mq-notify.c: New file.
7112
71132004-04-08 Jakub Jelinek <jakub@redhat.com>
7114
7115 * sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
7116 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
7117 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
7118 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
7119 * sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
7120 Define.
7121 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
7122 (_POSIX_MESSAGE_PASSING): Define.
7123 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
7124 (_POSIX_MESSAGE_PASSING): Define.
7125 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
7126 (_POSIX_MESSAGE_PASSING): Define.
7127
e6eb894e
UD
71282004-04-04 Ulrich Drepper <drepper@redhat.com>
7129
7130 * tst-context1.c (fct): Check whether correct stack is used.
7131
1e084487
UD
71322004-04-03 Ulrich Drepper <drepper@redhat.com>
7133
4e73e115
UD
7134 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
7135 matching constraints for asm mem parameters.
7136
1e084487
UD
7137 * tst-clock2.c (tf): Don't define unless needed.
7138
feca5e0b
UD
71392004-03-30 H.J. Lu <hongjiu.lu@intel.com>
7140
7141 * Makefile (link-libc-static): Use $(static-gnulib) instead of
7142 $(gnulib).
7143
3fa21fd8
UD
71442004-03-30 Ulrich Drepper <drepper@redhat.com>
7145
7146 * sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
7147 * init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
7148 * pthreadP.h: Declare __nptl_deallocate_tsd.
7149 * pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
7150 Adjust caller.
7151
7152 * Makefile (tests): Add tst-tsd5.
7153 * tst-tsd5.c: New file.
7154
8e32efa6
UD
71552004-03-29 Ulrich Drepper <drepper@redhat.com>
7156
7157 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
7158 (__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
7159 is SHLIB_COMPAT check.
7160 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
7161 (__pthread_attr_getaffinity_old): Likewise.
7162 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
7163 (__pthread_getaffinity_old): Likewise.
7164 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
7165 (__pthread_setaffinity_old): Likewise.
7166
eec8b6ca
UD
71672004-03-26 Ulrich Drepper <drepper@redhat.com>
7168
7169 * allocatestack.c (_make_stacks_executable): Call
7170 _dl_make_stack_executable first.
7171
db2f05ba
RM
71722004-03-24 Roland McGrath <roland@redhat.com>
7173
7174 * sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
7175 constraint instead of "0".
7176
6abbc501
UD
71772004-03-24 Ulrich Drepper <drepper@redhat.com>
7178
68dc4dcb
UD
7179 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
7180 (lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
7181
6abbc501
UD
7182 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
7183 code to avoid warning.
7184
865e14d9
AJ
71852004-03-24 Andreas Jaeger <aj@suse.de>
7186
7187 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
7188 (__pthread_attr_setaffinity_old): Remove const.
7189
16b06b70
UD
71902004-03-23 Ulrich Drepper <drepper@redhat.com>
7191
2c0b891a
UD
7192 * sysdeps/unix/sysv/linux/smp.h: New file.
7193 * sysdeps/unix/sysv/linux/sh/smp.h: New file.
7194 * init.c: Define __is_smp.
7195 (__pthread_initialize_minimal_internal): Call is_smp_system to
7196 initialize __is_smp.
7197 * pthreadP.h: Declare __is_smp.
7198 Define MAX_ADAPTIVE_COUNT is necessary.
7199 * pthread_mutex_init.c: Add comment regarding __spins field.
7200 * pthread_mutex_lock.c: Implement adaptive mutex type.
7201 * pthread_mutex_timedlock.c: Likewise.
7202 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
7203 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
7204 Add __spins field.
7205 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
7206 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7207 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7208 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7209 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7210 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
7211 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7212 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
7213 lll_mutex_cond_trylock.
7214 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
7215 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
7216 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
7217 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
7218 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
7219 Define BUSY_WAIT_NOP.
7220 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
7221 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
7222
7223 * tst-mutex5.c: Add support for testing adaptive mutexes.
7224 * tst-mutex7.c: Likewise.
7225 * tst-mutex5a.c: New file.
7226 * tst-mutex7a.c: New file.
7227 * Makefile (tests): Add tst-mutex5a and tst-mutex7a.
7228
565699e4
UD
7229 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
7230 (__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
6abbc501 7231 vgettimeofday call might destroy the content.
565699e4 7232
7fe1586f
UD
7233 * sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
7234 @pause in the loop.
7235
e408880b
UD
7236 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
7237 No need to restrict type of ret. Make it int. Add comment.
7238
16b06b70
UD
7239 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
7240 Remove unnecessary setne instruction.
7241
61645263
UD
72422004-03-22 Jakub Jelinek <jakub@redhat.com>
7243
7244 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
7245 (__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
7246 * pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
7247 If realloc fails, break out of the loop.
7248
e3d4c585
AJ
72492004-03-20 Andreas Jaeger <aj@suse.de>
7250
7251 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
7252 (__pthread_setaffinity_old): Fix interface.
7253 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
7254 (__pthread_getaffinity_old): Likewise.
7255
7256 * sysdeps/unix/sysv/linux/pthread_setaffinity.c
7257 (__pthread_setaffinity_new): Remove duplicate declaration.
7258
3abb1ff7
UD
72592004-03-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7260
7261 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
7262 the return value to a safe register.
7263 (CDISABLE): Set the function argument correctly.
7264
07bd2a3f
UD
72652004-03-17 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7266
7267 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
7268 * sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
7269 Rewrite so that only one locked memory operation per round is needed.
7270 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
7271 (pthread_barrier_wait): After wakeup, release lock only when the
7272 last thread stopped using the barrier object.
7273 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
7274 (__pthread_cond_wait): Don't store mutex address if the current
7275 value is ~0l. Add correct cleanup support and unwind info.
7276 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
7277 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
7278 (__pthread_cond_broadcast): Don't use requeue for pshared condvars.
7279 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
7280 * sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
7281 Add correct cleanup support and unwind info.
7282 * sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
7283 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
7284 information for syscall wrappers.
7285
14c35863
UD
72862004-03-18 Ulrich Drepper <drepper@redhat.com>
7287
7288 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
7289 cpusetsize field, remove next.
7290 * sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
7291 parameter for size of the CPU set.
7292 (pthread_setaffinity_np): Likewise.
7293 (pthread_attr_getaffinity_np): Likewise.
7294 (pthread_attr_setaffinity_np): Likewise.
7295 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
7296 interface change, keep compatibility code.
7297 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
7298 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
7299 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
7300 * pthreadP.h: Remove hidden_proto for pthread_getaffinity_np. Declare
7301 __pthread_getaffinity_np.
7302 * Versions: Add version for changed interfaces.
7303 * tst-attr3.c: Adjust test for interface change.
7304 * pthread_getattr_np.c: Query the kernel about the affinity mask with
7305 increasing buffer sizes.
7306 * pthread_attr_destroy.c: Remove unused list handling.
7307 * pthread_attr_init.c: Likewise.
7308
8e115d80
RM
73092004-03-17 Roland McGrath <roland@redhat.com>
7310
7311 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
7312 first argument to clock_getres so we ever enable kernel timers.
7313
e3b22ad3
UD
73142004-03-15 Ulrich Weigand <uweigand@de.ibm.com>
7315
7316 * init.c (nptl_version): Add __attribute_used__ to nptl_version.
7317
841153fa
RH
73182004-03-12 Richard Henderson <rth@redhat.com>
7319
e3b22ad3
UD
7320 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
7321 oldvalue from CENABLE to CDISABLE.
841153fa 7322
932dfea7
UD
73232004-03-12 Ulrich Drepper <drepper@redhat.com>
7324
7325 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
7326 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
7327 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
7328 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
7329
9852f6dc
RH
73302004-03-11 Richard Henderson <rth@redhat.com>
7331
7332 * sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
7333 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
7334 * sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
7335
43513fb7
UD
73362004-03-11 Jakub Jelinek <jakub@redhat.com>
7337
7338 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
7339 instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
7340 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
7341
73422004-03-11 Jakub Jelinek <jakub@redhat.com>
7343
7344 * forward.c (__pthread_cond_broadcast_2_0,
7345 __pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
7346 __pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
7347 __pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
7348
8a3e10e0
UD
73492004-03-11 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7350
7351 * sysdeps/sh/tcb-offsets.sym: Add PID.
7352 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
7353 * sysdeps/unix/sysv/linux/sh/vfork.S: New file.
7354
6d3a2bec
UD
73552004-03-10 Ulrich Drepper <drepper@redhat.com>
7356
7357 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
7358 include <sysdep-cancel.h>, vfork is no cancellation point.
7359 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
7360 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
7361 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
7362
d3a4a571
UD
73632004-03-10 Jakub Jelinek <jakub@redhat.com>
7364
73b4ce64
UD
7365 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
7366 libc_hidden_def.
7367 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
7368 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
7369 Likewise.
7370 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
7371 Likewise.
7372 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
7373 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
7374 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
7375 * sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
7376 of DO_CALL_VIA_BREAK. Work around a gas problem.
7377
d682a515
UD
7378 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
7379 * sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
7380 * sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
7381 * sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
7382 * sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
7383 * sysdeps/powerpc/tcb-offsets.sym: Add PID.
7384
7385 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
7386 a local register for saving old PID. Negate PID in parent upon exit.
7387
d3a4a571
UD
7388 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
7389 tcb-offsets.h.
7390 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
7391 before syscall, set to the old value in the parent afterwards.
7392 * sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
7393 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
7394 tcb-offsets.h.
7395 (__vfork): Negate PID if non-zero and set to INT_MIN if zero
7396 before syscall, set to the old value in the parent afterwards.
7397 * sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
7398 * sysdeps/s390/tcb-offsets.sym: Add PID.
7399
7400 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
7401 * sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
7402 * sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
7403 * sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
7404 * sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
7405 * sysdeps/sparc/tcb-offsets.sym: Add PID.
7406
74072004-03-10 Andreas Schwab <schwab@suse.de>
7408
7409 * sysdeps/ia64/tcb-offsets.sym: Add PID.
7410 * sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
7411 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
7412
3f2fb223 74132004-03-09 Jakub Jelinek <jakub@redhat.com>
f4c024d1 7414
3f2fb223
UD
7415 * tst-cancel20.c (do_one_test): Clear in_sh_body first.
7416 * tst-cancel21.c (do_one_test): Likewise.
7417 Reported by Gordon Jin <gordon.jin@intel.com>.
f4c024d1 7418
8b9d6054
UD
74192004-02-09 Jakub Jelinek <jakub@redhat.com>
7420
7421 * sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
7422 if non-zero and set to INT_MIN if zero.
7423 * sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
7424 * sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
7425 (SAVE_PID, RESTORE_PID): Define.
7426 (__vfork): Use it.
7427 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
7428 Use relative path to avoid including NPTL i386/vfork.S.
7429 (SAVE_PID, RESTORE_PID): Define.
7430 * sysdeps/unix/sysv/linux/raise.c: Include limits.h.
7431 (raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
7432 * Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
7433 tst-vfork2x.
7434 (tests-reverse): Add tst-vfork1x and tst-vfork2x.
7435 * tst-vfork1.c: New test.
7436 * tst-vfork2.c: New test.
7437 * tst-vfork1x.c: New test.
7438 * tst-vfork2x.c: New test.
7439
02287d05
UD
74402004-03-08 Ulrich Drepper <drepper@redhat.com>
7441
c072ef6d 7442 * sysdeps/i386/tcb-offsets.sym: Add PID.
6fadea9f 7443 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
c072ef6d 7444 * sysdeps/unix/sysv/linux/i386/vfork.S: New file.
6fadea9f 7445 * sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
02287d05 7446
d4acd24b
UD
74472004-03-08 Steven Munroe <sjmunroe@us.ibm.com>
7448
7449 * sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
7450
8acb4b81
UD
74512004-03-08 H.J. Lu <hongjiu.lu@intel.com>
7452
7453 * sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
7454 _rtld_global_ro.
7455
4d1a02ef
UD
74562004-03-07 Ulrich Drepper <drepper@redhat.com>
7457
001836c8 7458 * sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
8acb4b81 7459 _rtld_global_ro.
001836c8 7460
4d1a02ef
UD
7461 * tst-once4.c: Remove unnecessary macro definition.
7462
7463 * tst-mutex7.c (do_test): Limit thread stack size.
7464 * tst-once2.c (do_test): Likewise.
7465 * tst-tls3.c (do_test): Likewise.
7466 * tst-tls1.c (do_test): Likewise.
7467 * tst-signal3.c (do_test): Likewise.
7468 * tst-kill6.c (do_test): Likewise.
7469 * tst-key4.c (do_test): Likewise.
7470 * tst-join4.c (do_test): Likewise.
7471 * tst-fork1.c (do_test): Likewise.
7472 * tst-context1.c (do_test): Likewise.
7473 * tst-cond2.c (do_test): Likewise.
7474 * tst-cond10.c (do_test): Likewise.
7475 * tst-clock2.c (do_test): Likewise.
7476 * tst-cancel10.c (do_test): Likewise.
7477 * tst-basic2.c (do_test): Likewise.
7478 * tst-barrier4.c (do_test): Likewise.
7479
aa420660
UD
74802004-03-05 Ulrich Drepper <drepper@redhat.com>
7481
7482 * sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
7483
cff08c81
UD
74842004-03-01 Ulrich Drepper <drepper@redhat.com>
7485
7486 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7487 (__pthread_cond_timedwait): Optimize wakeup test.
7488 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7489 (__pthread_cond_wait): Likewise.
7490 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
7491 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
7492 Likewise.
7493
b7fe377c
UD
74942004-02-29 Ulrich Drepper <drepper@redhat.com>
7495
7496 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7497 (__lll_mutex_lock_wait): Optimize a bit more. Just one copy of
7498 the atomic instruction needed.
7499 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
7500 (__lll_mutex_lock_wait): Likewise.
7501
4c771a3b
UD
75022004-02-28 Ulrich Drepper <drepper@redhat.com>
7503
7504 * Makefile (tests): Add tst-cond14 and tst-cond15.
7505 * tst-cond14.c: New file.
7506 * tst-cond15.c: New file.
7507
a2c33d5a
UD
75082004-02-27 Ulrich Drepper <drepper@redhat.com>
7509
7510 * sysdeps/pthread/createthread.c (create_thread): Remove use of
7511 CLONE_STOPPED. We cannot use SIGCONT which means CLONE_STOPPED
7512 needs to be implemented differently to be useful.
7513
261eada2
UD
75142004-02-26 Ulrich Drepper <drepper@redhat.com>
7515
14ffbc83
UD
7516 * pthread_attr_setschedparam.c: Don't test priority against limits
7517 here. Set ATTR_FLAG_SCHED_SET flag.
7518 * pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
7519 * pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
7520 from parent thread to child. If attribute is used and scheduling
7521 parameters are not inherited, copy parameters from attribute or
7522 compute them. Check priority value.
7523 * pthread_getschedparam.c: If the parameters aren't known yet get
7524 them from the kernel.
7525 * pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
7526 ATTR_FLAG_POLICY_SET flag for thread.
7527 * sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
7528 and ATTR_FLAG_POLICY_SET.
7529
7530 * sysdeps/pthread/createthread.c: Use tgkill if possible.
7531
261eada2
UD
7532 * pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
7533 fail if stack address hasn't been set. Just return 0.
7534
701d185c
UD
75352004-02-25 Ulrich Drepper <drepper@redhat.com>
7536
25b8e63c
UD
7537 * Makefile (tests-nolibpthread): Add tst-unload. Don't link with
7538 libpthread for the files in this list.
7539 (CFLAGS-tst-unload): Removed.
7540 * tst-unload.c (do_test): Don't use complete path for
7541 LIBPHREAD_SO.
7542
701d185c
UD
7543 * Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
7544 tst-_res1mod2.
7545
a8fd5a02
UD
75462004-02-22 Ulrich Drepper <drepper@redhat.com>
7547
7548 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
7549 (__lll_mutex_lock_wait): Rewrite so that only one locked memory
7550 operation per round is needed.
7551 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
7552 (__lll_mutex_lock_wait): Likewise.
7553
dd0b7b19
UD
75542004-02-20 Ulrich Drepper <drepper@redhat.com>
7555
7556 * tst-cancel9.c (cleanup): Don't print to stderr.
7557
5990e1fe
UD
75582004-02-20 Kaz Kojima <kkojima@rr.iij4u.or.jp>
7559
7560 * sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
7561
33ab3b66
UD
75622004-02-20 Jakub Jelinek <jakub@redhat.com>
7563
1be3130e
UD
7564 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
7565 (__syscall_error_handler2): Call CDISABLE.
7566 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
7567 (__syscall_error_handler2): Call CDISABLE.
7568
8ba5025a
UD
7569 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7570 Release lock before the loop, don't reacquire it.
8ba5025a 7571
33ab3b66
UD
7572 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
7573
11986c68
UD
75742004-02-19 Andreas Schwab <schwab@suse.de>
7575
7576 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7577 Fix last change.
7578
dc391246
UD
75792004-02-18 Ulrich Drepper <drepper@redhat.com>
7580
37c054c7
UD
7581 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
7582 (pthread_barrier_wait): After wakeup, release lock only when the
7583 last thread stopped using the barrier object.
7584 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
7585 (pthread_barrier_wait): Likewise.
7586 * sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
7587 Likewise.
7588 * Makefile (tests): Add tst-barrier4.
7589 * tst-barrier4.c: New file.
dc391246
UD
7590
7591 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7592 (__pthread_cond_timedwait): Perform timeout test while holding
7593 internal lock to prevent wakeup race.
7594 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
7595 * sysdeps/pthread/pthread_cond_timedwait.c
7596 (__pthread_cond_timedwait): Likewise.
7597 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
7598 (__pthread_cond_timedwait): Likewise.
7599
4a08113c
UD
76002004-02-18 Jakub Jelinek <jakub@redhat.com>
7601
7602 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
7603 (__pthread_rwlock_unlock): Access WRITER as 32-bit value.
7604 * Makefile (tests): Add tst-rwlock13.
7605 * tst-rwlock13.c: New test.
7606
71b1675e
UD
76072004-02-16 Ulrich Drepper <drepper@redhat.com>
7608
7609 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7610 (__condvar_tw_cleanup): Little optimization.
7611 Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
7612
cd9fdc72
UD
76132004-02-16 Steven Munroe <sjmunroe@us.ibm.com>
7614
7615 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
7616 libpthread as "lib" parameter to SHLIB_COMPAT.
7617 (__novmx_siglongjmp): Fix typo in function name.
7618 (__novmx_longjmp): Fix typo in function name.
7619
82038750
UD
76202004-02-13 Ulrich Drepper <drepper@redhat.com>
7621
b078c591
UD
7622 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
7623 __builtin_expect.
7624
82038750
UD
7625 * sysdeps/generic/pt-longjmp.c: Moved to...
7626 * sysdeps/pthread/pt-longjmp.c: ...here. New file.
7627
e2982bf0
UD
76282004-01-29 Steven Munroe <sjmunroe@us.ibm.com>
7629
7630 * Makefile (libpthread-routines): Add pt-cleanup.
7631 * pt-longjmp.c: Removed.
7632 * pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
7633 * sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
7634 * sysdeps/unix/sysv/linux/powerpc/Versions: New file.
7635 Version longjmp, siglongjmp for GLIBC_2.3.4.
7636 * sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
7637
3730d95c
UD
76382004-02-13 Ulrich Drepper <drepper@redhat.com>
7639
219304ec
UD
7640 * sysdeps/pthread/pthread_cond_timedwait.c
7641 (__pthread_cond_timedwait): Optimize. Drop internal lock earlier.
7642 Reuse code. Add __builtin_expects.
7643
3730d95c
UD
7644 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7645 (__pthread_cond_timedwait): Get internal lock in case timeout has
7646 passed before the futex syscall.
7647 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
7648
5673ccc1
UD
76492004-01-20 Ulrich Drepper <drepper@redhat.com>
7650
debddf64
UD
7651 * allocatestack.c: Pretty printing.
7652
5673ccc1
UD
7653 * sysdeps/pthread/createthread.c (create_thread): Don't add
7654 CLONE_DETACHED bit if it is not necessary.
7655
6bae8725
UD
76562004-01-16 Ulrich Drepper <drepper@redhat.com>
7657
7658 * pthread_getattr_np.c: Include ldsodefs.h.
7659
ff151400
RH
76602004-01-16 Richard Henderson <rth@redhat.com>
7661
6bae8725
UD
7662 * allocatestack.c: Don't declare __libc_stack_end.
7663 * init.c (__pthread_initialize_minimal_internal): Likewise.
7664 * pthread_getattr_np.c (pthread_getattr_np): Likewise.
ff151400 7665
ba683832
RH
76662004-01-15 Richard Henderson <rth@redhat.com>
7667
7668 * sysdeps/alpha/tls.h (tcbhead_t): Add private.
7669 (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
7670 TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
7671 GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
7672 (TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
7673 (THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
7674 (THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
7675 * sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
7676
630d93a7
UD
76772004-01-14 Ulrich Drepper <drepper@redhat.com>
7678
219304ec 7679 * init.c (pthread_functions): Make array const.
630d93a7 7680
d1fc817e
UD
76812004-01-13 Ulrich Drepper <drepper@redhat.com>
7682
7683 * allocatestack.c (__make_stacks_executable): Change interface.
7684 Check parameters. Pass parameter on to libc counterpart.
7685 * pthreadP.h: Change declaration.
7686
dc927809
RH
76872004-01-13 Richard Henderson <rth@redhat.com>
7688
10677727
UD
7689 * pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
7690 prototype form.
7691 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
7692 Likewise.
7693
d1fc817e
UD
7694 * sysdeps/alpha/Makefile: New file.
7695 * sysdeps/alpha/tcb-offsets.sym: New file.
7696 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
7697 Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
dc927809 7698
d1fc817e
UD
7699 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
7700 on powerpc version.
dc927809 7701
249a3d0c
UD
77022004-01-08 Jakub Jelinek <jakub@redhat.com>
7703
7704 * Makefile (tests): Add tst-backtrace1.
7705 * tst-backtrace1.c: New test.
7706
763c0490
RM
77072003-12-11 Ulrich Weigand <uweigand@de.ibm.com>
7708
7709 * sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
7710 register as second parameter to the REGISTER macro.
7711 * sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
7712 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
7713 * sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
7714 * sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
7715 * sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
7716 of thread register as second parameter to REGISTER macro in 64 case.
7717
c7baafd5
UD
77182004-01-03 Ulrich Drepper <drepper@redhat.com>
7719
7720 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
7721 (CFLAGS-getpid.o): Defined.
7722 (CFLAGS-getpid.os): Defined.
7723
25ac0258
UD
77242003-12-31 Ulrich Drepper <drepper@redhat.com>
7725
7726 * pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
7727 returned for main thread does not overlap with any other VMA.
7728 Patch by Jakub Jelinek.
7729
795985e4
UD
77302003-12-29 Jakub Jelinek <jakub@redhat.com>
7731
7732 * tst-raise1.c: Include stdio.h.
7733
cb5b9388
UD
77342003-12-23 Jakub Jelinek <jakub@redhat.com>
7735
7736 * sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
7737 setting with __ASSUME_TGKILL || defined __NR_tgkill.
7738 If pid is 0, set it to selftid.
7739 * sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
7740 Don't set self->pid but self->tid. If self->pid == 0 and self->tid
7741 != 0, return self->tid without doing a syscall.
7742 * descr.h (struct pthread): Move pid field after tid.
7743
7744 * Makefile (tests): Add tst-raise1.
7745 * tst-raise1.c: New file.
7746
432aaf5b
RM
77472003-12-23 Roland McGrath <roland@redhat.com>
7748
7749 * tst-oddstacklimit.c: New file.
7750 * Makefile (tests): Add it.
7751 (tst-oddstacklimit-ENV): New variable.
7752
7753 * init.c (__pthread_initialize_minimal_internal): Round stack rlimit
7754 value up to page size for __default_stacksize.
7755
33ebea17
UD
77562003-12-21 Ulrich Drepper <drepper@redhat.com>
7757
7758 * Makefile (tests): Add tst-eintr5.
7759 * tst-eintr5.c: New file.
7760
7761 * eintr.c (eintr_source): Prevent sending signal to self.
7762
7763 * tst-eintr2.c (tf1): Improve error message.
7764
bbe35eb5
UD
77652003-12-20 Ulrich Drepper <drepper@redhat.com>
7766
7767 * sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
7768 * sysdeps/unix/sysv/linux/getpid.c: New file.
c0ecb80a
UD
7769 * pthread_cancel.c: Add comment explaining use of PID field.
7770 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
7771 * pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
7772 * sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
7773 temporarily to signal the field must not be relied on and updated
7774 by getpid().
7775 * sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
7776 temporarily negative.
7777 * sysdeps/unix/sysv/linux/raise.c: Likewise.
bbe35eb5 7778
4efdd8d3
UD
77792003-12-19 Ulrich Drepper <drepper@redhat.com>
7780
7781 * eintr.c (setup_eintr): Add new parameter. Pass to thread function.
7782 (eintr_source): If ARG != NULL, use pthread_kill.
7783 * tst-eintr1.c: Adjust for this change.
7784 * tst-eintr2.c: Likewise.
7785 * Makefile (tests): Add tst-eintr3 and tst-eintr4.
7786 * tst-eintr3.c: New file.
7787 * tst-eintr4.c: New file.
7788
77892003-12-19 Jakub Jelinek <jakub@redhat.com>
7790
7791 * libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
7792 if CANCELSTATE_BITMASK is set.
7793 * sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
7794 Likewise.
7795
7796 * Makefile (tests): Add tst-cancel22 and tst-cancel23.
7797 (tests-reverse): Add tst-cancel23.
7798 * tst-cancel22.c: New test.
7799 * tst-cancel23.c: New test.
7800
675620f7
UD
78012003-12-18 Ulrich Drepper <drepper@redhat.com>
7802
7803 * tst-eintr1.c: Better error messages.
7804
7805 * Makefile (tests): Add tst-eintr2.
7806 * tst-eintr2.c: New file.
7807
78082003-12-18 Jakub Jelinek <jakub@redhat.com>
7809
7810 * Makefile (tests): Add tst-cancel21 and tst-cancelx21.
7811 (CFLAGS-tst-cancelx21.c): Set.
7812 * tst-cancel21.c: New test.
7813 * tst-cancelx21.c: New test.
7814
7815 * unwind.c (FRAME_LEFT): Add adj argument. Subtract it from each
7816 comparison operand.
7817 (unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
7818 _JMPBUF_CFA_UNWINDS. Adjust FRAME_LEFT invocations.
7819 * pt-longjmp.c: Include jmpbuf-unwind.h.
7820 (__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
7821 _JMPBUF_UNWINDS. Adjust compared pointers.
7822 * init.c (__pthread_initialize_minimal_internal): Initialize
7823 pd->stackblock_size.
7824 * sysdeps/pthread/jmpbuf-unwind.h: Removed.
7825 * sysdeps/alpha/jmpbuf-unwind.h: New file.
7826 * sysdeps/i386/jmpbuf-unwind.h: New file.
7827 * sysdeps/powerpc/jmpbuf-unwind.h: New file.
7828 * sysdeps/s390/jmpbuf-unwind.h: New file.
7829 * sysdeps/sh/jmpbuf-unwind.h: New file.
7830 * sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
7831 * sysdeps/x86_64/jmpbuf-unwind.h: New file.
2e5e031d 7832 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
675620f7
UD
7833 (_JMPBUF_CFA_UNWINDS): Remove.
7834 (_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
7835
78362003-12-12 Jakub Jelinek <jakub@redhat.com>
7837
7838 * Makefile (tests): Add tst-cancel20 and tst-cancelx20.
7839 (CFLAGS-tst-cancelx20.c): Set.
7840 * tst-cancel20.c: New test.
7841 * tst-cancelx20.c: New test.
7842
2d951ab6
UD
78432003-12-17 Ulrich Drepper <drepper@redhat.com>
7844
7845 * init.c (__pthread_initialize_minimal_internal): Don't treat
7846 architectures with separate register stack special here when
7847 computing default stack size.
7848
f8a3a2e7
RM
78492003-12-17 Roland McGrath <roland@redhat.com>
7850
7851 * Makefile (tst-cancelx7-ARGS): New variable.
7852 Reportd by Greg Schafer <gschafer@zip.com.au>.
7853
e796f92f
UD
78542003-12-17 Jakub Jelinek <jakub@redhat.com>
7855
7856 * Makefile (tests): Add tst-stack3. Depend on $(objpfx)tst-stack3-mem.
7857 (generated): Add tst-stack3.mtrace and tst-stack3-mem.
7858 (tst-stack3-ENV): Set.
7859 ($(objpfx)tst-stack3-mem): New.
7860 * tst-stack3.c: New test.
7861
092eb73c
UD
78622003-12-10 David Mosberger <davidm@hpl.hp.com>
7863
7864 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
7865 Add unwind directives. Drop unused .regstk directive.
7866 (_fini_EPILOG_BEGINS): Add unwind directives.
7867
ff48874d
UD
78682003-12-11 Ulrich Drepper <drepper@redhat.com>
7869
7870 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
7871 Assume parameter is a pointer.
7872 (lll_futex_wake): Likewise.
20945457
UD
7873 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
7874 Likewise.
7875 (lll_futex_wake): Likewise.
ff48874d
UD
7876 Reported by Boris Hu.
7877 * sysdeps/unix/sysv/linux/unregister-atfork.c
7878 (__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
7879
7880 * sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
7881
1d9d0b80
UD
78822003-12-10 Ulrich Drepper <drepper@redhat.com>
7883
7884 * sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
7885 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
7886 __rtld_lock_initialize for ld.so lock.
7887 Patch in part by Adam Li <adam.li@intel.com>.
7888
c776b3d7
UD
78892003-12-02 David Mosberger <davidm@hpl.hp.com>
7890
7891 * Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
7892 in $(gnulib). Also, remove stale comment.
7893
78942003-11-12 David Mosberger <davidm@hpl.hp.com>
7895
7896 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
7897 advantage of new syscall stub and optimize accordingly.
7898
7899 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
7900 from SYS_futex, to match expectations of
7901 sysdep.h:DO_INLINE_SYSCALL.
7902 (lll_futex_clobbers): Remove.
7903 (lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
7904 (lll_futex_wake): Likewise.
7905 (lll_futex_requeue): Likewise.
7906 (__lll_mutex_trylock): Rewrite to a macro, so we can include this
7907 file before DO_INLINE_SYSCALL is defined (proposed by Jakub
7908 Jelinek).
7909 (__lll_mutex_lock): Likewise.
7910 (__lll_mutex_cond_lock): Likewise.
7911 (__lll_mutex_timed_lock): Likewise.
7912 (__lll_mutex_unlock): Likewise.
7913 (__lll_mutex_unlock_force): Likewise.
7914
7915 * sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
7916 comes before the include of <sysdep.h>.
7917 (THREAD_SELF_SYSINFO): New macro.
7918 (THREAD_SYSINFO): Likewise.
7919 (INIT_SYSINFO): New macro.
7920 (TLS_INIT_TP): Call INIT_SYSINFO.
7921
7922 * sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
7923
7924 * sysdeps/pthread/createthread.c (create_thread): Use
7925 THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
7926 * allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
7927 THREAD_SELF_SYSINFO instead of open code.
7928 * sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
7929 (THREAD_SYSINFO): Likewise.
7930
7931 * sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
7932
7933 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
7934
57d20ee7
UD
79352003-12-06 Ulrich Drepper <drepper@redhat.com>
7936
7937 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
7938 instead of .init. Patch by David Mosberger.
7939
67aeab2a
AJ
79402003-11-30 Thorsten Kukuk <kukuk@suse.de>
7941
7942 * sysdeps/pthread/configure.in: Remove broken declaration in C
7943 cleanup handling check.
7944
8ca203e6
AJ
79452003-11-30 Andreas Jaeger <aj@suse.de>
7946
7947 * Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
7948 * sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
7949 Likewise.
7950
46bf9de7
UD
79512003-11-27 Jakub Jelinek <jakub@redhat.com>
7952
7953 * sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
7954 * pthread_attr_destroy.c: Include shlib-compat.h.
7955 (__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
7956 is set in iattr->flags.
7957 * pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
7958
1d9b73ab
UD
79592003-11-21 Jakub Jelinek <jakub@redhat.com>
7960
7961 * Makefile (distribute): Add tst-cleanup4aux.c.
7962
7963 * tst-cond12.c (prepare): Add prototype. Move after test-skeleton.c
7964 include.
7965
53f9084e
UD
79662003-11-21 Ulrich Drepper <drepper@redhat.com>
7967
1d9b73ab
UD
7968 * tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
7969 pthread_cond_signal.
7970
e42a990e
UD
7971 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
7972 store mutex address if the current value is ~0l.
7973 * sysdeps/pthread/pthread_cond_timedwait.c
7974 (__pthread_cond_timedwait): Likewise.
7975 * sysdeps/pthread/pthread_cond_broadcast.c
7976 (__pthread_cond_broadcast): Don't use requeue for pshared
7977 condvars.
7978
7979 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
7980 (__pthread_cond_wait): Don't store mutex address if the current
7981 value is ~0l.
7982 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
7983 (__pthread_cond_timedwait): Likewise.
7984 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
7985 (__pthread_cond_broadcast): Don't use requeue for pshared
7986 condvars.
7987
7988 * pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
7989 element with ~0l for pshared condvars, with NULL otherwise.
7990
7991 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
7992 (__pthread_cond_wait): Don't store mutex address if the current
7993 value is ~0l.
7994 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
7995 (__pthread_cond_timedwait): Likewise.
7996 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
7997 (__pthread_cond_broadcast): Don't use requeue for pshared
7998 condvars.
7999
bf68b236 8000 * Makefile: Add rules to build and run tst-cond12 and tst-cond13.
53f9084e 8001 * tst-cond12.c: New file.
bf68b236 8002 * tst-cond13.c: New file.
53f9084e 8003
9780c971
UD
80042003-11-17 Ulrich Drepper <drepper@redhat.com>
8005
8006 * sysdeps/pthread/configure.in: Make missing forced unwind support
8007 fatal.
8008
74e12fbc
UD
80092003-11-11 Ulrich Drepper <drepper@redhat.com>
8010
8011 * pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
8012
c685b2b0
UD
80132003-11-06 Ulrich Drepper <drepper@redhat.com>
8014
8015 * Makefile: Add magic to clean up correctly.
8016
44e94149
UD
80172003-11-05 Jakub Jelinek <jakub@redhat.com>
8018
8019 * unwind.c (FRAME_LEFT): Define.
8020 (unwind_stop): Handle old style cleanups here.
8021 (__pthread_unwind): Handle old style cleanups only if
8022 !HAVE_FORCED_UNWIND.
8023 * Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
8024 (CFLAGS-tst-cleanupx4.c): Add -fexceptions.
8025 ($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
8026 ($(objpfx)tst-cleanupx4): Likewise.
8027 * tst-cleanup4.c: New test.
8028 * tst-cleanup4aux.c: New.
8029 * tst-cleanupx4.c: New test.
8030
c28422b5
UD
80312003-11-04 Ulrich Drepper <drepper@redhat.com>
8032
8033 * sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
8034 lll_mutex_*lock macros to skip atomic operations on some archs.
8035
27176677
UD
80362003-11-03 Ulrich Drepper <drepper@redhat.com>
8037
8038 * sysdeps/pthread/tst-timer.c (main): Initialize
8039 sigev2.sigev_value as well.
8040
026395a2
RM
80412003-10-15 Roland McGrath <roland@redhat.com>
8042
8043 * sysdeps/pthread/configure.in: Barf if visibility attribute support
8044 is missing.
8045 * sysdeps/pthread/configure: Regenerated.
8046
fa3cbe3d
UD
80472003-10-09 Kaz Kojima <kkojima@rr.iij4u.or.jp>
8048
8049 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
8050 locking macros. No distinction between normal and mutex locking
8051 anymore.
8052 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
8053 Merge bits from lowlevelmutex.S we still need.
8054 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
8055 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
8056 * sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
8057 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
8058 new mutex implementation.
8059 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
8060 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
8061 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8062 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
8063 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
8064 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
8065 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
8066 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
8067 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8068 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
8069 symbol for entry point to avoid cancellation.
8070
e700a908
UD
80712003-10-07 Jakub Jelinek <jakub@redhat.com>
8072
8073 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
8074 changes.
8075 (SAVE_OLDTYPE_0): Fix a typo.
8076
c70a86b6
UD
80772003-10-03 Ulrich Drepper <drepper@redhat.com>
8078
8079 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
8080 Check __sigsetjmp return value. Reported by Daniel Jacobowitz.
8081
134abcb5
UD
80822003-10-02 Ulrich Drepper <drepper@redhat.com>
8083
8084 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
8085 correct offset.
8086
b77ca0e8
UD
80872003-10-02 Jakub Jelinek <jakub@redhat.com>
8088
8089 * Makefile (tests): Add tst-cancel19.
8090 * tst-cancel19.c: New test.
8091
4d961dc7
UD
80922003-10-02 Ulrich Drepper <drepper@redhat.com>
8093
8094 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
8095 restoring of the old cancellation type.
8096
1d5b20ad 80972003-09-30 Jakub Jelinek <jakub@redhat.com>
94ae6d75 8098
1d5b20ad
UD
8099 * sysdeps/pthread/malloc-machine.h: Remove misleading comment.
8100
4106a403
RM
81012003-09-27 Wolfram Gloger <wg@malloc.de>
8102
4d961dc7 8103 * sysdeps/pthread/malloc-machine.h: New file
94ae6d75 8104
fca9d8e4
RM
81052003-09-24 Roland McGrath <roland@redhat.com>
8106
8107 * allocatestack.c (__make_stacks_executable): Don't ignore return
8108 value from _dl_make_stack_executable.
8109
c9c60884
UD
81102003-09-24 Ulrich Drepper <drepper@redhat.com>
8111
69c9fa04
UD
8112 * allocatestack.c (__make_stacks_executable): Also change
8113 permission of the currently unused stacks.
8114
279f1143
UD
8115 * allocatestack.c (change_stack_perm): Split out from
8116 __make_stacks_executable.
8117 (allocate_stack): If the required permission changed between the time
8118 we started preparing the stack and queueing it, change the permission.
8119 (__make_stacks_executable): Call change_stack_perm.
8120
c9c60884
UD
8121 * Makefile: Build tst-execstack-mod locally.
8122 * tst-execstack-mod.c: New file.
8123
54ee14b3
UD
81242003-09-23 Jakub Jelinek <jakub@redhat.com>
8125
8126 * Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
8127
81282003-09-23 Roland McGrath <roland@redhat.com>
8129
8130 * tst-execstack.c: New file.
8131 * Makefile (tests): Add it.
8132 ($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
8133 (LDFLAGS-tst-execstack): New variable.
8134
8135 * allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
8136 whether to use PROT_EXEC for stack mmap.
8137 (__make_stacks_executable): New function.
8138 * pthreadP.h: Declare it.
8139 * init.c (__pthread_initialize_minimal_internal): Set
8140 GL(dl_make_stack_executable_hook) to that.
8141
365b1602
UD
81422003-09-22 Ulrich Drepper <drepper@redhat.com>
8143
8144 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
8145 recommendation from AMD re avoidance of lock prefix.
8146
39358e8b
UD
81472003-09-22 Jakub Jelinek <jakub@redhat.com>
8148
8149 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
8150 lll_futex_timed_wait instead of lll_futex_wait.
8151 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
8152 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
8153 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
8154 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
8155 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
8156 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
8157 * sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
8158 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
8159 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
8160 Completely revamp the locking macros. No distinction between
8161 normal and mutex locking anymore.
8162 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
8163 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
8164 __lll_lock_timedwait): Fix prototypes.
8165 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
8166 __lll_lock_timedwait): Likewise.
8167 (lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
8168 macros, add __builtin_expect.
8169 (lll_mutex_timedlock): Likewise. Fix return value.
8170 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
8171 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
8172 * sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
8173 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
8174 * sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
8175 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
8176 * sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
8177 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
8178
9d08fbbb
UD
81792003-09-22 Ulrich Drepper <drepper@redhat.com>
8180
c0df57e1
UD
8181 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
8182 (__lll_mutex_lock_wait): Minor optimization to avoid one atomic
8183 operation if possible.
8184
9d08fbbb
UD
8185 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
8186 like jumping over the lock prefix.
8187
71451de2
UD
81882003-09-21 Ulrich Drepper <drepper@redhat.com>
8189
8190 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
8191 locking macros. No distinction between normal and mutex locking
8192 anymore.
3a226d33 8193 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
bc1989aa
UD
8194 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
8195 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
71451de2
UD
8196 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
8197 locking. Merge bits from lowlevelmutex.S we still need.
3a226d33 8198 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
bc1989aa 8199 * sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
71451de2 8200 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
3a226d33 8201 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
71451de2
UD
8202 * Makefile (routines): Remove libc-lowlevelmutex.
8203 (libpthread-rountines): Remove lowlevelmutex.
3a226d33
UD
8204 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
8205 for new mutex implementation.
8206 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
8207 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8208 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8209 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
8210 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
8211 Likewise.
8212 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
8213 Likewise.
8214 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
8215 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
8216 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
8217 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
8218 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8219 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8220 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
8221 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
8222 Likewise.
8223 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
8224 Likewise.
8225 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
8226 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
8227 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
8228 Don't use requeue.
8229 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
bc1989aa 8230 * sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
71451de2 8231
8f31c0ef
UD
82322003-09-20 Ulrich Drepper <drepper@redhat.com>
8233
56a4aa98
UD
8234 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
8235 in parameters of asm with output parameters.
8236
8f31c0ef
UD
8237 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
8238 type of DECR parameter to int.
8239 * pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
8240
8b8074da
UD
82412003-09-18 Jakub Jelinek <jakub@redhat.com>
8242
8243 * tst-attr3.c (tf, do_test): Print stack start/end/size and
8244 guardsize for each thread.
8245
65af7e61
UD
82462003-09-17 Jakub Jelinek <jakub@redhat.com>
8247
9ba96eda
UD
8248 * sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
8249 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
8250 (pthread_attr_setaffinity_np): Handle cpuset == NULL.
8251
06f6ca90
UD
8252 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
8253 (pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
8254 NULL.
8255 * pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
8256 * pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
8257 * sysdeps/unix/sysv/linux/pthread_getaffinity.c
8258 (pthread_getaffinity_np): Add hidden_def.
8259
8260 * Makefile (tests): Add tst-attr3.
8261 * tst-attr3.c: New test.
8262
65af7e61
UD
8263 * sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
8264
3402852c
UD
82652003-09-15 Jakub Jelinek <jakub@redhat.com>
8266
8267 * sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
8268 CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
8269
a4db3439
UD
82702003-09-17 Jakub Jelinek <jakub@redhat.com>
8271
8272 * Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
8273 * tst-align.c: Include tst-stack-align.h.
8274 (tf, do_test): Use TEST_STACK_ALIGN macro.
8275
82762003-09-17 Ulrich Drepper <drepper@redhat.com>
8277
8278 * pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
8279 variable.
8280
92ce4676
UD
82812003-09-16 Ulrich Drepper <drepper@redhat.com>
8282
8283 * pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
8284 stack-related values for the initial thread.
8285
e07bb02a
UD
82862003-09-15 Jakub Jelinek <jakub@redhat.com>
8287
8288 * Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
8289
d087b5dc
UD
82902003-09-11 Ulrich Drepper <drepper@redhat.com>
8291
8292 * pthread_mutex_lock.c: Minor code rearrangements.
8293
7f08f55a
RM
82942003-09-05 Roland McGrath <roland@redhat.com>
8295
8296 * pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
8297 Instead, include ../nptl_db/db_info.c to do its magic.
8298 * pthread_key_create.c (__pthread_pthread_keys_max): Removed.
8299 (__pthread_pthread_key_2ndlevel_size): Likewise.
8300 * sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
8301 * sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
8302 * sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
8303 * sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
8304 * sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
8305 * sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
8306 * sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
8307 * sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
8308 * sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
8309 * sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
8310 * sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
8311 * sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
8312 * sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
8313 * sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
8314 * sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
8315 * sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
8316 * sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
8317
806e4a4a
UD
83182003-09-08 Ulrich Drepper <drepper@redhat.com>
8319
8320 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
8321 of pthread_t to be compatible with LT.
8322 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
8323 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8324 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8325 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8326 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
8327 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8328 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
8329
17f83e56
UD
83302003-09-04 Ulrich Drepper <drepper@redhat.com>
8331
8332 * sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
8333
58e8ec84
UD
83342003-09-04 Jakub Jelinek <jakub@redhat.com>
8335
8336 * unwind-forcedunwind.c: Move to...
8337 * sysdeps/pthread/unwind-forcedunwind.c: ...here.
8338 (pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
8339 * sysdeps/pthread/jmpbuf-unwind.h: New file.
8340 * sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
8341 * sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
8342 * unwind.c: Include jmpbuf-unwind.h.
8343 (unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
8344
abf1cf21
JJ
83452003-09-02 Jakub Jelinek <jakub@redhat.com>
8346
4a244f0d
UD
8347 * sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
8348 * sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
8349 pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
8350 * sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
8351 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
8352 * sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
8353 * sysdeps/unix/sysv/linux/sparc/Versions: New file.
8354 * pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
8355 (pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
8356 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
8357 * pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
8358 function.
8359 (pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
8360 as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
8361 * Makefile (tests): Add tst-stack2.
8362 * tst-stack2.c: New test.
8363 * tst-stack1.c: Include limits.h and sys/param.h.
8364 (do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
8365
e29ef647
UD
8366 * pthread_condattr_setpshared.c: Include errno.h.
8367 (pthread_condattr_setpshared): Return EINVAL if pshared
8368 is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
8369
5777d565
UD
8370 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
8371 defined symbol for entry point to avoid cancellation.
8372 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
8373 Likewise.
8374 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
8375 Likewise.
8376 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
8377 Likewise.
8378 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
8379 Likewise.
8380 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
8381 Likewise.
8382 * sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
8383 __close_nocancel, __read_nocancel, __write_nocancel,
8384 __waitpid_nocancel): Add attribute_hidden. If not in libc.so,
8385 libpthread.so or librt.so, define to corresponding function
8386 without _nocancel suffix.
8387 * sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
8388 * sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
8389 * sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
8390
abf1cf21
JJ
8391 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
8392
8348dcc8
UD
83932003-09-02 Ulrich Drepper <drepper@redhat.com>
8394
8395 * sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
1e03e0af 8396 * sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
8348dcc8
UD
8397
8398 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
8399 in subsections has a symbol associated with it.
8400
8401 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
8402 defined symbol for entry point to avoid cancellation.
8403 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
8404
c874a32e
UD
84052003-09-01 Jakub Jelinek <jakub@redhat.com>
8406
8407 * Makefile (tests): Add tst-tls5.
8408 (module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
8409 ($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
8410 ($(objpfx)tst-tls5): New.
8411 ($(objpfx)tst-tls6.out): Likewise.
8412 (tests): Depend on $(objpfx)tst-tls6.out.
8413 * tst-tls3.c: Include stdint.h and pthreaddef.h.
8414 (do_test): Check pthread_self () return value alignment.
8415 * tst-tls3mod.c: Include stdint.h and pthreaddef.h.
8416 (tf): Check pthread_self () return value alignment.
8417 * tst-tls5.c: New test.
8418 * tst-tls5.h: New.
8419 * tst-tls5mod.c: New.
8420 * tst-tls5moda.c: New.
8421 * tst-tls5modb.c: New.
8422 * tst-tls5modc.c: New.
8423 * tst-tls5modd.c: New.
8424 * tst-tls5mode.c: New.
8425 * tst-tls5modf.c: New.
8426 * tst-tls6.sh: New test.
8427
c503d3dc
UD
8428 * sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
8429 ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
8430 * init.c (pthread_functions): Initialize them.
8431 * forward.c (pthread_cond_timedwait@GLIBC_2.0,
8432 pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
8433 * Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
8434 pthread_cond_timedwait@@GLIBC_2.3.2.
8435
48614753
JJ
84362003-09-01 Jakub Jelinek <jakub@redhat.com>
8437
56a1b877
JJ
8438 * sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
8439 * sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
8440 * sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
8441 * sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
8442 * sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
8443 * sysdeps/unix/sysv/linux/alpha/Versions: New file.
8444
8445 * sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
8446
48614753
JJ
8447 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
8448 _POSIX_THREAD_PRIORITY_SCHEDULING.
8449 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
8450
28c97261
UD
84512003-08-31 Ulrich Drepper <drepper@redhat.com>
8452
eef80cf8
UD
8453 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
8454 nested function, use static inline function from libio.h.
8455 Code by Richard Henderson.
8456
28c97261
UD
8457 * sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
8458 weak.
8459
cd2fbe58
UD
84602003-08-30 Jakub Jelinek <jakub@redhat.com>
8461
8462 * sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
8463 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
8464 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
8465 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
8466 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
8467 * sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
8468 * sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
8469 * sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
8470 * sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
8471 * sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
8472 * sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
8473 * sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
8474 * sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
8475 * sysdeps/unix/sysv/linux/sparc/fork.c: New file.
8476 * sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
8477 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
8478 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
8479 * sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
8480 * sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
8481 * sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
8482 * sysdeps/sparc/sparc32/pthreaddef.h: New file.
8483 * sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
8484 * sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
8485 * sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
8486 * sysdeps/sparc/sparc64/pthreaddef.h: New file.
8487 * sysdeps/sparc/tls.h: New file.
8488 * sysdeps/sparc/tcb-offsets.sym: New file.
8489 * sysdeps/sparc/Makefile: New file.
8490 * sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
8491 * init.c [__sparc__] (__NR_set_tid_address): Define.
8492
feda52c0
UD
84932003-08-29 Jakub Jelinek <jakub@redhat.com>
8494
8495 * sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
8496 _IO_release_lock): Define.
8497
7c868816
JJ
84982003-08-29 Jakub Jelinek <jakuB@redhat.com>
8499
0261d33f 8500 * tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
7c868816
JJ
8501 sigemptyset before sigaddset. Reported by jreiser@BitWagon.com.
8502
68b9e1ae
UD
85032003-08-27 Ulrich Drepper <drepper@redhat.com>
8504
8505 * sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
8506 (__pthread_cleanup_class): Add missing return types of member
8507 functions.
8508
13b3edfc
UD
85092003-08-26 Steven Munroe <sjmunroe@us.ibm.com>
8510
8511 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
8512 (lll_mutex_unlock_force): Add memory barrier between store and futex
8513 syscall.
8514
bb606fbe
UD
85152003-08-25 Ulrich Drepper <drepper@redhat.com>
8516
8517 * tst-cancel4.c (do_test): Also unlink tempfname and remove
8518 tempmsg in first loop.
8519
ee4e5a3d
UD
85202003-08-18 Ulrich Drepper <drepper@redhat.com>
8521
8522 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
8523 _POSIX_THREAD_PRIORITY_SCHEDULING.
8524 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
8525
334fcf2a
UD
85262003-08-07 Jakub Jelinek <jakub@redhat.com>
8527
8528 * sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
8529 (__rtld_lock_default_lock_recursive,
8530 __rtld_lock_default_unlock_recursive): Define.
8531 [_LIBC && SHARED] (__rtld_lock_lock_recursive,
8532 __rtld_lock_unlock_recursive): Define using
8533 GL(_dl_rtld_*lock_recursive).
8534 * init.c (__pthread_initialize_minimal_internal): Initialize
8535 _dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
8536 Lock GL(_dl_load_lock) the same number of times as
8537 GL(_dl_load_lock) using non-mt implementation was nested.
8538
8539 * pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
8540 * pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
8541
a30fb2df
UD
85422003-08-06 Jakub Jelinek <jakub@redhat.com>
8543
8544 * tst-cancel17.c (do_test): Make len2 maximum of page size and
8545 PIPE_BUF.
8546
ce0d30a0
JJ
85472003-08-07 Jakub Jelinek <jakub@redhat.com>
8548
8549 * pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
8550
9c988b83
UD
85512003-08-03 Jakub Jelinek <jakub@redhat.com>
8552
8553 * sysdeps/pthread/createthread.c (do_clone): Move error handling
8554 to first syscall error check. Move syscall error check for tkill
8555 into __ASSUME_CLONE_STOPPED #ifdef.
8556
5c5252bd
UD
85572003-08-02 Ulrich Drepper <drepper@redhat.com>
8558
f1205aa7
UD
8559 * sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
8560 is not defined, do explicit synchronization.
8561 (create_thread): Do not lock pd->lock here. If __ASSUME_CLONE_STOPPED
8562 is not defined also unlock pd->lock for non-debugging case in case
8563 it is necessary.
8564 * pthread_create.c (start_thread): Always get and release pd->lock
8565 if __ASSUME_CLONE_STOPPED is not defined.
8566 (start_thread_debug): Removed. Adjust users.
8567 * allocatestack.c (allocate_stack): Always initialize lock if
8568 __ASSUME_CLONE_STOPPED is not defined.
8569 * Makefile (tests): Add tst-sched1.
8570 * tst-sched1.c: New file.
8571
5c5252bd
UD
8572 * sysdeps/pthread/createthread.c (do_clone): Only use
8573 sched_setschduler and pass correct parameters.
8574
973d66e4
UD
85752003-07-31 Jakub Jelinek <jakub@redhat.com>
8576
8577 * sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
8578 pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
8579 PTHREAD_STACK_MIN in comments.
8580
d347a4ab
UD
85812003-07-31 Jakub Jelinek <jakub@redhat.com>
8582
8583 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
8584 Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
8585 argument.
8586 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
8587 * pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
8588 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
8589 (__pthread_cleanup_upto): Fix prototype.
8590 (_longjmp_unwind): Adjust caller.
8591 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
8592 Change second argument to const struct pointer.
8593 * tst-sem8.c (main): Remove unused s2 and s3 variables.
8594 * tst-sem9.c (main): Likewise.
8595 * unwind.c: Include string.h for strlen prototype.
8596
1b26e9a5
UD
85972003-07-31 Ulrich Drepper <drepper@redhat.com>
8598
8599 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
8600 (__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
8601 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
8602 Define HAVE_CMOV.
8603 Patch by Nicholas Miell <nmiell@attbi.com>.
8604
adc12574
UD
86052003-07-30 Jakub Jelinek <jakub@redhat.com>
8606
8607 * init.c (__pthread_initialize_minimal_internal): Initialize
8608 GL(dl_init_static_tls).
8609 * pthreadP.h (__pthread_init_static_tls): New prototype.
8610 * allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
8611 New functions.
8612 * Makefile (tests): Add tst-tls4.
8613 (modules-names): Add tst-tls4moda and tst-tls4modb.
8614 ($(objpfx)tst-tls4): Link against libdl and libpthread.
8615 ($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
8616 tst-tls4modb.so.
8617 * tst-tls4.c: New file.
8618 * tst-tls4moda.c: New file.
8619 * tst-tls4modb.c: New file.
8620
a7f6c66e
RM
86212003-06-19 Daniel Jacobowitz <drow@mvista.com>
8622
8623 * sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
8624 before __timer_dealloc.
8625 * sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
8626 Don't call list_unlink.
8627
172ce013
RM
86282003-07-29 Roland McGrath <roland@redhat.com>
8629
8630 * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
8631
7b787f85
UD
86322003-07-25 Jakub Jelinek <jakub@redhat.com>
8633
8634 * tst-cancel17.c (do_test): Check if aio_cancel failed.
8635 Don't reuse struct aiocb A if it failed.
8636 Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
8637 not just one byte, as that does not block.
8638
0e9d6240
UD
86392003-07-22 Jakub Jelinek <jakub@redhat.com>
8640
9d79e037
UD
8641 * sysdeps/pthread/unwind-resume.c: New file.
8642 * sysdeps/pthread/Makefile (routines, shared-only-routines): Add
8643 unwind-resume in csu subdir.
8644 (CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
8645 exceptions.
8646 (librt-sysdep_routines, librt-shared-only-routines): Add
8647 rt-unwind-resume.
8648 * sysdeps/pthread/rt-unwind-resume.c: New file.
8649 * unwind-forcedunwind.c: New file.
8650 * Makefile (libpthread-routines): Add unwind-forcedunwind.
8651 (libpthread-shared-only-routines): Likewise.
8652 (CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
8653 * pthreadP.h (pthread_cancel_init): New prototype.
8654 * pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
8655
8656 * sysdeps/pthread/createthread.c (do_thread, create_thread): Make
8657 attr argument const struct pthread_attr *.
8658
0e9d6240
UD
8659 * res.c (__res_state): Return __resp.
8660 * descr.h: Include resolv.h.
8661 (struct pthread): Add res field.
8662 * pthread_create.c: Include resolv.h.
8663 (start_thread): Initialize __resp.
8664 * Makefile (tests): Add tst-_res1.
8665 (module-names): Add tst-_res1mod1, tst-_res1mod2.
8666 ($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
8667 ($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
8668 libpthread.
8669 * tst-_res1.c: New file.
8670 * tst-_res1mod1.c: New file.
8671 * tst-_res1mod2.c: New file.
8672
1a379ea0
UD
86732003-07-21 Ulrich Drepper <drepper@redhat.com>
8674
7e939b21
UD
8675 * sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
8676
1a379ea0
UD
8677 * Makefile: Define various *-no-z-defs variables for test DSOs
8678 which has undefined symbols.
8679
ca86a763
UD
86802003-07-21 Steven Munroe <sjmunroe@us.ibm.com>
8681
8682 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
8683 Retry if the stwcx fails to store once_control.
8684
80f536db
UD
86852003-07-20 Ulrich Drepper <drepper@redhat.com>
8686
8687 * Makefile (libpthread-routines): Add pthread_attr_getaffinity and
8688 pthread_attr_setaffinity.
8689 * Versions [libpthread] (GLIBC_2.3.3): Likewise.
8690 * sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
8691 * sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
8692 * pthread_attr_destroy.c: Free cpuset element if allocated.
8693 * pthread_create.c: Pass iattr as additional parameter to
8694 create_thread.
8695 * sysdeps/pthread/createthread.c: If attribute is provided and
8696 a new thread is created with affinity set or scheduling parameters,
8697 start thread with CLONE_STOPPED.
8698 * sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
8699 pthread_attr_setaffinity.
8700 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
8701 cpuset element.
8702
73299943
UD
87032003-07-15 Ulrich Drepper <drepper@redhat.com>
8704
8705 * tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
8706
da35d15e
UD
87072003-07-14 Ulrich Drepper <drepper@redhat.com>
8708
8709 * sysdeps/pthread/configure.in: Require CFI directives also for
8710 ppc and s390.
8711
75540d8a
UD
87122003-07-15 Jakub Jelinek <jakub@redhat.com>
8713
8714 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
8715 Add cfi directives.
8716
4a17085f
UD
87172003-07-12 Kaz Kojima <kkojima@rr.iij4u.or.jp>
8718
8719 * sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
8720 CLEANUP_JMP_BUF.
8721 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
8722 registers as variables. Call __pthread_mutex_unlock_usercnt.
8723 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
8724 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
8725 not self pointer in __writer. Compare with TID to determine
8726 deadlocks.
8727 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
8728 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
8729 Likewise.
8730 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
8731 Likewise.
8732 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
8733 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
8734 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
8735 macros also when compiling librt.
8736
6080ecdf
UD
87372003-07-11 Jakub Jelinek <jakub@redhat.com>
8738
8739 * Makefile (CFLAGS-pthread_once.c): Add -fexceptions
8740 -fasynchronous-unwind-tables.
8741 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
8742 (PSEUDO): Add cfi directives.
8743 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
8744 Likewise.
8745 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
8746 Likewise.
8747
da0c02ee
UD
87482003-07-08 Jakub Jelinek <jakub@redhat.com>
8749
8750 * pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
8751 __pthread_unregister_cancel): Add prototypes and hidden_proto.
8752 * unwind.c (__pthread_unwind_next): Add hidden_def.
8753 * cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
8754 Likewise.
8755 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
8756 Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
8757 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
8758 Likewise.
8759 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
8760 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
8761 Likewise.
8762 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
8763 HIDDEN_JUMPTARGET to call __pthread_register_cancel,
8764 __pthread_unregister_cancel and __pthread_unwind_next.
8765
57a5ea02
UD
87662003-07-04 Jakub Jelinek <jakub@redhat.com>
8767
8768 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
8769 different symbol for the cancellation syscall wrapper and
8770 non-cancellation syscall wrapper.
8771 (PSEUDO_END): Define.
8772
d810b358
UD
87732003-07-05 Richard Henderson <rth@redhat.com>
8774
8775 * sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
8776 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
42d86dd6
RH
8777 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
8778 return actual return value from the syscall, not 0.
d810b358 8779
db54f488
UD
87802003-07-07 Ulrich Drepper <drepper@redhat.com>
8781
8782 * descr.h (struct pthread): Add pid field.
8783 * allocatestack.c (allocate_stack): Initialize pid field in descriptor.
8784 (__reclaim_stacks): Likewise.
8785 * init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
8786 also check for PID of the signal source.
8787 (__pthread_initialize_minimal_internal): Also initialize pid field
8788 of initial thread's descriptor.
8789 * pthread_cancel.c: Use tgkill instead of tkill if possible.
8790 * sysdeps/unix/sysv/linux/fork.c: Likewise.
8791 * sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
8792 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
8793 * sysdeps/unix/sysv/linux/raise.c: Likewise.
8794
5e497a41
UD
87952003-07-05 Ulrich Drepper <drepper@redhat.com>
8796
8797 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
8798 Fix use of parameter.
8799 (__libc_cleanup_pop): Likewise.
8800
86a0c4fa
UD
88012003-07-04 Ulrich Drepper <drepper@redhat.com>
8802
8803 * init.c (sigcancel_handler): Change parameters to match handler
8804 for SA_SIGACTION. Check signal number and code to recognize
8805 invalid invocations.
8806
bdbecaa3
RM
88072003-07-03 Roland McGrath <roland@redhat.com>
8808
8809 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
8810 Apply sizeof (struct pthread) bias to r13 value.
8811
56421b23
UD
88122003-07-03 Ulrich Drepper <drepper@redhat.com>
8813
fbd90f6c
UD
8814 * sysdeps/pthread/configure.in: Require CFI directives.
8815
56421b23
UD
8816 * sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
8817 definition.
8818 * pthreadP.h (__pthread_unwind): Add hidden_proto if used in
8819 libpthread compilation.
8820 * unwind.c (__pthread_unwind): Add hidden_def.
8821 * Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
8822
ca2b4cd7
UD
88232003-07-01 Ulrich Drepper <drepper@redhat.com>
8824
8825 * libc-cancellation.c (__libc_cleanup_routine): Define.
8826 * sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
8827 (__pthread_cleanup_pop): Define.
8828
f036e569
UD
88292003-07-01 Richard Henderson <rth@redhat.com>
8830
8831 * sysdeps/alpha/elf/pt-initfini.c: New file.
8832 * sysdeps/alpha/pthread_spin_lock.S: New file.
8833 * sysdeps/alpha/pthread_spin_trylock.S: New file.
8834 * sysdeps/alpha/pthreaddef.h: New file.
8835 * sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
8836 * sysdeps/alpha/tls.h: New file.
8837 * sysdeps/unix/sysv/linux/alpha/Makefile: New file.
8838 * sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
8839 * sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
8840 * sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
8841 * sysdeps/unix/sysv/linux/alpha/fork.c: New file.
8842 * sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
8843 * sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
8844 * sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
8845 * sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
8846 * sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
8847
3b985826
UD
88482003-07-01 Ulrich Drepper <drepper@redhat.com>
8849
8850 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
8851 cleanup support and unwind info.
8852
3a4d1e1e
UD
88532003-06-30 Ulrich Drepper <drepper@redhat.com>
8854
8855 * sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
8856 Use correct cleanup handler registration. Add unwind info.
96c814d3
UD
8857 * sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
8858 * sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
3a4d1e1e
UD
8859 * tst-once3.c: Add cleanup handler and check it is called.
8860 * tst-once4.c: Likewise.
8861 * tst-oncex3.c: New file.
8862 * tst-oncex4.c: New file.
8863 * Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
8864
e479cc8e
UD
88652003-06-29 Ulrich Drepper <drepper@redhat.com>
8866
8867 * sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
8868
7d7ff54c
UD
88692003-06-27 Ulrich Drepper <drepper@redhat.com>
8870
483e95d0
UD
8871 * tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
8872 (tf_msgsnd): Likewise.
8873
7d7ff54c
UD
8874 * tst-cancel4.c (tf_msgrcv): Strengthen test against valid
8875 premature returns a bit more.
8876
7539c7ec
UD
88772003-06-26 Ulrich Drepper <drepper@redhat.com>
8878
8879 * sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
8880 definition to the front.
8881
8882 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
8883 the cleanup functions to make the names unique. Fix dwarf opcode
8884 un unwind table.
8885 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
8886 functions to make the names unique. Fix CFA offset for two blocks.
8887
0af6a1d9
UD
88882003-06-25 Ulrich Drepper <drepper@redhat.com>
8889
8890 * sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
8891 missing closing braces.
8892 Patch by Christophe Saout <christophe@saout.de>.
8893
eef4a9f3
RM
88942003-06-24 Roland McGrath <roland@redhat.com>
8895
8896 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
8897
4165d44d
UD
88982003-06-24 Ulrich Drepper <drepper@redhat.com>
8899
7f8f7b9d
UD
8900 * sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
8901 * sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
8902
4165d44d
UD
8903 * pthreadP.h: Declare __find_thread_by_id.
8904 * allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
8905 * pthread_clock_gettime.c: Allow using other thread's clock.
8906 * pthread_clock_settime.c: Likewise.
8907 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
8908 * Makefile: Add rules to build and run tst-clock2.
8909 * tst-clock2.c: New file.
8910
67b78ef9
UD
89112003-06-23 Ulrich Drepper <drepper@redhat.com>
8912
8913 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
8914 to use exception-based cleanup handler.
8915 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8916
8917 * tst-cond8.c (ch): Announce that we are done.
8918
8919 * pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
8920
8921 * tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
8922 Also test aio_suspend with timeout value.
8923
61623643
UD
89242003-06-22 Ulrich Drepper <drepper@redhat.com>
8925
3a4f2043
UD
8926 * pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
8927 * pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
8928 attribute_hidden.
8929
61623643
UD
8930 * pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
8931 (__pthread_mutex_lock_internal): Likewise.
8932 (__pthread_mutex_unlock_internal): Likewise.
8933 (__pthread_mutex_unlock_usercnt): Declare.
8934 * pthread_mutex_destroy.c: Always fail if used in any way.
8935 * pthread_mutex_init.c: Update comment.
8936 * pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
8937 * pthread_mutex_timedlock.c: Adjust __nusers.
8938 * pthread_mutex_trylock.c: Adjust __nusers.
8939 * pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
8940 and public interfaces are wrapper with pass additional parameter.
8941 __pthread_mutex_unlock_usercnt does not adjust __nusers if second
8942 parameter zero.
8943 * tst-mutex8.c: New file.
8944 * Makefile (tests): Add tst-mutex8.
8945 * sysdeps/pthread/pthread_cond_timedwait.c: Call
8946 __pthread_mutex_unlock_usercnt.
8947 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
8948 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
8949 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
8950 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
8951 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
8952 * sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
8953 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
8954 Add __nusers.
8955 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8956 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8957 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8958 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8959 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
8960
8961 * pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
8962 * pthread_mutex_timedlock.c: Likewise.
8963 * pthread_mutex_trylock.c: Adjust __nusers.
8964 * pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
8965 * tst-mutex9.c: New file.
8966 * Makefile (tests): Add tst-mutex9.
8967 * sysdeps/i386/tls.h: Remove THREAD_ID definition.
8968 * sysdeps/ia64/tls.h: Likewise.
8969 * sysdeps/powerpc/tls.h: Likewise.
8970 * sysdeps/s390/tls.h: Likewise.
8971 * sysdeps/sh/tls.h: Likewise.
8972 * sysdeps/x86_64/tls.h: Likewise.
8973 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
8974 Change type of __owner.
8975 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
8976 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
8977 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
8978 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
8979 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
8980
9bdabb94
UD
89812003-06-19 Jakub Jelinek <jakub@redhat.com>
8982
8983 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
8984 * sysdeps/unix/sysv/linux/sem_post.c: ...here.
8985
8986 * sysdeps/unix/sysv/linux/sem_post.c: Move to...
8987 * sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here. Pass nr + 1
8988 instead of nr to lll_futex_wake. Only set errno and return -1
8989 if err < 0.
8990
8991 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
8992 lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
8993 return actual return value from the syscall, not 0.
8994
f6c93bd9
UD
89952003-06-18 Ulrich Drepper <drepper@redhat.com>
8996
ca343e73
UD
8997 * tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
8998 find a random value.
8999 (tf_msgrcv): Likewise. Also don't report msgrcv returns if
9000 errno==EIDRM.
9001
50441a98
UD
9002 * sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
9003 compat_timer_settime.
9004 * sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
9005 compat_timer_gettime.
9006 * sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
9bdabb94 9007 compat_timer_getoverrun.
50441a98
UD
9008 * sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
9009 compat_timer_delete.
9010
f6c93bd9
UD
9011 * pthread_mutex_destroy.c (__pthread_mutex_destroy): For
9012 error-checking mutex detect busy mutexes.
9013
047aec8f
UD
90142003-06-17 Ulrich Drepper <drepper@redhat.com>
9015
1d53508d
UD
9016 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
9017 Add ax to clobber list.
9018 (lll_mutex_cond_lock): Likewise.
9019 (lll_mutex_unlock): Likewise.
9020 (lll_lock): Likewise.
9021 (lll_unlock): Likewise.
9022
f23b30e2
UD
9023 * Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
9024 * tst-cancel18.c: New file.
9025 * tst-cancelx18.c: New file.
9026
9027 * tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
9028 and tcdrain.
9029
9030 * Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
9031 * tst-cancel17.c: New file.
9032 * tst-cancelx17.c: New file.
9033
9034 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
9035 * sysdeps/unix/sysv/linux/sigwait.c: New file.
9036 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
9037
047aec8f
UD
9038 * tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
9039
bbde8527
UD
90402003-06-16 Jakub Jelinek <jakub@redhat.com>
9041
9042 * sysdeps/pthread/createthread.c (create_thread): Set
9043 header.multiple_threads unconditionally.
9044 * allocatestack.c (allocate_stack): Likewise.
9045 * descr.h (struct pthread): Add header.multiple_threads
9046 unconditionally.
9047 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
9048 Define for librt. #error if neither libpthread, libc nor librt.
9049 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
9050 Likewise.
9051 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
9052 CDISABLE): Likewise.
9053 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
9054 CDISABLE): Likewise.
9055 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
9056 CDISABLE): Likewise.
9057 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
9058 CDISABLE): Likewise. Access header.multiple_threads outside of
9059 libc and libpthread.
9060 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
9061 Likewise.
9062 * sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
9063 * sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
9064
26676450
UD
90652003-06-17 Ulrich Drepper <drepper@redhat.com>
9066
9067 * tst-cancel4.c: Add tests for the socket and signal functions, pause.
9068 Also test early cancellation before the thread reaches the cancellation
9069 point.
9070
9071 * Makefile: Compile forward.c with exceptions.
9072
9073 * sysdeps/unix/sysv/linux/sleep.c: New file.
9074
301a6724
UD
90752003-06-16 Ulrich Drepper <drepper@redhat.com>
9076
0e0deb03
UD
9077 * Makefile: Add CFLAGS definition to compile function wrappers
9078 duplicated from libc with exceptions.
9079 * tst-cancel4.c: Also check cancellation handlers.
9080
301a6724
UD
9081 * Makefile: Add rules to build and run tst-cancel16 and
9082 tst-cancelx16. Add missing CFLAGS definitions.
9083 * tst-cancel16.c: New file.
9084 * tst-cancelx16.c: New file.
9085
7a114794
UD
90862003-06-15 Ulrich Drepper <drepper@redhat.com>
9087
452aea84
UD
9088 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9089 (DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
9090 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
9091 (DL_SYSINFO_IMPLEMENTATION): Likewise.
9092
7a114794
UD
9093 * pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
9094 (LIBC_CANCEL_RESET): Likewise.
9095 Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
9096 * sysdeps/pthread/Makefile (librt-sysdep_routines): Add
9097 librt-cancellation.
9098 (CFLAGS-libcrt-cancellation.c): Define.
9099 * sysdeps/pthread/librt-cancellation.c: New file.
9100 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
9101 macros also when compiling librt.
9102 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
9103 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
9104 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
9105 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
9106 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
9107 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
9108 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
9109
9110 * sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
9111 compat_timer_create.
9112
8ba1d429
UD
91132003-06-14 Ulrich Drepper <drepper@redhat.com>
9114
cc8fb6f3
UD
9115 * sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
9116
8ba1d429
UD
9117 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
9118 __register_atfork.
9119 * sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
9120 Add libc_hidden_def.
9121
d4f100e2
RM
91222003-06-13 Roland McGrath <roland@redhat.com>
9123
9124 * sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
9125 constant from <sys/reg.h> to ps_get_thread_area, not register contents.
9126
dd9423a6
UD
91272003-06-11 Ulrich Drepper <drepper@redhat.com>
9128
9129 * allocatestack.c (queue_stack): Always inline.
9130 * ptreadhP.h (__do_cancel): Likewise.
9131
ed24330d
JJ
91322003-06-10 Jakub Jelinek <jakub@redhat.com>
9133
9134 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
9135 a typo.
9136
06120d79
UD
91372003-06-10 Ulrich Drepper <drepper@redhat.com>
9138
9139 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9140 (__pthread_cond_signal): Remove incorrect second addition for
9141 cond_lock!=0.
9142
b1720346
UD
91432003-06-09 Ulrich Drepper <drepper@redhat.com>
9144
5b318f85
UD
9145 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9146 (__pthread_cond_signal): Use correct futex pointer in
9147 __lll_mutex_lock_wait call.
9148
b1720346
UD
9149 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9150 (__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
9151
3e36c37d
UD
91522003-06-08 Ulrich Drepper <drepper@redhat.com>
9153
ecf7955d
UD
9154 * sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
9155 cancelable.
ed24330d 9156 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
ecf7955d
UD
9157 Likewise.
9158
3e36c37d
UD
9159 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
9160 hand-written CFI generation code. Since ENTRY/END also initiated
9161 CFI frames this caused two CFI sets to be generated.
9162
7726edc2
UD
91632003-06-07 Ulrich Drepper <drepper@redhat.com>
9164
9165 * cleanup_routine.c: New file.
9166 * Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
9167 * sysdeps/pthread/pthread.h: Add support for fully exception-based
9168 cleanup handling.
9169 * Makefile (libpthread-routines): Add cleanup_routine.
9170 Add more CFLAGS variables to compile with exceptions. Add comments
9171 why which file needs unwind tables.
9172 (tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
9173 tests.
9174 * tst-cancelx1.c: New file.
9175 * tst-cancelx2.c: New file.
9176 * tst-cancelx3.c: New file.
9177 * tst-cancelx4.c: New file.
9178 * tst-cancelx5.c: New file.
9179 * tst-cancelx6.c: New file.
9180 * tst-cancelx7.c: New file.
9181 * tst-cancelx8.c: New file.
9182 * tst-cancelx9.c: New file.
9183 * tst-cancelx10.c: New file.
9184 * tst-cancelx11.c: New file.
9185 * tst-cancelx12.c: New file.
9186 * tst-cancelx13.c: New file.
9187 * tst-cancelx14.c: New file.
9188 * tst-cancelx15.c: New file.
9189 * tst-cleanupx0.c: New file.
9190 * tst-cleanupx0.expect: New file.
9191 * tst-cleanupx1.c: New file.
9192 * tst-cleanupx2.c: New file.
9193 * tst-cleanupx3.c: New file.
9194
9195 * tst-cleanup0.c: Make standard compliant.
9196 * tst-cleanup1.c: Likewise.
9197
9198 * sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
9199 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
9200 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
9201 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
9202 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
9203 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
9204 * sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
9205 CLEANUP_JMP_BUF.
9206 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
9207 * tst-cancel12.c: New file.
9208 * tst-cancel13.c: New file.
9209 * tst-cancel14.c: New file.
9210 * tst-cancel15.c: New file.
9211 * Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
9212 and tst-cancel15.
9213
9214 * tst-cancel1.c: Add some comments.
9215
9216 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
9217 timeout correctly.
9218
7a8a8e21
UD
92192003-06-06 Ulrich Drepper <drepper@redhat.com>
9220
9221 * Makefile (CFLAGS-pthread_cancel.c): Define.
9222
4ad0bbf4
UD
92232003-06-05 Ulrich Drepper <drepper@redhat.com>
9224
9225 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
9226 Change type of __writer element to int.
9227 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
9228 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
9229 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
9230 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
9231 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9232 * sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
9233 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
9234 * pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
9235 Compare with TID to determine deadlocks.
9236 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
9237 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
9238 * sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
9239 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
9240 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
9241 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
9242 Likewise.
9243 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
9244 Likewise.
9245 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
9246 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
9247 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
9248 Likewise.
9249 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
9250 Likewise.
9251 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
9252 * Makefile (tests): Add tst-rwlock12.
9253 * tst-rwlock12.c: New file.
9254
332faa96
JJ
92552003-06-05 Jakub Jelinek <jakub@redhat.com>
9256
9257 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
9258 __lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
9259 Remove bogus hidden_proto.
9260 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
9261 Likewise.
9262 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
9263 lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
9264 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
9265 ___lll_mutex_timedlock): Likewise.
9266
29d9e2fd
UD
92672003-06-04 Ulrich Drepper <drepper@redhat.com>
9268
9269 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
9270 (__pthread_cond_signal): Add some code to eventually handle
9271 cond_lock!=0.
9272
6f1acb30
UD
92732003-06-01 Ulrich Drepper <drepper@redhat.com>
9274
9275 * Makefile (tests): Add tst-exec4.
9276 (tst-exec4-ARGS): Define.
9277 * tst-exec4.c: New file.
9278
49b65043
UD
92792003-05-31 Ulrich Drepper <drepper@redhat.com>
9280
31195be2
UD
9281 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
9282 Also fail if tv_nsec < 0.
9283 (__lll_timedwait_tid): Likewise.
9284 * sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
9285 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
9286 Likewise.
9287 * sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
9288 Likewise.
9289 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
9290 Likewise.
9291 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
9292 Likewise.
80b54217
UD
9293 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
9294 Likewise.
9295 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
9296 Likewise.
31195be2 9297
dcfc8224
UD
9298 * Makefile (tests): Add tst-sem8 and tst-sem9.
9299 * tst-sem8.c: New file.
9300 * tst-sem9.c: New file.
9301 * sem_open.c: Fix creation of in_use record if the file exists but
9302 no internal record.
9303
49b65043
UD
9304 * posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
9305 definitions.
9306
9307 * sysdeps/pthread/timer_create.c (timer_create): In case
9308 evp==NULL, assign timer ID to sival_ptr.
9309
9310 * descr.h (struct pthread_unwind_buf): Change type of prev element to
9311 struct pthread_unwind_buf *.
9312 (struct pthread): Likewise for cleanup_jmp_buf element.
9313
9314 * cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
9315 * cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
9316 * unwind.c (__pthread_unwind_next): Likewise.
9317
50794a45
UD
93182003-05-30 Ulrich Drepper <drepper@redhat.com>
9319
5d4f57bd
UD
9320 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9321 (lll_futex_timed_wait): Use int for futex value parameter.
9322 (lll_futex_wake): Likewise.
9323 (lll_futex_requeue): Likewise.
9324
9325 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
9326 Replace one memory operation with one register operation.
9327
9328 * tst-join4.c (do_test): Fix error message.
9329
7ab7ea33
UD
9330 * tst-rwlock6.c (do_test): Use correct format specifier.
9331
9332 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
9333 (__lll_mutex_lock_wait): Replace one memory operation with one
9334 register operation.
9335 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
9336 (__lll_mutex_lock_wait): Likewise.
9337
50794a45
UD
9338 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9339 (__lll_mutex_cond_lock): Add one to value parameter of
9340 __lll_lock_wait to reflect reality in the futex syscall.
9341 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
9342 (lll_mutex_cond_lock): Likewise.
9343
5a70784e
JJ
93442003-05-30 Jakub Jelinek <jakub@redhat.com>
9345
9346 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
9347 New function.
9348 (lll_mutex_cond_lock): Define.
9349
e7c5ac68
UD
93502003-05-29 Ulrich Drepper <drepper@redhat.com>
9351
586d1748
UD
9352 * Makefile (tests): Add tst-signal6.
9353 * tst-signal6.c: New file.
9354
b8ba4a27
UD
9355 * sysdeps/unix/sysv/linux/s390/lowlevellock.h
9356 (__lll_mutex_unlock_force): New function
9357 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
9358
65d46efe
UD
9359 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
9360 (__lll_mutex_unlock_force): New function.
9361 (lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
9362
9363 * tst-rwlock7.c (do_test): Use correct format specifier.
9364
e7c5ac68
UD
9365 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
9366 Find break parameter in correct asm argument.
9367
284bdc42
UD
93682003-05-27 Jakub Jelinek <jakub@redhat.com>
9369
9370 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
9371 Remove out4.
9372 (lll_futex_requeue): Fix __o3 constraint, return negative errno if
9373 error occured.
9374 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
9375 Add __mutex.
9376 * sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
9377 lll_futex_requeue, lll_mutex_unlock_force): Define.
9378
e7c5ac68
UD
93792003-05-30 Jakub Jelinek <jakub@redhat.com>
9380
9381 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9382 (pthread_cond_t): Add __mutex.
9383 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
9384 lll_futex_requeue, lll_mutex_unlock_force): Define.
9385
ea2630c6
UD
93862003-05-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9387
9388 * sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
9389 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
42d86dd6 9390 Add __mutex field.
ea2630c6
UD
9391 * sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
9392 Define.
9393 (lll_futex_wait, lll_futex_wake): Define.
9394 * sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
9395 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
9396 FUTEX_REQUEUE instead of FUTEX_WAIT.
9397 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
9398 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
9399 mutex which was used in condvar structure. Call
9400 __pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
9401 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
9402
9403 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
9404 include tcb-offsets.h. Read wakeup value in locked region.
9405 Use the value of gbr register as THREAD_ID.
9406 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9407 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
9408 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
9409
9410 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
9411 macros.
9412
5a77f150
UD
94132003-05-28 Ulrich Drepper <drepper@redhat.com>
9414
9415 * sysdeps/pthread/pthread_cond_broadcast.c
9416 (__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
9417
7661d9f7
UD
94182003-05-26 Ulrich Drepper <drepper@redhat.com>
9419
9420 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
9421 typo in register name.
9422 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
9423 correctly. Actually use requeue. Little optimization.
9424 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
9425 mutex address early. Handle cancellation state as 32-bit value.
9426 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9427 Remove unnecessary label.
9428
69431c9a
UD
94292003-05-25 Ulrich Drepper <drepper@redhat.com>
9430
9431 * sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
9432 instead of FUTEX_WAIT.
9433 * sysdeps/pthread/pthread_cond_signal.c: Likewise.
9434 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
9435 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
9436 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
9437 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
9438 * sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
9439 used in condvar structure. Call __pthread_mutex_cond_lock instead
9440 of __pthread_mutex_lock_internal.
9441 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9442 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9443 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
9444 (__condvar_cleanup): Always call __pthread_mutex_cond_lock.
9445 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
9446 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9447 * sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
9448 Add pthread_mutex_cond_lock.
9449 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
9450 * sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
9451 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
9452 lll_mutex_cond_lock.
9453 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
9454 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
248a3490 9455 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
69431c9a 9456 Add __mutex field.
248a3490 9457 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
69431c9a
UD
9458 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9459
9460 * sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
9461 * sysdeps/x86_64/tcb-offsets.sym: Likewise.
9462
9463 * pthreadP.h: Declare __pthread_mutex_cond_lock.
9464 * pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
9465 Use it instead of lll_mutex_lock. If __pthread_mutex_lock is a
9466 macro don't define aliases.
9467
9468 * cancellation.c: Remove __pthread_enable_asynccancel_2.
9469 * pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
9470 * sysdeps/pthread/pthread_cond_timedwait.c: Use
9471 __pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
9472 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9473 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9474 * sysdeps/pthread/pthread_cond_wait.c: Likewise.
9475 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
9476 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
9477
fddfebbd
UD
94782003-05-17 Ulrich Drepper <drepper@redhat.com>
9479
9480 * sem_open.c: Fix one endless loop. Implement correct semantics
9481 wrt opening the same semaphore more then once.
9482 * sem_close.c: Adjust for sem_open change.
9483 * semaphoreP.h: Include <semaphore.h>. Define struct inuse_sem.
9484 Declare __sem_mappings, __sem_mappings_lock, __sem_search.
9485 * Makefile (tests): Add tst-sem7.
9486 * tst-sem7.c: New file.
9487
1eefffb0
RM
94882003-05-16 Roland McGrath <roland@redhat.com>
9489
9490 * sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
9491 uninitialized variable braino.
9492
6e66dc78
UD
94932003-05-16 Ulrich Drepper <drepper@redhat.com>
9494
23ae6451
UD
9495 * sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
9496 test for syscall availability.
9497
9498 * sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
9499 __no_posix_timers to -1 if the syscalls don't exist.
9500
7ac5b8e2
UD
9501 * pthread_join.c (pthread_join): Set tid field of the joined
9502 thread to -1. This isn't necessary but helps to recognize some
9503 error conditions with almost no cost.
9504
9505 * allocatestack.c (FREE_P): Also negative values indicate an
9506 unused stack.
9507
6e66dc78
UD
9508 * unwind.c: Include <unistd.h>.
9509
855dba3c
UD
95102003-05-14 Ulrich Drepper <drepper@redhat.com>
9511
9512 * Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
9513
81f3ac4c
UD
95142003-05-14 Jakub Jelinek <jakub@redhat.com>
9515
9516 * Makefile (crti-objs, crtn-objs): New variables.
9517 (omit-deps, extra-objs): Add crtn.
9518 ($(objpfx)libpthread.so): Depend on both crti and crtn
9519 and links to them in multidir.
9520 ($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
9521
7158eae4
UD
95222003-05-12 Steven Munroe <sjmunroe@us.ibm.com>
9523
9524 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
9525 (lll_mutex_unlock): Use atomic_exchange_rel.
9526
edf205d5
UD
95272003-05-11 Ulrich Drepper <drepper@redhat.com>
9528
9529 * cond-perf.c (cons): Add missing locking around setting of alldone.
9530
a3f979a7
UD
95312003-05-10 Ulrich Drepper <drepper@redhat.com>
9532
9533 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
9534 related macros.
9535 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
9536
880867a4
UD
95372003-05-09 Ulrich Drepper <drepper@redhat.com>
9538
949ec764
UD
9539 * tst-sem6.c: New file.
9540 * Makefile (tests): Add tst-sem6.
9541
9542 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
9543 Use atomic_exchange_rel instead of atomic_exchange.
9544 * sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
9545 Likewise.
9546
9547 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
9548 code for lll_futex_wait and lll_futex_wake in static apps. Use
9549 vsyscall is possible.
9550
9551 * sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
9552 * sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
9553 * sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
9554 pthread_setaffinity_np.
9555 * Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
9556 and pthread_setaffinity_np.
9557 * Makefile (libpthread-routines): Add pthread_getaffinity and
9558 pthread_setaffinity.
9559
880867a4
UD
9560 * allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
9561 use it in case mmap to allocate the stack fails.
9562 * sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
9563 ARCH_MAP_FLAGS here.
9564 * sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
9565 ARCH_RETRY_MMAP.
9566
92d83c72
UD
95672003-05-08 Ulrich Drepper <drepper@redhat.com>
9568
9569 * sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
9570 handler implementation. It is now lockless in fork().
9571 * sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
9572 * sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
9573 * sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>. Don't
9574 declare the __fork_*_lists.
9575 (struct fork_handler): Include pointers to all three functions.
9576 Add next, refcntr and need_signal elements.
9577 (__fork_handlers): New declaration.
9578 (__register_atfork_malloc): Remove declaration.
9579 (HAVE_register_atfork_malloc): Remove definition.
9580 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
9581 __pthread_child_handler variable.
9582 (__libc_pthread_init): Use __register_atfork instead of explicitly
9583 adding to the list.
9584 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
9585 and lll_futex_wake.
9586 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
9587
9588 * unwind.c (unwind_cleanup): Print error message and then abort. This
9589 function must never be reached.
9590
9591 * cond-perf.c: New file.
9592
be4d8038
UD
95932003-05-05 Ulrich Drepper <drepper@redhat.com>
9594
9595 * sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
9596
c6696b79
RM
95972003-05-04 Roland McGrath <roland@redhat.com>
9598
9599 * Makefile ($(objpfx)../libc.so): New target.
9600
7da168bf
UD
96012003-05-02 Ulrich Drepper <drepper@redhat.com>
9602
9603 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9604 (pthread_condattr_t): Size is only an int, don't use long for
9605 alignment.
9606 (pthread_mutexattr_t): Likewise.
7da168bf
UD
9607 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
9608 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
9609 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
9610
9a7178d6
UD
96112003-05-01 Ulrich Drepper <drepper@redhat.com>
9612
9613 * sysdeps/i386/tls.h: Define THREAD_ID.
9614 * sysdeps/ia64/tls.h: Likewise.
9615 * sysdeps/powerpc/tls.h: Likewise.
9616 * sysdeps/s390/tls.h: Likewise.
9617 * sysdeps/sh/tls.h: Likewise.
9618 * sysdeps/x86_64/tls.h: Likewise.
9619 * pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
9620 record ownership.
9621 * pthread_mutex_timedlock.c: Likewise.
9622 * pthread_mutex_trylock.c: Likewise.
9623 * pthread_mutex_unlock.c: Likewise.
9624 * pthread_rwlock_trywrlock.c: Likewise.
9625 * sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
9626 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
9627 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
9628 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
9629
9630 * sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
9631 flag.
9632
a234e27d
UD
96332003-04-29 Jakub Jelinek <jakub@redhat.com>
9634
9635 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
9636 (__SIZEOF_PTHREAD_COND_T): Define to 48.
9637 (pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
9638 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
9639 Make __align long long instead of long.
9640 (pthread_rwlock_t): Formatting.
9641 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
9642 (pthread_rwlock_t): Formatting.
9643 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
9644 (pthread_cond_t): Make __align long long instead of long.
9645 (pthread_rwlock_t): Move __flags field to the same position as in
9646 linuxthreads.
9647
f025c136
UD
96482003-04-30 Ulrich Drepper <drepper@redhat.com>
9649
9650 * tst-rwlock6.c (do_test): Use correct printf format specifiers.
9651 * tst-rwlock7.c (do_test): Likewise.
9652
7531ab9e
RM
96532003-04-26 Roland McGrath <roland@redhat.com>
9654
9655 * Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
9656
299601a1
UD
96572003-04-22 Jakub Jelinek <jakub@redhat.com>
9658
299601a1
UD
9659 * allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
9660 sizeof (struct pthread).
9661 (allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
468777e1 9662 1 struct pthread.
299601a1
UD
9663 * sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
9664 to 0.
9665 (TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
9666 struct pthread.
9667 (TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
9668 to 32-bit bytes.
9669 (INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
9670 tcbp.
9671 (TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
9672 unneccessarily.
9673 (NO_TLS_OFFSET): Define.
299601a1
UD
9674 * sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
9675 add TLS_TCB_SIZE unnecessarily.
299601a1 9676
950094f8
RM
96772003-04-22 Roland McGrath <roland@redhat.com>
9678
9679 * Makeconfig (shared-thread-library): Reverse link order to work
9680 around linker bug.
9681
dc2f6455
UD
96822003-04-22 Ulrich Drepper <drepper@redhat.com>
9683
9684 * semaphore.h: Fix typo in comment.
9685
e7608d77
UD
96862003-04-21 Ulrich Drepper <drepper@redhat.com>
9687
6a87ee19
UD
9688 * sysdeps/pthread/sigfillset.c: New file.
9689
e7608d77
UD
9690 * init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
9691 * pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
9692 * sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
9693 * sysdeps/pthread/sigaction.c: Likewise.
9694 * sysdeps/pthread/sigprocmask.c: New file.
9695 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
9696 __SIGRTMIN+1.
9697 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
9698 Block SIGTIMER. Also handle SI_TKILL events and terminate thread
9699 in this case.
9700
0b3df49e
UD
97012003-04-19 Ulrich Drepper <drepper@redhat.com>
9702
58a7a325
UD
9703 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
9704 (DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
9705
0b3df49e
UD
9706 * sysdeps/unix/sysv/linux/unregister-atfork.c
9707 (__unregister_atfork): Don't free memory not allocated dynamically.
9708
9709 * semaphore.h: Remove __THROW marker from cancellation points.
9710 * nptl/sysdeps/pthread/pthread.h: Likewise.
9711
7d74651e
UD
97122003-04-18 Ulrich Drepper <drepper@redhat.com>
9713
76a67697
UD
9714 * sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
9715 pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
7d74651e
UD
9716 __THROW.
9717
dd9d6538
JJ
97182003-04-16 Jakub Jelinek <jakub@redhat.com>
9719
9720 * tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
9721
4ab6f47c
RM
97222003-04-15 Roland McGrath <roland@redhat.com>
9723
9724 * forward.c (__pthread_unwind): Tweak to avoid warning.
9725
162434a6
UD
97262003-04-15 Ulrich Drepper <drepper@redhat.com>
9727
9728 * pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
9729
35909161
UD
97302003-04-14 Ulrich Drepper <drepper@redhat.com>
9731
18ddd3aa 9732 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
35909161
UD
9733 overflow CFA advance instructions.
9734 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9735
18a8e730
UD
97362003-04-14 Jakub Jelinek <jakub@redhat.com>
9737
bd4f43b4
UD
9738 * sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
9739 * sysdeps/i386/pthread_spin_lock.c: Likewise.
9740 * sysdeps/x86_64/tls.h: Likewise. Define LOCK_PREFIX if not already
9741 defined.
9742
18a8e730
UD
9743 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
9744 DW_CFA_advance_loc2 for .Laddl-.Lsubl.
9745 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
9746 DW_CFA_advance_loc for .Laddl-.Lsubl.
9747
08c765fa
UD
97482003-04-13 Ulrich Drepper <drepper@redhat.com>
9749
18a8e730
UD
9750 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
9751 position-independent unwind data for static libraries.
9752 Add missing unwind info. Add comments.
9753
ad2be852
UD
9754 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
9755 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
9756 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
08c765fa
UD
9757 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
9758
177d1ad3
UD
97592003-04-12 Ulrich Drepper <drepper@redhat.com>
9760
08c765fa
UD
9761 * Makefile: Make sure all cancellation points are compiled with
9762 exception and asynchronous unwind tables.
9763
177d1ad3
UD
9764 * sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
9765 which mishandles loading of global object addresses in PIC.
9766 (THREAD_SETMEM_NC): Likewise.
9767
09d65ff3
UD
97682003-04-11 Ulrich Drepper <drepper@redhat.com>
9769
9770 * pthread.h: Define new data structure for cleanup buffer. Declare
9771 new cleanup handler interfaces.
9772 * descr.h: Include <unwind.h> if necessary. Define pthread_unwind_buf.
9773 (struct pthread): Add cleanup_jmp_buf pointer. Define
9774 HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
9775 * pthreadP.h: Declare __pthread_unwind. Define __do_cancel to use
9776 it. Declare old cleanup handler installation functions.
9777 * cleanup.c: Rewrite. Install handler for unwind-based cleanup
9778 handling.
9779 * cleanup_defer.c: Likewise.
9780 * cleanup_compat.c: New file. Old cleanup code.
9781 * cleanup_def_compat.c: New file. Old cleanup code.
9782 * pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
9783 if own thread descriptor.
9784 * unwind.c: New file.
9785 * forward.c: Add __pthread_unwind.
9786 * init.c (pthread_functions): Add __pthread_unwind.
9787 * sysdeps/pthread/pthread-functions.s (struct pthread_functions):
9788 Add ptr___pthread_unwind.
9789 * Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
9790 and unwind function.
9791 * Makefile (libpthread-routines): Add cleanup_compat,
9792 cleanup_def_compat, and unwind. Define CFLAGS to enable unwind
9793 table generation if necessary.
9794 * version.c: Record whether unwind support is compiled in.
9795 * sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
9796 * sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
9797 handler interfaces.
9798 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
9799 complication to generate unwind information for syscall wrappers.
68107ec0 9800 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
09d65ff3
UD
9801 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
9802 __cleanup_fct_attribute.
9803
9804 * Makefile: Add rules to build and run tst-cleanup0.
9805 * tst-cleanup0.c: New file.
9806 * tst-cleanup0.expect: New file.
9807
9808 * pthread_create.c (deallocate_tsd): Don't take parameter. Adjust
9809 caller. Optimize to avoid often unecessary local variable.
9810
0dc44b51
RM
98112003-04-11 Roland McGrath <roland@redhat.com>
9812
9813 * Makefile ($(objpfx)multidir.mk): New target, generated makefile that
9814 sets variable `multidir'; include that.
9815 (generated): Add it.
9816 ($(objpfx)$(multidir)/crti.o): New target.
9817 [$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
9818
84a80719
UD
98192003-04-11 Ulrich Drepper <drepper@redhat.com>
9820
9821 * tst-attr2.c (do_test): Add cast to avoid warning.
9822 * tst-mutex4.c (do_test): Likewise.
9823
88ff4759
UD
98242003-04-10 Ulrich Drepper <drepper@redhat.com>
9825
9826 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
9827 in child.
9828
b2041097
UD
98292003-04-09 Ulrich Drepper <drepper@redhat.com>
9830
9831 * Makefile (tests): Add tst-detach1.
9832 * tst-detach1.c: New file.
9833
f9657e88
UD
98342003-04-08 Ulrich Drepper <drepper@redhat.com>
9835
9afe4964
UD
9836 * sysdeps/pthread/pthread.h: Remove duplicate
9837 pthread_cleanup_{push,pop} definitions.
9838
f9657e88
UD
9839 * tst-barrier2.c: Eliminate warnings.
9840 * tst-cancel4.c: Likewise.
9841 * tst-cond4.c: Likewise.
9842 * tst-cond6.c: Likewise.
9843 * tst-detach1.c: Likewise.
9844 * tst-rwlock4.c: Likewise.
9845 * tst-rwlock6.c: Likewise.
9846 * tst-rwlock7.c: Likewise.
9847 * tst-sem3.c: Likewise.
9848 * tst-spin2.c: Likewise.
9849 * tst-umask1.c: Likewise.
9850
69b35e86
UD
98512003-04-07 Ulrich Drepper <drepper@redhat.com>
9852
9853 * pthread_detach.c (pthread_detach): Fix test for invalid TID.
9854
c70ad7d7
UD
98552003-04-06 Ulrich Drepper <drepper@redhat.com>
9856
9857 * descr.h (struct pthread): Move cancelhandling member to the front.
9858
54e0138f
UD
98592003-04-05 Ulrich Drepper <drepper@redhat.com>
9860
9861 * sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
9862 malloc_parent, and malloc_child statically.
9863 (__register_atfork_malloc): New function.
9864 (free_mem): Don't free any of the malloc_* variables on the list.
9865 * sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
9866 Define HAVE_register_atfork_malloc.
9867
b22d701b
UD
98682003-04-04 Ulrich Drepper <drepper@redhat.com>
9869
9870 * sysdeps/pthread/createthread.c (create_thread): Add some more
9871 comments explaining when to set multiple_threads and when not.
9872
9873 * pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
9874 THREAD_ATOMIC_BIT_SET if not already defined.
9875 * sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
9876 THREAD_ATOMIC_BIT_SET:
9877 * sysdeps/x86_64/tls.h: Likewise.
9878 * cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
9879 THREAD_ATOMIC_CMPXCHG_VAL.
9880 (_pthread_cleanup_pop_restore): Likewise.
9881 * cancellation.c (__pthread_enable_asynccancel): Likewise.
9882 (__pthread_enable_asynccancel_2): Likewise.
9883 (__pthread_disable_asynccancel): Likewise.
9884 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
9885 (__libc_disable_asynccancel): Likewise.
9886 * init.c (sigcancel_handler): Likewise.
9887 * pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
9888 * pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
9889
86246935
UD
98902003-04-03 Ulrich Drepper <drepper@redhat.com>
9891
9892 * init.c (sigcancel_handler): Don't set EXITING_BIT here.
9893 * libc-cancellation.c (__libc_enable_asynccancel): Likewise.
9894 * pthreadP.h (__do_cancel): Set EXITING_BIT here.
9895 * Makefile (tests): Add tst-cancel11.
9896 * tst-cancel11.c: New file.
9897
6b4686a5
UD
98982003-04-01 Ulrich Drepper <drepper@redhat.com>
9899
9900 * pthread_create.c (deallocate_tsd): Clear/free memory after the last
9901 round, not the first. Use specific_used flag instead of local
9902 found_nonzero variable. Use THREAD_[SG]ETMEM where possible.
9903 (__free_tcb): Don't call deallocate_tsd here.
9904 (start_thread): Call deallocate_tsd here.
9905 * pthread_setspecific.c: Set specific_used flag really only when
9906 needed.
0d73a73b 9907 * Makefile (tests): Add tst-tsd3.c and tst-tsd4.
6b4686a5 9908 * tst-tsd3.c: New file.
0d73a73b 9909 * tst-tsd4.c: New file.
6b4686a5 9910
42b2395d
UD
99112003-03-31 Ulrich Drepper <drepper@redhat.com>
9912
211d90c5
UD
9913 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
9914 Use atomic_exchange_and_add instead of __lll_add.
9915 (__lll_mutex_timedlock): Likewise.
9916 Patch by Ian Wienand.
9917
99182003-03-24 Steven Munroe <sjmunroe@us.ibm.com>
9919
9920 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
9921 (SINGLE_THREAD_P): Fix typo.
9922 * tst-cancel-wrappers.sh: Handle '.'ed symbols.
9923
99242003-03-31 Ulrich Drepper <drepper@redhat.com>
9925
9926 * Makefile (tests): Add tst-align.
9927 * tst-align.c: New file.
9928 * sysdeps/i386/Makefile: Define CFLAGS-tst-align.
211d90c5 9929
42b2395d
UD
9930 * sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
9931 function correctly.
9932
211d90c5
UD
9933 * tst-tsd2.c: Add casts to avoid warnings.
9934
163b180f
UD
99352003-03-30 Ulrich Drepper <drepper@redhat.com>
9936
9937 * descr.h (struct pthread): Move most often used elements to the front.
9938
ea473bad
UD
99392003-03-29 Ulrich Drepper <drepper@redhat.com>
9940
9941 * Makefile (libpthread-routines): Add pthread_atfork.
9942 (libpthread-static-only-routines): Add pthread_atfork.
9943
dd731d53
UD
99442003-03-28 Kaz Kojima <kkojima@rr.iij4u.or.jp>
9945
9946 * sysdeps/sh/tls.h: Include nptl/descr.h after the definition
9947 of TLS_DTV_AT_TP.
9948 (INSTALL_DTV): Add parens.
9949 (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
9950 Use passed descr instead of THREAD_SELF.
9951 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
9952 (__lll_mutex_timedlock_wait): Correct expected value after
9953 spurious wakeup.
9954 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
9955 Release lock before waking up the waiters.
9956 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
9957 criteria. Reorderstruct passed to cleanup handler. Fix
9958 handling of cancellation and failung pthread_mutex_unlock call.
9959 Use __pthread_enable_asynccancel_2 instead of
9960 __pthread_enable_asynccancel.
9961 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
9962 Return result of lock re-get if it fails.
9963 * sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
9964 for __pthread_cleanup_push.
9965 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
9966 completely broken rwlock implementation.
9967 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9968 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
9969 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
9970 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
9971 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
9972 * sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value. Use
9973 versioned_symbol macro.
9974 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use versioned_symbol macro.
9975 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
9976
c75d02f0
UD
99772003-03-27 Ulrich Drepper <drepper@redhat.com>
9978
5f5004df
UD
9979 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
9980 __timer_helper_thread. Declare __start_helper_thread, __helper_once,
9981 and __helper_tid.
9982 (struct timer): Remove th and bar field.
9983 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
9984 debugging code. Create only one helper thread.
9985 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
9986 helper thread.
9987 * sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
9988 Renamed. Define statically. Use thread info from siginfo.
9989 (__helper_once): New variable.
9990 (__helper_tid): New variable.
9991 (__reset_helper_control): New function.
9992 (__start_helper_thread): New function.
9993
18d009ca
UD
9994 * pthread_create.c (start_thread): Don't use setjmp inside
9995 __builtin_expect to work around gcc bug.
9996
c75d02f0
UD
9997 * sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
9998 timer_delete syscall fails, but not with ENOSYS, set
9999 __no_posix_timers.
10000
10001 * sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
10002 (timer_settime): Fix typo.
28cf3058
UD
10003 * sysdeps/unix/sysv/linux/timer_getoverr.c
10004 [!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
c75d02f0 10005
049ac259
JJ
100062003-03-27 Jakub Jelinek <jakub@redhat.com>
10007
10008 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
10009 offset of cleanupbuf.__prev.
10010
f93d39dd
JJ
100112003-03-26 Jakub Jelinek <jakub@redhat.com>
10012
10013 * sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
10014 of included file.
10015
f064e4c5
UD
100162003-03-26 Ulrich Drepper <drepper@redhat.com>
10017
10018 * sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
10019 NULL provide default definition to syscall.
10020
83e886a3
RM
100212003-03-25 Roland McGrath <roland@redhat.com>
10022
10023 * sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
10024 (timer_id2ptr): Fix typo.
10025
09402f5b
UD
100262003-03-25 Ulrich Drepper <drepper@redhat.com>
10027
10028 * pthreadP.h: Define SIGCANCEL and SIGTIMER.
10029 * sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
10030 * sysdeps/ia64/pthreaddef.h: Likewise.
10031 * sysdeps/powerpc/pthreaddef.h: Likewise.
10032 * sysdeps/s390/pthreaddef.h: Likewise.
10033 * sysdeps/sh/pthreaddef.h: Likewise.
10034 * sysdeps/x86_64/pthreaddef.h: Likewise.
10035 * init.c (__pthread_initialize_minimal): Block SIGTIMER.
10036 * sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
10037 being changed.
10038 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
10039 SIGTIMER is not unblocked.
10040 * sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
10041 RT signal taken.
10042 * sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
10043 be send.
10044 * sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
10045 pass pointer through as ID.
10046 * sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
10047 * sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
10048 * sysdeps/unix/sysv/linux/timer_create.c: New file.
10049 * sysdeps/unix/sysv/linux/timer_delete.c: New file.
10050 * sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
10051 * sysdeps/unix/sysv/linux/timer_gettime.c: New file.
10052 * sysdeps/unix/sysv/linux/timer_routines.c: New file.
10053 * sysdeps/unix/sysv/linux/timer_settime.c: New file.
10054 * sysdeps/unix/sysv/linux/ia64/Versions: New file.
10055 * sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
10056 * sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
10057 * sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
10058 * sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
10059 * sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
10060 * sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
10061 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
10062 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
10063 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
10064 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
10065 * sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
10066 * sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
10067 * sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
10068 * sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
10069 * sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
10070 * sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
10071 * sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
10072 * sysdeps/unix/sysv/linux/x86_64/Versions: New file.
10073 * sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
10074 * sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
10075 * sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
10076 * sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
10077 * sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
10078 * sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
10079
10080 * pthreadP.h: Remove FRAME_LEFT definition.
10081 * cleanup.c (_pthread_cleanup_push): Don't check for reference to
10082 already left frame. Programs which have this problem are not POSIX
10083 compliant.
10084 * cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
10085
5e826ab5
UD
100862003-03-24 Ulrich Drepper <drepper@redhat.com>
10087
10088 * sysdeps/pthread/tst-timer.c: Check return values of the
10089 functions we test.
10090
b910f788
RM
100912003-03-23 Roland McGrath <roland@redhat.com>
10092
3045a1fe
RM
10093 * tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
10094 * tst-tls3mod.c: Likewise.
10095 * tst-tls1.c: Likewise.
10096 * tst-tls2.c: Likewise.
10097
85047fe3
RM
10098 * tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
10099 undefined behavior.
10100
b910f788
RM
10101 * tst-join5.c (tf1, tf2): Add a cast.
10102
10103 * Makeconfig (includes): Append -I$(..)nptl to this variable.
10104
10105 * tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
10106 Don't test anything.
10107 * tst-cond4.c: Likewise.
10108 * tst-cond6.c: Likewise.
10109 * tst-flock2.c: Likewise.
10110 * tst-mutex4.c: Likewise.
10111 * tst-rwlock4.c: Likewise.
10112 * tst-signal1.c: Likewise.
10113 * tst-spin2.c: Likewise.
10114 * tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
10115
10116 * tst-mutex4.c: Use test-skeleton.c.
10117 * tst-spin2.c: Likewise.
10118 * tst-sysconf.c: Likewise.
10119 * tst-barrier2.c: Likewise.
10120 * tst-cond4.c: Likewise.
10121 * tst-cond6.c: Likewise.
10122 * tst-rwlock4.c: Likewise.
10123 * tst-unload.c: Likewise.
10124 * tst-flock2.c (do_test): Use return instead of exit.
10125
4baa087a
RM
101262003-03-22 Jakub Jelinek <jakub@redhat.com>
10127
10128 * sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
10129
5a3ab2fc
UD
101302003-03-21 Ulrich Drepper <drepper@redhat.com>
10131
9f07eae2
UD
10132 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h
10133 (__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
10134 instead of __lll_compare_and_swap.
10135 * sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
10136 Likewise.
10137 Removed definition if __lll_compare_and_swap.
10138
5a3ab2fc
UD
10139 * cancellation.c: Adjust for new form of compare&exchange macros.
10140 * cleanup_defer.c: Likewise.
10141 * init.c: Likewise.
10142 * libc-cancellation.c: Likewise.
10143 * old_pthread_cond_broadcast.c: Likewise.
10144 * old_pthread_cond_signal.c: Likewise.
10145 * old_pthread_cond_timedwait.c: Likewise.
10146 * old_pthread_cond_wait.c: Likewise.
10147 * pthread_cancel.c: Likewise.
10148 * pthread_create.c: Likewise.
10149 * pthread_detach.c: Likewise.
10150 * pthread_join.c: Likewise.
10151 * pthread_key_delete.c: Likewise.
10152 * pthread_setcancelstate.c: Likewise.
10153 * pthread_setcanceltype.c: Likewise.
10154 * pthread_timedjoin.c: Likewise.
10155 * pthread_tryjoin.c: Likewise.
10156 * sysdeps/pthread/createthread.c: Likewise.
10157
b1aea098
UD
101582003-03-20 Ulrich Drepper <drepper@redhat.com>
10159
10160 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
4baa087a 10161 Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
b1aea098
UD
10162 definitions. Replace uses with calls to atomic_* functions.
10163 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
10164 * sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
10165 __lll_test_and_set calls with atomic_exchange_and_add and
10166 atomic_exchange calls respectively.
10167 * sysdeps/unix/sysv/linux/sem_post.c: Likewise.
10168 * sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
10169 * sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
10170 * sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
10171 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
10172 * sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
10173 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
10174
10175 * allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
10176 returns the old value.
10177
100a7100
RM
101782003-03-20 Martin Schwidefsky <sky@mschwid3.boeblingen.de.ibm.com>
10179
10180 * sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
10181 int for variable OLDVAL and correct inline assembler contraint.
10182 * sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
10183 type int for variable OLD.
10184
10185 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
10186 only for s390-32.
10187 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
10188 (SINGLE_THREAD_P): Use global variable __local_multiple_threads
10189 instead of multiple_threads field in the TCB.
10190
95767b36
UD
101912003-03-19 Ulrich Drepper <drepper@redhat.com>
10192
4009bf40
UD
10193 * sysdeps/i386/i686/bits/atomic.h: Removed.
10194 * sysdeps/i386/i586/bits/atomic.h: Removed.
10195 * sysdeps/i386/i486/bits/atomic.h: Removed. Moved to glibc.
10196 * sysdeps/x86_64/bits/atomic.h: Removed. Moved to glibc.
10197 * sysdeps/s390/bits/atomic.h: Removed. Moved to glibc.
10198 * sysdeps/sh/bits/atomic.h: Removed. Moved to glibc.
10199 * sysdeps/ia64/bits/atomic.h: Removed. Moved to glibc.
10200 * sysdeps/powerpc/bits/atomic.h: Removed. Moved to glibc.
10201 * atomic.h: Removed. Moved to glibc.
10202
560a784f
UD
10203 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
10204 support for clock selection.
10205
95767b36
UD
10206 * sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
10207 signalling waiters.
10208
043ad426
RM
102092003-03-18 Roland McGrath <roland@redhat.com>
10210
94659495
RM
10211 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
10212 Add __lll_rel_instr first. Add memory clobber.
10213 (lll_mutex_unlock): Use __lll_test_and_set.
10214 From Paul Mackerras <paulus@samba.org>.
10215
10216 * sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
10217 unconditionally.
10218 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
10219 (SINGLE_THREAD_P): Add `header.' prefix.
10220 From Paul Mackerras <paulus@samba.org>.
10221
043ad426
RM
10222 * Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
10223 pthread_timedjoin_np to ...
10224 (libpthread: GLIBC_2.3.3): ... here.
10225 (libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
10226
10227 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
10228 Avoid shadowing VAL variable.
10229
10230 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
10231 New macro.
10232
86a9ee5e
UD
102332003-03-18 Ulrich Drepper <drepper@redhat.com>
10234
ac9e0aa1
UD
10235 * Makefile (tests): Add tst-cond11.
10236 * tst-cond11.c: New file.
10237
a14b373c
UD
10238 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
10239 struct passed to cleanup handler to eliminate one more
10240 instruction.
10241 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10242
24a49f38
UD
10243 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
10244 (pthrad_cond_t): Replace __unused field with __clock.
10245
10246 * sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
10247 waken all waiters in cleanup handler.
10248 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
10249 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
10250
86a9ee5e
UD
10251 * pthread_condattr_getclock.c: New file.
10252 * pthread_condattr_setclock.c: New file.
10253 * sysdeps/pthread/pthread.h: Declare these new functions.
10254 * Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
10255 * Makefile (libpthread-routines): Add the new functions.
10256 * sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
10257 Renamed field to value. Document use of the bits.
10258 * pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
10259 change.
10260 * pthread_condattr_setpshared.c: Likewise.
d5cb8389 10261 * pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
86a9ee5e
UD
10262 * sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
10263 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
10264 Add __clock field.
10265 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
10266 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
10267 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
10268 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
10269 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
10270 Implement clock selection.
10271 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
10272 * pthread-errnos.sym: Add ENOSYS.
10273 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
10274 _POSIX_CLOCK_SELECTION.
10275 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
10276
10277 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
10278 invalid .size directive.
10279
98054a05
RM
102802003-03-17 Roland McGrath <roland@redhat.com>
10281
10282 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
10283 Formatting tweaks.
10284
001bea71
UD
102852003-03-17 Ulrich Drepper <drepper@redhat.com>
10286
4773086e
UD
10287 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
10288 Use __lll_add instead of spelling it out. Use protected symbol names.
10289 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
10290 Use __lll_add.
10291 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
10292 Renamed from lll_compare_and_swap. Use new name where necessary.
10293 (__lll_add): Defined.
10294 (__lll_dec_if_positive): Defined.
10295 (__lll_test_and_set): Defined.
10296 * sysdeps/ia64/pthread_spin_init.c: Removed.
10297 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
10298 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
10299 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
10300 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
10301 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
10302 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
10303 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
001bea71
UD
10304 * sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
10305 * sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
10306 __sync_lock_release_si.
10307 Patch by Jakub Jelinek.
10308
10309 * sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
10310 Fix timeout handling.
10311 (__lll_timedwait_tid): Likewise.
10312 (lll_unlock_wake_cb): Wake up other waiters if necessary.
10313 Patch by Jakub Jelinek.
10314
10315 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
10316
de4471dd
RM
103172003-03-17 Roland McGrath <roland@redhat.com>
10318
10319 PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
10320 * sysdeps/pthread/pthread_spin_init.c: New file.
10321 * sysdeps/pthread/pthread_spin_unlock.c: New file.
10322 * sysdeps/powerpc/Makefile: New file.
10323 * sysdeps/powerpc/pthread_spin_lock.c: New file.
10324 * sysdeps/powerpc/pthread_spin_trylock.c: New file.
10325 * sysdeps/powerpc/pthreaddef.h: New file.
10326 * sysdeps/powerpc/tcb-offsets.sym: New file.
10327 * sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
10328 * sysdeps/powerpc/tls.h: New file.
10329 * sysdeps/powerpc/bits/atomic.h: New file.
10330 * sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
10331 * sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
10332 * sysdeps/unix/sysv/linux/lowlevellock.c: New file.
98054a05 10333
de4471dd
RM
10334 * sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
10335 * sysdeps/unix/sysv/linux/sem_post.c: New file.
10336 * sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
10337 * sysdeps/unix/sysv/linux/sem_trywait.c: New file.
10338 * sysdeps/unix/sysv/linux/sem_wait.c: New file.
10339 * sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
10340 * sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
10341 * sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
10342 * sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
10343 * sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
10344 * sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
10345 * sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
10346 * sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
10347 * sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
10348 * sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
10349
10350 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
10351 not gettimeofday.
10352 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
10353 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
10354 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
10355 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
10356 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10357
5778033f
UD
103582003-03-17 Ulrich Drepper <drepper@redhat.com>
10359
10360 * sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
10361 * sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
10362 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10363 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
10364 Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
10365
796038f8
RM
103662003-03-16 Roland McGrath <roland@redhat.com>
10367
10368 * tst-fork4.c: Include <string.h>.
10369 * tst-signal2.c: Likewise.
10370 * tst-mutex5.c (do_test): exit -> return.
10371 * tst-mutex2.c: Include <stdlib.h>.
10372
51d0678c
UD
103732003-03-16 Ulrich Drepper <drepper@redhat.com>
10374
5778033f
UD
10375 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
10376 (__lll_mutex_timedlock_wait): Correct expected value after
10377 spurious wakeup. Otherwise we would never wait again.
10378
b6e2f87a
UD
10379 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
10380 zone versus inline asm stupidity. Use correct instructions.
10381
51d0678c
UD
10382 * tst-rwlock6.c: Add some more status output.
10383
8112cc70
RM
103842003-03-15 Roland McGrath <roland@redhat.com>
10385
10386 * sysdeps/pthread/configure.in: New file.
10387 * sysdeps/pthread/configure: New file (generated).
10388
49773c19
UD
103892003-03-15 Ulrich Drepper <drepper@redhat.com>
10390
10391 * allocatestack.c (allocate_stack): Store the exact stack size of
10392 user allocated stacks.
10393
eec0ca9f
JJ
103942003-03-15 Jakub Jelinek <jakub@redhat.com>
10395
10396 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
10397 (SINGLE_THREAD): Use `header' prefix instead of `header.data'.
10398 * sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
10399 * sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
10400 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
10401 Use `header.' prefix.
10402 * sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
10403
a87731e2
UD
104042003-03-15 Ulrich Drepper <drepper@redhat.com>
10405
10406 * sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
10407 __builtin_frame_address, use stack pointer.
10408
10409 * sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
10410 instead of __builtin_frame_pointer.
10411
e22a221d
UD
104122003-03-14 Ulrich Drepper <drepper@redhat.com>
10413
92ed3daf
UD
10414 * tst-basic1.c (do_test): Add cast to avoid warning.
10415 * tst-basic2.c (do_test): Likewise.
10416
9b89567d
UD
10417 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
10418 amount of stack correction.
10419
e22a221d
UD
10420 * tst-fork4.c: Use test-skeleton.c.
10421
2e49caba
RM
104222003-03-14 Roland McGrath <roland@redhat.com>
10423
10424 * init.c: Fix typo "#eli" for "#else".
10425
415ef7d8
RM
104262003-03-14 Steven Munroe <sjmunroe@us.ibm.com>
10427
10428 * allocatestack.c (__stack_user): Use hidden_data_def.
10429 * pthread_create.c (__pthread_keys): Likewise.
10430
10431 * init.c [__powerpc__] (__NR_set_tid_address): Define it.
10432
52287505
RM
104332003-03-14 Roland McGrath <roland@redhat.com>
10434
415ef7d8
RM
10435 * tst-fork4.c: New file.
10436 * Makefile (tests): Add it.
10437
52287505
RM
10438 * descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
10439 we always define the padding space.
10440 [!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
10441 stopped supporting its own extensions fully.
10442 [TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
10443 struct also called `header', so `header.multiple_threads' is the field
10444 name to use on all machines.
10445 * allocatestack.c (allocate_stack): Use `header.' prefix.
10446 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10447 * pthread_create.c (__pthread_create_2_1): Likewise.
10448 * sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
10449 (THREAD_SELF): Likewise.
10450 * sysdeps/x86_64/tls.h: Likewise.
10451 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
10452 (SINGLE_THREAD_P): Likewise.
10453 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
10454 (SINGLE_THREAD_P): Likewise.
10455 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
10456 (SINGLE_THREAD_P): Likewise.
10457
10458 * sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
10459 value directly.
10460
c44bf9aa
UD
104612003-03-14 Ulrich Drepper <drepper@redhat.com>
10462
e22a221d
UD
10463 * pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
10464 * sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
10465
0eb18281
UD
10466 * pthread_create.c (start_thread): setjmp is expected to return 0.
10467
c44bf9aa
UD
10468 * sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
10469 (THREAD_GETMEM_NC): Likewise.
10470
564cd8b6
UD
104712003-03-13 Ulrich Drepper <drepper@redhat.com>
10472
10473 * allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
10474 and the size of the stack which must be allocated is a multiple,
10475 allocate one more page.
10476 * sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
10477 MULTI_PAGE_ALIASING.
10478
6461e577
RM
104792003-03-13 Roland McGrath <roland@redhat.com>
10480
10481 * pthread_create.c (start_thread): Set EXITING_BIT after the
10482 event-reporting (and destructors), not before.
10483
b5ec5617
UD
104842003-03-13 Jakub Jelinek <jakub@redhat.com>
10485
6461e577
RM
10486 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
10487 lll_futex_wake): Declare register variables as long int instead of
10488 unsigned long int. Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
10489 Make syscall arguments clobbered by the syscall.
10490 (lll_futex_wait): Define using lll_futex_timed_wait.
10491
10492 * sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
10493 to void *.
10494
10495 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
10496 PPID if [! NDEBUG].
10497
10498 * allocatestack.c (nptl_ncreated): Only declare if
10499 COLORING_INCREMENT != 0.
10500
10501 * pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
10502 (__libc_enable_asynccancel_2): Remove prototype.
10503
b5ec5617
UD
10504 * sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
10505 ctid to match kernel.
10506
d0369fb8
UD
105072003-03-12 Ulrich Drepper <drepper@redhat.com>
10508
7588880f
UD
10509 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
10510 libc_multiple_threads.
10511 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
10512 __libc_multiple_threads to...
10513 * sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here. New file.
10514
10515 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
10516 versioning.
10517 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10518 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10519
10520 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S
10521 (__pthread_once_internal): Define.
10522
10523 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
10524 macros instead of .symver directly.
10525 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
10526 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
10527
d0369fb8
UD
10528 * sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
10529 * sysdeps/x86_64/tcb-offsets.sym: New file.
10530 * sysdeps/x86_64/Makefile: New file.
10531
10532 * sysdeps/i386/tcb-offsets.sym: Add SELF.
10533 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
10534 to access own pthread_t in TCB.
10535 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10536 Likewise.
10537 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10538 Likewise.
10539 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10540
0bb2ac85
RM
105412003-03-12 Roland McGrath <roland@redhat.com>
10542
10543 * pthread-errnos.sym: New file.
10544 * Makefile (gen-as-const-headers): New variable, list that file.
10545 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
10546 header <pthread-errnos.h> instead of defining errno values here.
10547 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
10548 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
10549 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
10550 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10551 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10552 Likewise.
10553 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10554 Likewise.
10555 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
10556 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10557 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
10558 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
10559 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10560 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10561 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
10562 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
10563 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
10564 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
10565 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
10566 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
10567 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
10568 * sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
10569 * sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
10570 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
10571 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
10572 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
10573 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
10574 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
10575 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
10576 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
10577 * sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
10578 * sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
10579 * sysdeps/sh/pthread_spin_trylock.S: Likewise.
10580 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
10581 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
10582
10583 * sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
10584 CLONE_CHILD_SETTID worked.
10585
35e148cb
UD
105862003-03-12 Ulrich Drepper <drepper@redhat.com>
10587
d0369fb8
UD
10588 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
10589 file.
10590 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
10591 file.
10592
10593 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
10594 (pthread_cond_t): Add padding.
10595
da49194d
UD
10596 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
10597 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
10598 * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
10599
35e148cb
UD
10600 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
10601 (__pthread_rwlock_timedwrlock): Add missing opcode suffix.
10602 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
10603 (__pthread_rwlock_timedrdlock): Likewise.
10604 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
10605 (__pthread_rwlock_wrlock): Likewise.
10606 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
10607 (__pthread_rwlock_rdlock): Likewise.
10608
10609 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
10610
10611 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
10612 result of lock re-get if it fails.
10613
3e976b96
UD
106142003-03-11 Ulrich Drepper <drepper@redhat.com>
10615
5a03acfe
UD
10616 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
10617 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
10618 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
10619 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
10620 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
10621 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
10622 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
10623 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
10624 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
10625 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
10626
10627 * sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
10628 THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
10629
10630 * allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
10631 Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
10632 * sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
10633 (create_thread): Likewise.
10634 Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
10635 * init.c (__pthread_initialize_minimal_internal): Initialize
10636 __libc_multiple_threads_ptr if necessary.
10637 * pthreadP.h: Adjust prototype for __libc_pthread_init. Declare
10638 __pthread_multiple_threads and __libc_multiple_threads_ptr.
10639 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
10640 __libc_multiple_threads.
10641 (__libc_pthread_init): Return pointer to __libc_pthread_init if
10642 necessary.
10643
10644 * sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
10645 (THREAD_SETMEM_NC): Likewise.
10646
10647 * sysdeps/x86_64/pthread_spin_trylock.c: Removed.
10648 * sysdeps/x86_64/pthread_spin_trylock.S: New file.
10649 * sysdeps/x86_64/pthread_spin_unlock.c: Removed.
10650 * sysdeps/x86_64/pthread_spin_unlock.S: New file.
10651
10652 * sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
10653 Eliminate one entire instruction.
10654
32a589b1
UD
10655 * cancellation.c (__pthread_enable_asynccancel_2): New function.
10656 * pthreadP.h: Declare __pthread_enable_asynccancel_2.
10657 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
10658 (__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
10659 instead of __pthread_enable_asynccancel.
10660 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
10661 (__pthread_cond_wait): Likewise.
10662 * sysdeps/pthread/pthread_cond_timedwait.c
10663 (__pthread_cond_timedwait): Likewise.
10664 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
10665
3e976b96
UD
10666 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
10667 (__condvar_cleanup): Wake up all waiters in case we got signaled
10668 after being woken up but before disabling asynchronous
10669 cancellation.
10670 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
10671 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
10672 (__condvar_cleanup): Likewise.
10673
10674 * init.c (__NR_set_tid_address): If already defined, don't redefine.
10675 Make it an error if architecture has no #if case. Add x86-64.
10676
10677 * sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
10678 pt-initfini.s generation.
10679
10680 * sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
10681 (TLS_INIT_TP): Fix typo.
10682
6c477888
UD
106832003-03-11 Jakub Jelinek <jakub@redhat.com>
10684
10685 * sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
10686 3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
10687
10688 * sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
10689 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
10690 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
10691 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
10692 * sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
10693 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10694 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
10695 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
10696
ea694823
UD
106972003-03-11 Ulrich Drepper <drepper@redhat.com>
10698
6c477888
UD
10699 * sysdeps/pthread/pthread_cond_timedwait.c
10700 (__pthread_cond_timedwait): Return the result of the final
10701 locking. If it succeeds, the regular function return value.
10702
10703 * sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
10704 Return result of the final locking.
10705 * version.c (__nptl_main): Work around problems with the strange
10706 INTERNAL_SYSCALL macro on ppc32.
10707 * init.c (__pthread_initialize_minimal_internal): Unblock
10708 SIGCANCEL in case the parent blocked it.
10709 Reported by Paul Mackerras <paulus@samba.org>.
10710
ea694823
UD
10711 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
10712 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
10713 * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
10714
b33e6163
RM
107152003-03-11 Jakub Jelinek <jakub@redhat.com>
10716
10717 * sysdeps/pthread/pthread_cond_timedwait.c
10718 (__pthread_cond_timedwait): Unlock and fail if
10719 __pthread_mutex_unlock_internal failed.
10720
10721 * sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
10722 (create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
10723 Use ARCH_CLONE.
10724 * allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
10725 [NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
10726 STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
10727 ALLOCATE_STACK): New macros.
10728 (TLS_TPADJ): New macro.
10729 (get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
10730 (allocate_stack): Handle TLS_DTV_AT_TP and
10731 NEED_SEPARATE_REGISTER_STACK. Use TLS_TPADJ.
10732 * pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
10733 Don't set PD->self.
10734 * init.c [__ia64__] (__NR_set_tid_address): Define.
10735
10736 * sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
10737 * sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
10738 * sysdeps/unix/sysv/linux/ia64/fork.c: New file.
10739 * sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
10740 * sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
10741 * sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
10742 * sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
10743 * sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
10744 * sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
10745 * sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
10746 * sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
10747 * sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
10748 * sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
10749 * sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
10750 * sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
10751 * sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
10752 * sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
10753 * sysdeps/ia64/bits/atomic.h: New file.
10754 * sysdeps/ia64/Makefile: New file.
10755 * sysdeps/ia64/pthread_spin_init.c: New file.
10756 * sysdeps/ia64/pthread_spin_lock.c: New file.
10757 * sysdeps/ia64/pthread_spin_trylock.c: New file.
10758 * sysdeps/ia64/pthread_spin_unlock.c: New file.
10759 * sysdeps/ia64/pthreaddef.h: New file.
10760 * sysdeps/ia64/tcb-offsets.sym: New file.
10761 * sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
10762 * sysdeps/ia64/tls.h: New file.
10763
10764 * sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
10765 to syscall instead of no arguments.
10766
2b30b2e5
UD
107672003-03-10 Ulrich Drepper <drepper@redhat.com>
10768
db5f2fc9
UD
10769 * sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
10770 * sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
10771 * sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
10772 * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
10773
10774 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
10775 unused code.
10776
6a4263e3
UD
10777 * sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
10778
3de7c2a9
UD
10779 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
10780 lowlevelbarrier.sym.
10781 * sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
10782 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
10783 Include lowlevelbarrier.h and don't define offsets locally.
6a4263e3 10784 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
3de7c2a9 10785
2a544d82
UD
10786 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
10787 (__lll_mutex_lock_wait): Reverse order of first two parameters.
10788 (__lll_mutex_timedlock_wait): Likewise.
10789 (lll_mutex_lock): Adjust asm for that.
10790 (lll_mutex_timedlock): Likewise. Mark cx, cc, r10 as clobbered.
10791 (lll_lock): Adjust asm for operand order change.
10792 * sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
10793 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
10794
ec06436c
UD
10795 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
10796 Reverse order of parameters.
10797 (__lll_timedwait_tid): Remove regparms attribute.
10798 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
10799 * sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
10800
3273832c
UD
10801 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
10802 (__lll_timedwait_tid): Remove one unnecessary instruction.
10803
51f32ab8
UD
10804 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
10805 __lll_mutex_timedlock_wait only for NOT_IN_libc.
10806 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
10807 lowlevelmutex.S.
10808
10809 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
10810 lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
10811 for NOT_IN_libc.
10812 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
10813 lowlevellock.S.
10814
fad48d9e
UD
10815 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
10816 LOCK is already defined. Don't define __lll_mutex_timedlock_wait
10817 for libc.so.
10818 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
10819 define LOCK here (if UP is not defined). The actual code is in
10820 lowlevelmutex.S.
10821
9356d063
UD
10822 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
10823 LOCK is already defined. Don't define lll_unlock_wake_cb and
10824 __lll_timedwait_tid for libc.so.
10825 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
10826 define LOCK here (if UP is not defined). The actual code is in
10827 lowlevellock.S.
10828
ebf0cbc5 10829 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
106f6f9d
UD
10830 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
10831 * sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
10832 instead of lowlevelsem.h.
10833 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
10834 * sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
10835 * sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
0be8ee21 10836
c915e5ad
UD
10837 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
10838 lowlevelrwlock.sym.
10839 * sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
10840 * sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
146fa1ee 10841 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
c915e5ad 10842
4c3c2e8a
UD
10843 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
10844 register loading.
10845 * sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
10846 last changed. D'oh.
10847
2b30b2e5
UD
10848 * sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
10849
10850 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
10851 of __libc_locking_needed.
10852 (lll_trylock): Initialize %eax to zero.
10853
2b30b2e5
UD
10854 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
10855 pthread_cond_t definition.
10856
e48f9638
RM
108572003-03-10 Roland McGrath <roland@redhat.com>
10858
10859 * sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
10860 * sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
10861 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
10862 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
10863 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
10864
10865 * allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
10866 Instead of setting PD->multiple_threads, set globals
10867 __pthread_multiple_threads and __libc_multiple_threads.
10868 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10869 * sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
10870 * sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
10871
10872 * descr.h (struct pthread): Conditionalize first member on
10873 [!TLS_DTV_AT_TP]. Replace the `header' member with an anonymous union
10874 containing an anonymous tcbhead_t. Move `list' member out.
10875 [TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
10876 * allocatestack.c: Remove use of `header.data.' prefix.
10877 * pthread_create.c: Likewise.
10878 * init.c (__pthread_initialize_minimal_internal): Likewise.
10879 * sysdeps/pthread/createthread.c (create_thread): Likewise.
10880 * sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
10881 (THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
10882 * sysdeps/x86_64/tls.h: Likewise.
10883 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
10884 (SINGLE_THREAD_P): Likewise.
10885 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
10886 (SINGLE_THREAD_P): Likewise.
10887 * sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
10888 * sysdeps/s390/tls.h (tcbhead_t): Likewise.
10889
c37cae9e
UD
108902003-03-09 Ulrich Drepper <drepper@redhat.com>
10891
d38c777e
RM
10892 * sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
10893
7b44a5e0 10894 * sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
2b30b2e5 10895 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
7b44a5e0 10896
c2e5e085
UD
10897 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
10898 leftovers from the ia32 code.
10899
10900 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
10901 memory load.
10902 (clear_once_control): Don't load %esi.
10903
10904 * sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
10905 handling.
10906
10907 * sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
10908
cd4b2a55
UD
10909 * sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
10910 * sysdeps/unix/sysv/linux/createthread.c: ...here.
10911
c37cae9e
UD
10912 * Makefile (tests): Add tst-cond10.
10913 * tst-cond10.c: New file.
10914
d130a341
UD
109152003-03-08 Ulrich Drepper <drepper@redhat.com>
10916
ccf1d573
UD
10917 * tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
10918 * tst-signal3.c (do_test): Likewise.
10919 * tst-sem5.c (do_test): Likewise.
10920 * tst-kill6.c (do_test): Likewise.
10921 * tst-tls3.c (do_test): Likewise. Include <errno.h>.
10922
10923 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
10924 of inc/dec.
10925 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
10926 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
10927 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
10928 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
10929 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
10930 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
10931 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
10932 Likewise.
10933 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
10934 Likewise.
10935 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
10936 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
10937 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
10938 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
10939 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
10940 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
10941 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
10942 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
10943
d130a341
UD
10944 * allocatestack.c (allocate_stack): If mprotect() fails free the
10945 TLS memory.
10946
bc6389ad
UD
109472003-03-07 Ulrich Drepper <drepper@redhat.com>
10948
41d4d223
UD
10949 * sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
10950
10951 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
10952 lll_wake_tid. This was used only to work around kernel limits in
10953 the early days.
10954 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
10955 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
10956 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
10957 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
10958
bc6389ad
UD
10959 * init.c (__static_tls_align_m1): Renamed from __static_tls_align.
10960 (__pthread_initialize_minimal_internal): Change initialization of
10961 __static_tls_align_m1 appropriately.
10962 * pthreadP.h (__static_tls_align_m1): Renamed from
10963 __static_tls_align.
10964 * allocatestack.c (allocate_stack): Use __static_tls_align_m1
10965 instead of __static_tls_align-1.
10966
cc775edf
UD
109672003-03-04 Ulrich Drepper <drepper@redhat.com>
10968
0de28d5c 10969 * sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
6245b6ae 10970
518b5308
UD
10971 * pthread_create.c: Define __pthread_keys using nocommon
10972 attribute, not by placing it explicitly in bss.
10973 Remove DEFINE_DEALLOC definition. Not needed anymore.
10974
10975 * allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
10976 Use it in mmap call to allocate stacks.
10977
10978 * sysdeps/pthread/createthread.c (create_thread): Fix comment.
10979
cc775edf
UD
10980 * pthread_create.c (start_thread): Use THREAD_SETMEM to store
10981 result of the thread function.
10982
4f6f0a8f
UD
109832003-03-03 Ulrich Drepper <drepper@redhat.com>
10984
f04a2721
UD
10985 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed. The generic
10986 version is just fine.
10987
4f6f0a8f
UD
10988 * sysdeps/unix/sysv/linux/libc_pthread_init.c
10989 (__pthread_child_handler): Renamed from pthread_child_handler,
10990 exported, and marked hidden. Change all users.
10991 * sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
10992 free __pthread_child_handler from child list.
10993
7ce5c164
UD
109942003-03-03 Martin Schwidefsky <schwidefsky@de.ibm.com>
10995
10996 * atomic.h (atomic_exchange_and_add): Return newval, not oldval.
10997
10998 * sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
10999 Fix handling of cancellation and failing pthread_mutex_unlock call.
11000 * sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
11001 (__pthread_cond_wait): Likewise.
11002
11003 * sysdeps/pthread/pthread_rwlock_timedrdlock.c
11004 (pthread_rwlock_timedrdlock): Fix clobber of result variable by
11005 lll_futex_timed_wait call.
11006 * sysdeps/pthread/pthread_rwlock_timedwrlock.c
11007 (pthread_rwlock_timedwrlock): Likewise.
11008
11009 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
11010 Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
11011 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
11012
11013 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
11014 check of lll_futex_wake return value.
11015
ea6a015b
RM
110162003-03-03 Roland McGrath <roland@redhat.com>
11017
11018 * forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
11019
11020 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
11021 Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
11022 * sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
11023
4adacf57
UD
110242003-03-02 Ulrich Drepper <drepper@redhat.com>
11025
1be3d664
UD
11026 * sysdeps/pthread/timer_create.c (timer_create): Return correct
11027 error for CPU clocks.
11028
885bafa1
UD
11029 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
11030 _POSIX_MONOTONIC_CLOCK.
11031 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
11032
4adacf57
UD
11033 * tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
11034 recent kernels.
11035
86bfff4d
UD
110362003-03-01 Ulrich Drepper <drepper@redhat.com>
11037
11038 * descr.h (struct pthread): Move cleanup field to the front.
11039
d1149385
RM
110402003-03-01 Roland McGrath <roland@redhat.com>
11041
11042 * sem_open.c (sem_open): Braino fix.
11043
bd8bb78b
UD
110442003-03-01 Ulrich Drepper <drepper@redhat.com>
11045
748bec08
UD
11046 * sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
11047 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
11048 __pthread_cleanup_pop functionality.
11049 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
11050
bd8bb78b
UD
11051 * descr.h (struct pthread): Move tid field to the front now that
11052 it is often used.
11053
11054 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
11055 (__lll_mutex_timedlock_wait): Remove.
11056 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
11057 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
11058 (__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
11059 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
11060 (lll_unlock_wake_cb): Don't save and restore %esi.
11061 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
11062 %esi.
11063 (__lll_timedwait_tid): Add alignment.
11064 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
11065 (__lll_unlock_wake): Add alignment. Don't save, load, and restore
11066 %esi.
11067 (__lll_timedwait_tid): Removed.
11068 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
11069 (__pthread_cond_broadcast): Don't save, load, and restore %esi.
11070 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
11071 (pthread_barrier_wait): Don't save, load, and restore %esi for
11072 last thread.
11073 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
11074 (__pthread_cond_signal): Don't save, load, and restore %esi.
11075 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
11076 (__pthread_rwlock_unlock): Don't save, load, and restore %esi.
11077 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
11078 Don't save, load, and restore %esi.
11079
d2637c70
UD
110802003-02-27 Ulrich Drepper <drepper@redhat.com>
11081
567fb22a
UD
11082 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
11083 Release lock before waking up the waiters.
11084
427f5fa1
UD
11085 * tst-exit1.c (do_test): Don't start more than one thread in parallel.
11086
a2d83cfb
UD
11087 * tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
11088 (reader_thread): Likewise.
11089
d2637c70
UD
11090 * sysdeps/pthread/pthread_rwlock_unlock.c
11091 (__pthread_rwlock_unlock): Release internal lock early. Don't try
11092 to wake up readers if there are none.
11093
11094 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
11095 Release internal lock before wake threads.
11096
b1531183
UD
110972003-02-26 Ulrich Drepper <drepper@redhat.com>
11098
dbf6131c
UD
11099 * Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
11100 * tst-rwlock8.c: Initialize lock with INIT. Allow INIT to be
11101 predefined.
11102 * tst-rwlock9.c: Likewise.
11103 * tst-rwlock10.c: New file.
11104 * tst-rwlock11.c: New file.
11105
695799fe
UD
11106 * Makefile (tests): Add tst-dlsym1.
11107 * tst-dlsym1.c: New file.
11108
b1531183
UD
11109 * init.c (__pthread_initialize_minimal_internal): Set
11110 GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
11111 * Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
11112
3724f268
UD
111132003-02-24 Ulrich Drepper <drepper@redhat.com>
11114
3857ca78
UD
11115 * sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
11116
80d80779
UD
11117 * tst-cond2.c: Fix sychronization with child.
11118
86371308
UD
11119 * tst-rwlock8.c (reader_thread): Remove unused variable.
11120
ffeb4481
UD
11121 * Makefile: Add rules to build and run tst-tls3.
11122 * tst-tls3.c: New file.
11123 * tst-tls3mod.c: New file.
11124
3724f268
UD
11125 * Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
11126 * tst-rwlock8.c: New file.
11127 * tst-rwlock9.c: New file.
11128 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
11129 complete broken rwlock implementation.
11130 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
11131 Likewise.
11132 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
11133 Likewise.
11134 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
11135 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
18a53579
UD
11136 * sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
11137 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
11138 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
11139 * sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
11140 * sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
3724f268 11141
8915cc40
RM
111422003-02-23 Roland McGrath <roland@redhat.com>
11143
11144 * Makefile (nptl-version): Change regexp so case sensitivity is ok.
11145
fd1a0d0c
UD
111462003-02-23 Ulrich Drepper <drepper@redhat.com>
11147
ecf28959
UD
11148 * Makefile (tests): Add tst-context1.
11149 * tst-context1.c: New file.
11150
5e47b76b
UD
11151 * Makefile (tests): Add tst-tls1 and tst-tls2.
11152 * tst-tls1.c: New file.
11153 * tst-tls2.c: New file.
11154
5a6bbb41
UD
11155 * libc-cancellation.c (__libc_enable_asynccancel): Correct test
11156 for failed cmpxchg.
11157
fd1a0d0c
UD
11158 * pthread_create.c (start_thread): Set EXITING_BIT early.
11159
11160 * sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
11161 (THREAD_GETMEM_NC): Likewise.
11162
757f9fcb
UD
111632003-02-22 Ulrich Drepper <drepper@redhat.com>
11164
b1b8e747
UD
11165 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
11166 off 3 more bytes by using offset-less instructions when possible.
11167
c780aa21 11168 * Makefile: Add dependency for $(objpfx)version.d.
757f9fcb
UD
11169
11170 * eintr.c (eintr_source): Add unnecessary return but the compiler
11171 insists.
11172
11173 * tst-kill3.c: Include <unistd.h>.
11174
5148559c
RM
111752003-02-21 Roland McGrath <roland@redhat.com>
11176
11177 * pthread_create.c (start_thread): Call __libc_thread_freeres.
11178
ab2d98e3
UD
111792003-02-21 Ulrich Drepper <drepper@redhat.com>
11180
71028edd
UD
11181 * Makefile (tests): Add tst-eintr1.
11182 (distribute): Add eintr.c.
11183 * tst-eintr1.c: New file.
11184 * eintr.c: New file.
11185
e814f748
UD
11186 * pthread_cancel.c (pthread_cancel): Use tkill directly.
11187
11188 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
11189 Disallow sending SIGCANCEL.
11190
ab2d98e3 11191 * Makefile (tests): Remove tst-basic7. Add tst-kill1, tst-kill2,
9c03686d 11192 tst-kill3, tst-kill4, tst-kill5, tst-kill6.
e814f748
UD
11193 * tst-kill1.c: New file.
11194 * tst-kill2.c: New file.
11195 * tst-kill3.c: New file.
11196 * tst-kill5.c: New file.
9c03686d 11197 * tst-kill6.c: New file.
e814f748
UD
11198 * tst-basic7.c: Renamed to...
11199 * tst-kill4.c: ...this.
ab2d98e3 11200
59fed0e2
RM
112012003-02-21 Roland McGrath <roland@redhat.com>
11202
11203 * Makefile (install-lib-ldscripts): New variable.
11204
49dc759f
UD
112052003-02-21 Ulrich Drepper <drepper@redhat.com>
11206
8c2e9a29
UD
11207 * pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
11208 * pthread_cancel.c: Use INVALID_TD_P.
11209 * pthread_detach.c: Likewise.
11210 * pthread_getschedparam.c: Likewise.
11211 * pthread_setschedparam.c: Likewise.
11212 * sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
11213 * sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
11214 * pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
11215 * pthread_timedjoin.c: Likewise.
11216
11217 * tst-basic7.c: Include <signal.h>.
11218
49dc759f
UD
11219 * pthread_join.c (pthread_join): Limited checking for invalid
11220 descriptors.
11221 * pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
11222
df5803bf
UD
112232003-02-20 Ulrich Drepper <drepper@redhat.com>
11224
c5acd3d7
UD
11225 * pthread_create.c (deallocate_tsd): Reset found_nonzero at the
11226 beginning of the loop. Clear the entire first block of TSD.
df5803bf
UD
11227 * Makefile (tests): Add tst-key4.
11228 * tst-key4.c: New file.
11229
729924a0
UD
112302003-02-18 Ulrich Drepper <drepper@redhat.com>
11231
2f7dc594
UD
11232 * Makefile (tests): Add tst-basic7.
11233 * tst-basic7.c: New file.
11234
ba25bb0f
UD
11235 * pthread_create.c (deallocate_tsd): Mark as internal_function.
11236 Add some more __builtin_expect.
11237
12fd3c5f 11238 * pthreadP.h: Define dummy version of DEBUGGING_P.
729924a0 11239
5430d926
UD
112402003-02-17 Ulrich Drepper <drepper@redhat.com>
11241
b0db7fbe
UD
11242 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
11243 _POSIX_THREAD_PRIORITY_SCHEDULING.
11244 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
11245 _XOPEN_REALTIME_THREADS.
11246 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
11247
11248 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
11249 kernel returns EINVAL for PID <= 0, work around it.
11250
ecfda9bd
UD
11251 * Makefile (tests): Add tst-signal5.
11252 * tst-signal5.c: New file.
11253
7d78ab99
UD
11254 * sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
11255 and LOGIN_NAME_MAX.
11256
371a2972
UD
11257 * tst-cancel1.c (tf): Block all signals.
11258
5430d926
UD
11259 * Makefile (tests): Add tst-basic6.
11260 * tst-basic6.c: New file.
11261
11262 * tst-basic1.c: Add test for process ID.
11263
11264 * Makefile (tests): Add tst-cancel10.
11265 * tst-cancel10.c: New file.
11266
11267 * Makefile (tests): Add tst-signal4.
11268 * tst-signal4.c: New file.
11269
11270 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
11271 __sigismember instead of sigismember. Add __builtin_expect.
11272
1564916a
UD
112732003-02-16 Ulrich Drepper <drepper@redhat.com>
11274
179ff175
UD
11275 * tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
11276 pthread_setcancelstate, and pthread_rwlock_setpshared.
11277
e4335f9a
UD
11278 * tst-cancel7.c (do_test): Make sure the pid file exists before
11279 canceling the thread.
11280
0a37669a
UD
11281 * tst-rwlock6.c: More pthread_rwlock_timedwrlock and
11282 pthread_rwlock_timedrdlock tests.
11283 * tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
11284 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
11285 Check for invalid tv_nsec field.
11286 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
11287 Likewise.
11288
11289 * pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
11290 recursive mutex of overflow.
11291
11292 * tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
11293
e4335f9a 11294 * libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
1564916a
UD
11295 going into an endless loop.
11296 * Makefile (tests): Add tst-cancel9.
11297 * tst-cancel9.c: New file.
11298
11299 * pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
11300
b270b548
UD
113012003-02-15 Ulrich Drepper <drepper@redhat.com>
11302
1c82b97f
UD
11303 * tst-mutex5.c (do_test): Add more timedlock tests.
11304
b2f05465 11305 * tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
c3bb9ee1
UD
11306 * tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
11307
e798b60f
UD
11308 * sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
11309 use INLINE_SYSCALL. Error number is returned, not -1.
11310
90491dc4
UD
11311 * pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
11312 and __deallocate_stack with internal_function.
11313 * pthread_create.c: Adjust definitions appropriately.
11314 * allocatestack.c: Likewise.
11315
11316 * pthread_join.c: Add one more __builtin_expect.
11317 * pthread_timedjoin.c: Likewise.
11318
11319 * pthread_getspecific.c (__pthread_getspecific): Clear data->data
11320 not data of sequence number does not match.
11321 Add one __builtin_expect.
11322
c6247c9d
UD
11323 * Makefile (tests): Add tst-clock1.
11324 * tst-clock1.c: New file.
11325
b270b548
UD
11326 * pthread_setconcurrency.c (pthread_setconcurrency): Fail for
11327 negative arguments.
11328 * Makefile (tests): Add tst-basic5.
11329 * tst-basic5.c: New file.
11330
700bf7af
UD
113312003-02-14 Ulrich Drepper <drepper@redhat.com>
11332
757de559
UD
11333 * Makefile (tests): Add tst-basic4.
11334 * tst-basic4.c: New file.
11335
47202270
UD
11336 * pthreadP.h: Add declaraction for __nptl_nthreads.
11337 * pthread_create.c: Define __nptl_nthreads
11338 (start_thread): Increment __nptl_nthreads at beginning. Decrement
b270b548 11339 after thread is done. If then zero, call exit(0).
47202270
UD
11340 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
11341 Add ptr_nthreads. Define HAVE_PTR_NTHREADS.
11342 * init.c (pthread_functions): Initialize ptr_nthreads.
11343 * allocatestack.c (nptl_nthreads): Remove definition and all uses.
11344 (__reclaim_stacks): Decrement __nptl_nthreads.
11345 * sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
11346 Define.
11347 * Makefile (tests): Add tst-basic3.
11348 * tst-basic3.c: New file.
11349
e320ef46
UD
11350 * descr.h: Define CANCELING_BIT and CANCELING_BITMASK. Introduce
11351 after CANCELTYPE_BIT, move the other bits up. Update CANCEL_RESTMASK.
11352 * init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
11353 * pthread_cancel.c (pthread_cancel): Likewise. Also set CANCELING_BIT
11354 if asynchronous canceling is enabled.
11355 * pthread_join.c (pthread_join): When recognizing circular joins,
11356 take into account the other thread might be already canceled.
11357 * Makefile (tests): Add tst-join5.
11358 * tst-join5.c: New file.
11359
700bf7af
UD
11360 * Makefile (tests): Add tst-join4.
11361 * tst-join4.c: New file.
11362
113632003-02-13 Ulrich Drepper <drepper@redhat.com>
11364
11365 * tst-cond4.c (main): Add test of pthread_attr_getpshared.
11366
dac0f772
UD
113672003-02-13 Martin Schwidefsky <schwidefsky@de.ibm.com>
11368
11369 * sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
11370 THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
11371 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
11372 warning.
11373 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
11374 to avoid warning.
11375 * sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
11376 error if lll_futex_wake failed.
11377
e8cda341
UD
113782003-02-13 Ulrich Drepper <drepper@redhat.com>
11379
a7720b5e
UD
11380 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
11381 handling of cancellation and failung pthread_mutex_unlock call.
11382 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
11383 * Makefile (tests): Add tst-cond8 and tst-cond9.
11384 * tst-cond8.c: New file.
11385 * tst-cond9.c: New file.
11386
a1ea4c06
UD
11387 * tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
11388
11389 * sysdeps/pthread/pthread.h: Add missing initializers. Protect
11390 non-standard initializers with __USE_GNU.
11391
e8cda341
UD
11392 * Makefile (tests): Add tst-cleanup3.
11393 * tst-cleanup3.c: New file.
11394
2067577c
UD
113952003-02-12 Ulrich Drepper <drepper@redhat.com>
11396
89e78a95
UD
11397 * Makefile (tests): Add tst-attr1 and tst-attr2.
11398 * tst-attr1.c: New file.
11399 * tst-attr2.c: New file.
11400
dfdd294a
UD
11401 * Makefile: Add rules to build and run tst-atfork2 test.
11402 * tst-atfork2.c: New file.
11403 * tst-atfork2mod.c: New file.
11404
11405 * sysdeps/unix/sysv/linux/unregister-atfork.c
11406 (__unregister_atfork): Free the memory allocated for the handlers
11407 after removing them from the lists.
11408
11409 * sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
11410 cleanup function.
11411
11412 * tst-atfork1.c (do_test): Wait for the child we forked.
11413 Report error in child.
11414
11415 * sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
11416
2067577c
UD
11417 * sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
11418
2a8a8a84
UD
114192003-02-10 Ulrich Drepper <drepper@redhat.com>
11420
d9dd121e
UD
11421 * Makefile (tests): Add tst-cancel8.
11422 * tst-cancel8.c: New file.
11423
2a8a8a84
UD
11424 * sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
11425 clearing of control variable.
defd1870 11426 * Makefile (tests): Add tst-once3 and tst-once4.
2a8a8a84 11427 * tst-once3.c: New file.
defd1870 11428 * tst-once4.c: New file.
2a8a8a84 11429
a54e8d33
UD
114302003-02-08 kaz Kojima <kkojima@rr.iij4u.or.jp>
11431
11432 * sysdeps/sh/Makefile: New file.
11433 * sysdeps/sh/bits/atomic.h: New file.
11434 * sysdeps/sh/pthread_spin_init.c: New file.
11435 * sysdeps/sh/pthread_spin_lock.c: New file.
11436 * sysdeps/sh/pthread_spin_trylock.S: New file.
11437 * sysdeps/sh/pthread_spin_unlock.S: New file.
11438 * sysdeps/sh/pthreaddef.h: New file.
11439 * sysdeps/sh/tcb-offsets.sym: New file.
11440 * sysdeps/sh/td_ta_map_lwp2thr.c: New file.
11441 * sysdeps/sh/tls.h: New file.
11442 * sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
11443 * sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
11444 * sysdeps/unix/sysv/linux/sh/createthread.c: New file.
11445 * sysdeps/unix/sysv/linux/sh/fork.c: New file.
11446 * sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
11447 * sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
11448 * sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
11449 * sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
11450 * sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
11451 * sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
11452 * sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
11453 * sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
11454 * sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
11455 * sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
11456 * sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
11457 * sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
11458 * sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
11459 * sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
11460 * sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
11461 * sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
11462 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
11463 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
11464 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
11465 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
11466 * sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
11467 * sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
11468 * sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
11469 * sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
11470 * sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
11471 * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
11472
696e556e
UD
114732003-02-08 Ulrich Drepper <drepper@redhat.com>
11474
11475 * tst-cond2.c: Rearrange code to not rely on behavior undefined
11476 according to POSIX.
11477
11478 * tst-basic2.c (do_test): Lock mutex before creating the thread.
11479
fef710d6
UD
114802003-02-07 Ulrich Drepper <drepper@redhat.com>
11481
c6180643
UD
11482 * sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
11483 (TLS_GET_FS): New #define.
11484 (TLS_SET_FS): New #define.
11485 Correct value of __NR_set_thread_area.
11486
fef710d6
UD
11487 * sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
11488
11090a99
UD
114892003-02-06 Ulrich Drepper <drepper@redhat.com>
11490
65c68990
UD
11491 * Makefile (tests): Add tst-popen1.
11492 * tst-popen1.c: New file.
11493
11090a99
UD
11494 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
11495 but inactive generalization.
11496 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
11497 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
11498 Minor optimization, remove one instruction.
11499 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
11500
a88c9263
UD
115012003-02-04 Martin Schwidefsky <schwidefsky@de.ibm.com>
11502
11503 * sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
11504
115052003-01-31 Martin Schwidefsky <schwidefsky@de.ibm.com>
11506
11507 * init.c (__NR_set_tid_address): Add #ifdef for s390.
11508 * sysdeps/pthread/pthread_barrier_wait.c: New file.
11509 * sysdeps/pthread/pthread_cond_broadcast.c: New file.
11510 * sysdeps/pthread/pthread_cond_signal.c: New file.
11511 * sysdeps/pthread/pthread_cond_timedwait.c: New file.
11512 * sysdeps/pthread/pthread_cond_wait.c: New file.
11513 * sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
11514 * sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
11515 * sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
11516 * sysdeps/pthread/pthread_rwlock_unlock.c: New file.
11517 * sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
11518 * sysdeps/s390/Makefile: New file.
11519 * sysdeps/s390/bits/atomic.h: New file.
11520 * sysdeps/s390/pthread_spin_init.c: New file.
11521 * sysdeps/s390/pthread_spin_lock.c: New file.
11522 * sysdeps/s390/pthread_spin_trylock.c: New file.
11523 * sysdeps/s390/pthread_spin_unlock.c: New file.
11524 * sysdeps/s390/pthreaddef.h: New file.
11525 * sysdeps/s390/tcb-offsets.sym: New file.
11526 * sysdeps/s390/td_ta_map_lwp2thr.c: New file.
11527 * sysdeps/s390/tls.h: New file.
11528 * sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
11529 * sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
11530 * sysdeps/unix/sysv/linux/s390/createthread.c: New file.
11531 * sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
11532 * sysdeps/unix/sysv/linux/s390/fork.c: New file.
11533 * sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
11534 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
11535 * sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
11536 * sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
11537 * sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
11538 * sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
11539 * sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
11540 * sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
11541 * sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
11542 * sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
11543 * sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
11544 * sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
11545 * sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
11546 * sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
11547 * sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
11548 * sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
11549 * sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
11550 * sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
11551
6f1cff95
UD
115522003-02-04 Ulrich Drepper <drepper@redhat.com>
11553
ec609a8e
UD
11554 * atomic.h: Add a couple more default implementations.
11555 (atomic_compare_and_exchange_acq): Use
d45e8740
UD
11556 __arch_compare_and_exchange_32_acq in return value definition. It
11557 always exists.
11558 (atomic_bit_set): Renamed from atomic_set_bit.
0289bef9 11559 Add missing atomic_ prefixes.
e3ec8904 11560
6f1cff95
UD
11561 * sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
11562 thread library is available, use correct value to mark initialized
11563 once variable.
11564
4f088329
UD
115652003-02-03 Ulrich Drepper <drepper@redhat.com>
11566
6f1cff95
UD
11567 * allocatestack.c (allocate_stack): Use __getpagesize instead of
11568 __sysconf to determine pagesize.
11569
3e4fc359 11570 * pthread_create.c: Include <atomic.h>.
4f088329
UD
11571 * allocatestack.c (allocate_stack): Implement coloring of the
11572 allocated stack memory. Rename pagesize to pagesize_m1. It's the
11573 size minus one. Adjust users.
3e4fc359 11574 * sysdeps/i386/i686/Makefile: New file.
4f088329 11575
2f42e8be
UD
115762003-02-02 Ulrich Drepper <drepper@redhat.com>
11577
4301f7e2
UD
11578 * allocatestack.c: Improve comment throughout the file.
11579
2f42e8be 11580 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
a37818b3 11581 (__lll_lock_wait): Add branch prediction.
2f42e8be
UD
11582 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
11583 (__lll_lock_wait): Likewise.
11584 (lll_unlock_wake_cb): Removed.
11585
4a7d6545
UD
115862003-01-31 Ulrich Drepper <drepper@redhat.com>
11587
11588 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
11589 _POSIX_THREAD_PRIORITY_SCHEDULING.
11590
886d5973
UD
115912003-01-30 Jakub Jelinek <jakub@redhat.com>
11592
11593 * sysdeps/pthread/pthread-functions.h (struct pthread_functions):
11594 Fix return type of ptr___pthread_getspecific.
11595
e474ca78
UD
115962003-01-29 Ulrich Drepper <drepper@redhat.com>
11597
11598 * Makefile (tests): Add tst-umask1.
11599 (tst-umask1-ARGS): Define.
11600 * tst-umask1.c: New file.
11601
e6ebd2e4
UD
116022003-01-28 Ulrich Drepper <drepper@redhat.com>
11603
6cf26f41
UD
11604 * Makefile (libpthread-routines): Remove lowlevelrwlock. Add
11605 pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
11606 pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
11607 pthread_rwlock_unlock.
11608 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
11609 * sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
11610 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
11611 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
11612 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
11613 New file.
11614 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
11615 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
11616 New file.
11617 * sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
11618 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
11619 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
11620 New file.
11621 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
11622 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
11623 New file.
11624 * sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
11625 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
11626 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
11627 New file.
11628 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
11629 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
11630 New file.
11631 * sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
11632
1d087a7e
UD
11633 * Makefile (libpthread-routines): Remove lowlevelcond and
11634 lowlevelsem. Add sem_wait, sem_trywait, sem_timedwait, sem_post,
11635 pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
11636 and pthread_cond_broadcast.
4a99d160
UD
11637 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
11638 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
11639 * sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
11640 * sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
11641 * sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
11642 * sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
11643 * sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
11644 * sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
11645 * sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
11646 * sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
11647 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
11648 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
11649 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
11650 * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
11651 * sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
11652 * sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
11653 * sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
11654 * sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
11655 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
11656 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
11657 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
11658 * sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
11659 * sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
11660 * sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
11661 * sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
11662 * sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
11663 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
11664 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
11665 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
11666 * sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
11667 * sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
1d087a7e 11668
e6ebd2e4
UD
11669 * sysdeps/unix/sysv/linux/i386/createthread.c: Define
11670 PREPARE_CREATE and TLS_VALUE with x86-specific bits. All the rest
11671 of the code is moved to ...
11672 * sysdeps/pthread/createthread.c: ...here. New file.
11673
a15698cb
UD
116742003-01-27 Ulrich Drepper <drepper@redhat.com>
11675
0566b130
UD
11676 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
11677 (__new_sem_post): Clear %eax before returning.
11678 Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
11679
e6fb8846
UD
11680 * Makefile (tests): Add tst-cleanup2.
11681 * tst-cleanup2.c: New file.
11682
a15698cb
UD
11683 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
11684 Interpret first parameter correctly.
11685
8824b0a1
UD
116862003-01-17 Ulrich Drepper <drepper@redhat.com>
11687
11688 * Makefile (headers): Add bits/semaphore.h.
11689
850dcfca
UD
116902003-01-16 Jakub Jelinek <jakub@redhat.com>
11691
11692 * sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
11693 if not SHARED.
11694
574b892e
UD
116952003-01-14 Ulrich Drepper <drepper@redhat.com>
11696
a8d87c92
UD
11697 * sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
11698 must be used and mapping failed.
11699 Reported by Luke Elliott <luke.elliott@activfinancial.com>.
11700
574b892e
UD
11701 * Makefile (CFLAGS-pthread_self.os): Define this, not
11702 CFLAGS-pthread_self.c.
11703
fb48047a
UD
117042003-01-13 Ulrich Drepper <drepper@redhat.com>
11705
47805511
UD
11706 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
11707 lll_unlock_wake_cb.
11708
fb48047a
UD
11709 * Makefile (libpthread-routines): Add version. Add rules to build
11710 version.os and banner.h.
11711 * version.c: New file.
11712
115bb61d
UD
117132003-01-13 Jakub Jelinek <jakub@redhat.com>
11714
11715 * pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
11716 the alias unconditional.
11717 * pthread_mutex_unlock.c (__pthread_mutex_unlock_internal): Likewise.
11718
117192003-01-13 Ulrich Drepper <drepper@redhat.com>
11720
11721 * Makefile (CFLAGS-pthread_self.c): New definition.
11722
6aca81bb
UD
117232003-01-06 Jakub Jelinek <jakub@redhat.com>
11724
11725 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
11726 INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
11727 * sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
11728 * init.c (__pthread_initialize_minimal_internal): Likewise.
11729
e9c7764e
UD
117302003-01-07 Jakub Jelinek <jakub@redhat.com>
11731
b5facfda
UD
11732 * pthreadP.h (__pthread_cond_timedwait): Add prototype.
11733
e9c7764e
UD
11734 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h
11735 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
11736 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
11737 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
11738 (RTLD_CORRECT_DYNAMIC_WEAK): Remove.
11739 (DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
11740
bef1e42f
UD
117412003-01-06 Jakub Jelinek <jakub@redhat.com>
11742
11743 * pthreadP.h (LIBC_CANCEL_HANDLED): Define.
11744 * pt-system.c (LIBC_CANCEL_HANDLED): Add.
11745 * tst-cancel-wrappers.sh: Remove all exceptions.
11746
bbd17455
UD
117472003-01-05 Ulrich Drepper <drepper@redhat.com>
11748
a73ab6df
UD
11749 * tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
11750 features. Reported by Marijn Ros <marijn@mad.scientist.com>.
11751
bbd17455
UD
11752 * sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
11753 Use __libc_pthread_functions array if SHARED.
11754
11755 * pthreadP.h: Move pthread_cond_2_0_t definition to...
11756 * sysdeps/unix/sysv/linux/internaltypes.h: ...here.
11757
11758 * sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
11759 (__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
11760 __libc_key_create, __libc_getspecific, __libc_setspecific): Use
11761 __libc_ptf_call instead of __libc_maybe_call.
11762 (PTF): New #define.
11763 (__libc_cleanup_region_start): Wrap function name with PTF call.
11764 (__libc_cleanup_region_end): Likewise.
11765 (__libc_cleanup_end): Likewise.
11766
11767 * pthread_getspecific.c: Add __pthread_getspecific_internal alias.
11768 * pthread_setspecific.c: Add __pthread_setspecific_internal alias.
11769 * pthread_key_create.c: Add __pthread_key_create_internal alias.
11770 * pthreadP.h: Add prototypes.
11771
11772 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
11773 __pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
11774 __pthread_rwlock_unlock aliases.
11775 * pthreadP.h: Add prototypes for new aliases.
11776
11777 * pthreadP.h (struct pthead_functions): Moved to...
11778 * sysdeps/pthread/pthread-functions.h: ...here. New file.
11779 * init.c (pthread_functions): Add initializers for new elements.
11780
11781 * cleanup_defer.c: Add __pthread_cleanup_push_defer and
11782 __pthread_cleanup_pop_restore aliases.
11783 * pthreadP.h: Add prototypes.
11784
11785 * cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
11786 and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
11787 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
11788 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
11789 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
11790 * pthreadP.h: Adjust prototypes and callers.
11791
d27a78be
UD
117922003-01-04 Ulrich Drepper <drepper@redhat.com>
11793
b74121ae
UD
11794 * Makefile (tests): Add tst-cancel7.
11795 (tst-cancel7-ARGS): New variable.
bbd17455 11796 * tst-cancel7.c: New file.
b74121ae 11797
29bc410c
UD
11798 * old_pthread_cond_broadcast.c: Optimize initialization a bit to work
11799 around gcc defficiencies.
11800 * old_pthread_cond_signal.c: Likewise.
11801 * old_pthread_cond_timedwait.c: Likewise.
11802 * old_pthread_cond_wait.c: Likewise.
11803
d27a78be
UD
11804 * pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
11805
733f25e6
UD
118062003-01-03 Ulrich Drepper <drepper@redhat.com>
11807
7edb2ae3
UD
11808 * Makefile (tests): Add tst-cond7.
11809 * tst-cond7.c: New file.
11810
b1151300
UD
11811 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
11812 (condvar_cleanup): Get condvar address from the right place.
11813
733f25e6
UD
11814 * atomic.h: Correct definitions of atomic_full_barrier,
11815 atomic_read_barrier, atomic_write_barrier.
11816
11817 * old_pthread_cond_broadcast.c: Make memory allocate and initialization
11818 race-free.
11819 * old_pthread_cond_signal.c: Likewise.
11820 * old_pthread_cond_timedwait.c: Likewise.
11821 * old_pthread_cond_wait.c: Likewise.
11822
686b7223
UD
118232003-01-03 Jakub Jelinek <jakub@redhat.com>
11824
11825 * Makefile ($(objpfx)libpthread.so): Depend on ld.so.
11826
0e07706e
UD
118272003-01-03 Ulrich Drepper <drepper@redhat.com>
11828
997256dd
UD
11829 * pthreadP.h (pthread_cond_2_0_t): New type.
11830 (struct pthread_functions): Use new type for 2.0 condvar callbacks.
11831 Use new type for the 2.0 condvar function prototypes.
11832 * forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
11833 * old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
11834 parameter.
11835 * old_pthread_cond_destroy.c: Likewise.
11836 * old_pthread_cond_broadcast.c: Likewise. Lock appropriately.
11837 * old_pthread_cond_signal.c: Likewise.
11838 * old_pthread_cond_timedwait.c: Likewise.
11839 * old_pthread_cond_wait.c: Likewise.
11840
842d2817
UD
11841 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
11842 (__pthread_cond_wait): Don't save cancellation mode and seq value
11843 in same location.
11844
0e07706e
UD
11845 * herrno.c (__h_errno_location): Don't define as weak.
11846
bf293afe
UD
118472003-01-02 Jakub Jelinek <jakub@redhat.com>
11848
11849 * Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
11850 pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
11851 and pthread_cond_wait.
11852 * old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
11853 Renamed to...
11854 (__pthread_cond_broadcast_2_0): ... this.
11855 * old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
11856 Renamed to...
11857 (__pthread_cond_destroy_2_0): ... this.
11858 * old_pthread_cond_init.c (__old_pthread_cond_init):
11859 Renamed to...
11860 (__pthread_cond_init_2_0): ... this.
11861 * old_pthread_cond_signal.c (__old_pthread_cond_signal):
11862 Renamed to...
11863 (__pthread_cond_signal_2_0): ... this.
11864 * old_pthread_cond_wait.c (__old_pthread_cond_wait):
11865 Renamed to...
11866 (__pthread_cond_wait_2_0): ... this.
11867 * pthread_cond_destroy.c: Include shlib-compat.h.
11868 (pthread_cond_destroy): Change strong_alias into versioned_symbol.
11869 * pthread_cond_init.c: Include shlib-compat.h.
11870 (pthread_cond_init): Change strong_alias into versioned_symbol.
11871 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
11872 fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
11873 fields.
11874 (__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
11875 __pthread_cond_init_2_0, __pthread_cond_signal_2_0,
11876 __pthread_cond_wait_2_0): New prototypes.
11877 (__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
11878 __old_pthread_cond_init, __old_pthread_cond_signal,
11879 __old_pthread_cond_wait): Removed.
11880 * init.c: Include shlib-compat.h.
11881 (pthread_functions): Guard ptr___pthread_attr_init_2_0
11882 initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
11883 Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
11884 ptr___pthread_cond_*_2_0 fields.
11885 * forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
11886 pthread_cond_*@GLIBC_2.0 compatibility symbols.
11887
11888 * sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
11889 LIBC_SIGACTION was not yet defined.
11890 [!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
11891 [!defined LIBC_SIGACTION] (__sigaction): New function and
11892 libc_hidden_weak.
11893 [!defined LIBC_SIGACTION] (sigaction): New weak_alias.
11894 [defined LIBC_SIGACTION]: #include_next <sigaction.c>.
11895
118962003-01-02 Jakub Jelinek <jakub@redhat.com>
11897
11898 * Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
11899
05df18c3
UD
119002003-01-02 Ulrich Drepper <drepper@redhat.com>
11901
11902 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
11903 New, larger type definition.
11904 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
11905 implementation.
11906 * Versions [libpthread]: Add definitions for new pthread_cond_*
11907 interfaces for version GLIBC_2.3.2.
11908 * pthread_cond_init.c: Update initialization for new type definition.
11909 * Makefile (libpthread-routines): Remove pthread_cond_wait,
11910 pthread_cond_timedwait, pthread_cond_signal, and
11911 pthread_cond_broadcast. Add old_pthread_cond_init,
11912 old_pthread_cond_destroy, old_pthread_cond_wait,
11913 old_pthread_cond_timedwait, old_pthread_cond_signal, and
11914 old_pthread_cond_broadcast.
11915 * old_pthread_cond_broadcast.c: New file.
11916 * old_pthread_cond_destroy.c: New file.
11917 * old_pthread_cond_init.c: New file.
11918 * old_pthread_cond_signal.c: New file.
11919 * old_pthread_cond_timedwait.c: New file.
11920 * old_pthread_cond_wait.c: New file.
11921 * pthreadP.h: Add prototypes for the compatibility interfaces.
11922
11923 * pthread_cond_destroy.c: Don't include <errno.h>.
11924
fd8979e4
UD
119252003-01-01 Ulrich Drepper <drepper@redhat.com>
11926
11927 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
11928 unnecessary zero offset when addressing MUTEX.
11929
6d6ee629
UD
119302002-12-31 Ulrich Drepper <drepper@redhat.com>
11931
11932 * sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
11933 __register_atfork.
11934 * sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
11935 for __register_atfork.
11936
a4baf360
UD
119372002-12-31 Jakub Jelinek <jakub@redhat.com>
11938
11939 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
11940 instead of ASSEMBLER test macro.
11941
11942 * sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
11943 __libc_current_sigrtmax): Add libc_hidden_def.
11944
11945 * sysdeps/pthread/list.h: Remove assert.h include.
11946
e9395a94
UD
119472002-12-31 Ulrich Drepper <drepper@redhat.com>
11948
11949 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
11950 __pthread_initialize_minimal_internal not
11951 __pthread_initialize_minimal.
11952
89d6e444
UD
119532002-12-30 Ulrich Drepper <drepper@redhat.com>
11954
416d2de6
UD
11955 * sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
11956 __pthread_initialize_minimal as hidden.
11957
89d6e444
UD
11958 * init.c (__pthread_initialize_minimal_internal): Don't mark as
11959 constructor.
11960
119612002-12-31 Jakub Jelinek <jakub@redhat.com>
11962
11963 * Makefile ($(inst_libdir)/libpthread.so): Depend on
11964 $(common-objpfx)format.lds, include that into the output script.
11965 Fix comment.
11966 (extra-B-pthread.so): Change linuxthreads/ into nptl/.
11967
8cac677c
UD
119682002-12-28 Andreas Jaeger <aj@suse.de>
11969
11970 * sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
11971 nsec resolution changes.
11972 (xstat64_conv): Likewise.
11973 (xstat32_conv): Likewise.
11974 * sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
11975 struct kernel_stat.
11976 * sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
11977 structs stat and stat64.
11978 * time/time.h (__timespec_defined): Define for __USE_MISC.
89d6e444 11979 * io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
8cac677c 11980
49e9f864
UD
119812002-12-30 Jakub Jelinek <jakub@redhat.com>
11982
11983 * forward.c (FORWARD2): Renamed from FORWARD3. Remove unused export
11984 argument.
11985 (pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
11986 (pthread_exit): Use strong_alias to avoid warnings.
11987 * pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
11988 and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
11989 ptr___pthread_attr_init_2_*.
11990 * init.c (pthread_functions): Adjust.
11991
bab09b26
UD
119922002-12-29 Ulrich Drepper <drepper@redhat.com>
11993
598d7a42
UD
11994 * forward.c: Make all functions available by default again. It
11995 caused too much trouble.
11996
bab09b26
UD
11997 * pt-siglongjmp.c: Removed.
11998
3b7ed871
UD
119992002-12-28 Jakub Jelinek <jakub@redhat.com>
12000
12001 * sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
12002 (SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
12003 * sysdeps/i386/Makefile: New file.
12004 * sysdeps/i386/tcb-offsets.sym: New file.
12005 * sysdeps/pthread/tcb-offsets.h: New file.
12006 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
12007 Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
12008
12009 * sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
12010 __register_atfork...
12011 (GLIBC_2.3.2): ...here.
12012
120132002-12-28 Ulrich Drepper <drepper@redhat.com>
12014
12015 * sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
12016 pthread_attr_setstackaddr with __attribute_deprecated__.
12017
270d9d47
UD
120182002-12-27 Jakub Jelinek <jakub@redhat.com>
12019
12020 * pt-system.c (system): Remove cancellation handling.
12021 * tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
12022 cancellation routines.
12023
131fd126
UD
120242002-12-28 Ulrich Drepper <drepper@redhat.com>
12025
afb2e954
UD
12026 * descr.h: Include <dl-sysdep.h>.
12027 (struct pthread): Move header.data.list to the back of the struct.
131fd126
UD
12028 * sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
12029 (MULTIPLE_THREADS_OFFSET): Adjust offset.
12030 (SYSINFO_OFFSEET): Likewise.
12031
120322002-12-27 Jakub Jelinek <jakub@redhat.com>
12033
12034 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
12035 Define.
12036 (DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
12037 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
12038 DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
12039 (USE_DL_SYSINFO): Undef.
12040
120412002-12-22 Jakub Jelinek <jakub@redhat.com>
12042
12043 * Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
12044 $(common-objpfx)libc.so.
12045 * tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
12046 it is bigger than pipe buffer size even on arches with bigger
12047 page size.
12048 (tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
12049
a218c9cf
UD
120502002-12-25 Ulrich Drepper <drepper@redhat.com>
12051
12052 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
12053 correct errno access for case that USE___THREAD is not defined.
12054
015a2dc9
UD
120552002-12-24 Ulrich Drepper <drepper@redhat.com>
12056
12057 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
12058 Patch by Marijn Ros <marijn@mad.scientist.com>.
12059
5220f9ac
RM
120602002-12-22 Roland McGrath <roland@redhat.com>
12061
12062 * Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
12063
1561bf63
UD
120642002-12-20 Ulrich Drepper <drepper@redhat.com>
12065
12066 * sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
12067
3325198e
UD
120682002-12-19 Ulrich Drepper <drepper@redhat.com>
12069
057c823f
UD
12070 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
12071 NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
12072 * sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
12073
097eca29
UD
12074 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
12075 of int $0x80.
12076 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
12077 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
12078 * sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
12079 * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
12080 * sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
12081 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
12082 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
12083 * sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
12084
12085 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
12086 sysenter.
12087 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
12088
12089 * sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
12090
5f5843e3
UD
12091 * allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
12092 in new TCB.
12093 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
12094 that sysinfo is properly initialized.
12095 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
12096 to 1 only for ld.so.
12097
3325198e
UD
12098 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
12099 RTLD_CORRECT_DYNAMIC_WEAK.
12100
74e8f2dc
UD
121012002-12-19 Jakub Jelinek <jakub@redhat.com>
12102
12103 * forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
12104 Use return 0 as 6th argument to FORWARD4.
12105 * pthread_equal.c: Include pthreadP.h instead of pthread.h.
12106
df45b31e
UD
121072002-12-18 Ulrich Drepper <drepper@redhat.com>
12108
12109 * descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
12110 * sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
12111 Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
12112 (INIT_SYSINFO): New #define.
12113 (TLS_TP_INIT): Use INIT_SYSINFO.
12114 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
12115 At test to make sure SYSINFO_OFFSET value is correct.
12116 * sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
12117
3d539579
UD
121182002-12-18 Jakub Jelinek <jakub@redhat.com>
12119
12120 * sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
12121 * sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
12122 * Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
12123 [libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
12124 __pthread_rwlock_destroy, __pthread_rwlock_rdlock,
12125 __pthread_rwlock_wrlock, __pthread_rwlock_unlock,
12126 __pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
12127
d7913e0e
UD
121282002-12-18 Ulrich Drepper <drepper@redhat.com>
12129
f051627f
UD
12130 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
12131 macro instead of using int $0x80 directly.
12132
d7913e0e
UD
12133 * sysdeps/pthread/bits/stdio-lock.h: New file.
12134 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
12135 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
12136 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
12137 * Makefile (routines): Add libc-lowlevelmutex.
12138
12139 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
12140 __i686.get_pc_thunk.dx.
12141
f077a4a9
UD
121422002-12-17 Jakub Jelinek <jakub@redhat.com>
12143
12144 * Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
12145 (tests): Depend on $(objpfx)tst-cancel-wrappers.out.
12146 ($(objpfx)tst-cancel-wrappers.out): New rule.
12147 * tst-cancel-wrappers.sh: New test.
12148 * tst-locale1.c: Include signal.h.
12149 (uselocale): Test static linking of __libc_current_sigrt*.
12150
121512002-12-17 Ulrich Drepper <drepper@redhat.com>
12152
12153 * Makefile (tests): Add tst-cancel6.
12154 * tst-cancel6.c: New file
12155
bd499a3b
UD
121562002-12-17 Jakub Jelinek <jakub@redhat.com>
12157
12158 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
12159 Define meaningfully for assembler as well.
12160 * pthreadP.h (struct pthread_functions): Remove
12161 ptr_pthread_attr_init field. Add ptr_pthread_attr_init_2_0
12162 and ptr_pthread_attr_init_2_1 fields.
12163 * init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
12164 and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
12165 * forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
12166 (FORWARD3): Define using FORWARD4.
12167 (pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
12168 versions.
12169 * pt-system.c: Remove duplicate stdlib.h include.
12170
0a1063f4
UD
121712002-12-16 Ulrich Drepper <drepper@redhat.com>
12172
87d60668
UD
12173 * sem_init.c: Define sem_init@GLIBC_2.0.
12174 * sem_destroy.c: Define sem_destroy@GLIBC_2.0.
12175 * sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
12176
0a1063f4
UD
12177 * flockfile.c: Moved to...
12178 * sysdeps/pthread/flockfile.c: ...here. New file.
12179 * funlockfile.c: Moved to...
12180 * sysdeps/pthread/funlockfile.c: ...here. New file.
12181 * ftrylockfile.c: Moved to...
12182 * sysdeps/pthread/ftrylockfile.c: ...here. New file.
12183
9634cf9d
UD
121842002-12-16 Jakub Jelinek <jakub@redhat.com>
12185
12186 * libc-cancellation.c: Guard both function with
12187 #if !defined NOT_IN_libc.
12188 * Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
12189 automatically provided pthread wrappers.
12190 * pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
12191 CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
12192 nor in libpthread.
12193 * pt-open.c: Removed.
12194 * pt-fcntl.c: Removed.
12195 * pt-fsync.c: Removed.
12196 * pt-lseek.c: Removed.
12197 * pt-msgrcv.c: Removed.
12198 * pt-msgsnd.c: Removed.
12199 * pt-msync.c: Removed.
12200 * pt-nanosleep.c: Removed.
12201 * pt-open64.c: Removed.
12202 * pt-pause.c: Removed.
12203 * pt-pread.c: Removed.
12204 * pt-pread64.c: Removed.
12205 * pt-pwrite.c: Removed.
12206 * pt-pwrite64.c: Removed.
12207 * pt-read.c: Removed.
12208 * pt-recv.c: Removed.
12209 * pt-recvfrom.c: Removed.
12210 * pt-recvmsg.c: Removed.
12211 * pt-send.c: Removed.
12212 * pt-sendto.c: Removed.
12213 * pt-sigtimedwait.c: Removed.
12214 * pt-sigwait.c: Removed.
12215 * pt-wait.c: Removed.
12216 * pt-waitpid.c: Removed.
12217 * pt-write.c: Removed.
12218 * pt-accept.c: Removed.
12219 * pt-close.c: Removed.
12220 * pt-connect.c: Removed.
12221 * pt-lseek64.c: Removed.
12222 * pt-sendmsg.c: Removed.
12223 * pt-tcdrain.c: Removed.
12224
6ee8d334
UD
122252002-12-15 Ulrich Drepper <drepper@redhat.com>
12226
81fa9371
UD
12227 * init.c (__pthread_initialize_minimal_internal): Renamed from
12228 __pthread_initialize_minimal. Make old name an alias. This
12229 converts a normal relocation into a relative relocation.
12230
f3015aa5
UD
12231 * pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
12232
4cbc1950
UD
12233 * Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
12234 readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
12235 * Makefile (libpthread-routines): Remove pt-creat, pt-poll,
12236 pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
12237 pt-sigwaitinfo, pt-waitid, and pt-writev.
12238 * pt-creat.c: Removed.
12239 * pt-poll.c: Removed.
12240 * pt-pselect.c: Removed.
12241 * pt-readv.c: Removed.
12242 * pt-select.c: Removed.
12243 * pt-sigpause.c: Removed.
12244 * pt-sigsuspend.c: Removed.
12245 * pt-sigwaitinfo.c: Removed.
12246 * pt-waitid.c: Removed.
12247 * pt-writev.c: Removed.
12248
8454830b
UD
12249 * init.c (pthread_functions): New variable.
12250 (__pthread_initialize_minimal): Pass pointer to pthread_functions
12251 (or NULL) to __libc_pthread_init.
12252 * forward.c: Rewrite to use __libc:pthread_functions array to get
12253 function addresses.
12254 * sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
12255 prototype.
12256 * sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
12257 Take new parameter. Copy content of variable pointed to by it
12258 to __libc_pthread_init.
12259
12260 * pthreadP.h (struct pthread_functions): New type.
12261 (__libc_pthread_init): Declare.
12262
12263 * pthread_attr_destroy.c: Add namespace protected alias.
12264 * pthread_attr_getdetachstate.c: Likewise.
12265 * pthread_attr_getinheritsched.c: Likewise.
12266 * pthread_attr_getschedparam.c: Likewise.
12267 * pthread_attr_getschedpolicy.c: Likewise.
12268 * pthread_attr_getscope.c: Likewise.
12269 * pthread_attr_setdetachstate.c: Likewise.
12270 * pthread_attr_setinheritsched.c: Likewise.
12271 * pthread_attr_setschedparam.c: Likewise.
12272 * pthread_attr_setschedpolicy.c: Likewise.
12273 * pthread_attr_setscope.c: Likewise.
12274 * pthread_cond_broadcast.c: Likewise.
12275 * pthread_cond_destroy.c: Likewise.
12276 * pthread_cond_init.c: Likewise.
12277 * pthread_cond_signal.c: Likewise.
12278 * pthread_cond_wait.c: Likewise.
12279 * pthread_condattr_destroy.c: Likewise.
12280 * pthread_condattr_init.c: Likewise.
12281 * pthread_equal.c: Likewise.
12282 * pthread_exit.c: Likewise.
12283 * pthread_getschedparam.c: Likewise.
12284 * pthread_self.c: Likewise.
12285 * pthread_setcancelstate.c: Likewise.
12286 * pthread_setschedparam.c: Likewise.
12287 * pthread_mutex_destroy.c: Likewise.
12288 * pthread_mutex_init.c: Likewise.
12289 * pthreadP.h: Add prototypes for the aliases.
12290
0d5f4929
UD
12291 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
12292 multiple_threads member in correct TCB to 1.
12293
6ee8d334
UD
12294 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
12295 SINGLE_THREAD_P. If in libc or libpthread examine multiple_thread
12296 member of thread decriptor, otherwise return unconditionally 1.
12297
2fb6444d
UD
122982002-12-14 Ulrich Drepper <drepper@redhat.com>
12299
12300 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
12301 regular Linux version. Remove file.
12302 * sysdeps/unix/sysv/linux/connect.S: Likewise. Remove file.
12303 * sysdeps/unix/sysv/linux/llseek.c: Likewise. Remove file.
12304 * sysdeps/unix/sysv/linux/msgrcv.c: Likewise. Remove file.
12305 * sysdeps/unix/sysv/linux/msgsnd.c: Likewise. Remove file.
12306 * sysdeps/unix/sysv/linux/open64.c: Likewise. Remove file.
12307 * sysdeps/unix/sysv/linux/poll.c: Likewise. Remove file.
12308 * sysdeps/unix/sysv/linux/pread.c: Likewise. Remove file.
12309 * sysdeps/unix/sysv/linux/pread64.c: Likewise. Remove file.
12310 * sysdeps/unix/sysv/linux/pselect.c: Likewise. Remove file.
12311 * sysdeps/unix/sysv/linux/pwrite.c: Likewise. Remove file.
12312 * sysdeps/unix/sysv/linux/pwrite64.c: Likewise. Remove file.
12313 * sysdeps/unix/sysv/linux/readv.c: Likewise. Remove file.
12314 * sysdeps/unix/sysv/linux/recv.S: Likewise. Remove file.
12315 * sysdeps/unix/sysv/linux/recvfrom.S: Likewise. Remove file.
12316 * sysdeps/unix/sysv/linux/recvmsg.S: Likewise. Remove file.
12317 * sysdeps/unix/sysv/linux/send.S: Likewise. Remove file.
12318 * sysdeps/unix/sysv/linux/sendmsg.S: Likewise. Remove file.
12319 * sysdeps/unix/sysv/linux/sendto.S: Likewise. Remove file.
12320 * sysdeps/unix/sysv/linux/sigpause.c: Likewise. Remove file.
12321 * sysdeps/unix/sysv/linux/sigsuspend.c: Likewise. Remove file.
12322 * sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise. Remove file.
12323 * sysdeps/unix/sysv/linux/sigwait.c: Likewise. Remove file.
12324 * sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise. Remove file.
12325 * sysdeps/unix/sysv/linux/system.c: Likewise. Remove file.
12326 * sysdeps/unix/sysv/linux/tcdrain.c: Likewise. Remove file.
12327 * sysdeps/unix/sysv/linux/wait.c: Likewise. Remove file.
12328 * sysdeps/unix/sysv/linux/waitid.c: Likewise. Remove file.
12329 * sysdeps/unix/sysv/linux/waitpid.c: Likewise. Remove file.
12330 * sysdeps/unix/sysv/linux/writev.c: Likewise. Remove file.
12331 * sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise. Remove file.
12332
86b2dc40
UD
123332002-12-14 Jakub Jelinek <jakub@redhat.com>
12334
12335 * sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
12336 * sysdeps/unix/sysv/linux/open.c: Removed.
12337 * sysdeps/unix/sysv/linux/fsync.c: Removed.
12338 * sysdeps/unix/sysv/linux/lseek.c: Removed.
12339 * sysdeps/unix/sysv/linux/msync.c: Removed.
12340 * sysdeps/unix/sysv/linux/read.c: Removed.
12341 * sysdeps/unix/sysv/linux/close.c: Removed.
12342 * sysdeps/unix/sysv/linux/creat.c: Removed.
12343 * sysdeps/unix/sysv/linux/nanosleep.c: Removed.
12344 * sysdeps/unix/sysv/linux/pause.c: Removed.
12345 * sysdeps/unix/sysv/linux/select.c: Removed.
12346 * sysdeps/unix/sysv/linux/write.c: Removed.
12347
9d263d72
UD
123482002-12-14 Ulrich Drepper <drepper@redhat.com>
12349
12350 * sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
12351 element in TCB to see whether locking is needed.
12352
12353 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
12354 MULTIPLE_THREADS_OFFSET value is correct.
12355
12356 * sysdeps/unix/sysv/linux/close.c: New file.
12357 * sysdeps/unix/sysv/linux/connect.S: New file.
12358 * sysdeps/unix/sysv/linux/creat.c: New file.
12359 * sysdeps/unix/sysv/linux/fsync.c: New file.
12360 * sysdeps/unix/sysv/linux/llseek.c: New file.
12361 * sysdeps/unix/sysv/linux/lseek.c: New file.
12362 * sysdeps/unix/sysv/linux/msgrcv.c: New file.
12363 * sysdeps/unix/sysv/linux/msgsnd.c: New file.
12364 * sysdeps/unix/sysv/linux/msync.c: New file.
12365 * sysdeps/unix/sysv/linux/nanosleep.c: New file.
12366 * sysdeps/unix/sysv/linux/open.c: New file.
12367 * sysdeps/unix/sysv/linux/open64.c: New file.
12368 * sysdeps/unix/sysv/linux/pause.c: New file.
12369 * sysdeps/unix/sysv/linux/poll.c: New file.
12370 * sysdeps/unix/sysv/linux/pread.c: New file.
12371 * sysdeps/unix/sysv/linux/pread64.c: New file.
12372 * sysdeps/unix/sysv/linux/pselect.c: New file.
12373 * sysdeps/unix/sysv/linux/pwrite.c: New file.
12374 * sysdeps/unix/sysv/linux/pwrite64.c: New file.
12375 * sysdeps/unix/sysv/linux/readv.c: New file.
12376 * sysdeps/unix/sysv/linux/recv.S: New file.
12377 * sysdeps/unix/sysv/linux/recvfrom.S: New file.
12378 * sysdeps/unix/sysv/linux/recvmsg.S: New file.
12379 * sysdeps/unix/sysv/linux/select.c: New file.
12380 * sysdeps/unix/sysv/linux/send.S: New file.
12381 * sysdeps/unix/sysv/linux/sendmsg.S: New file.
12382 * sysdeps/unix/sysv/linux/sendto.S: New file.
12383 * sysdeps/unix/sysv/linux/sigpause.c: New file.
12384 * sysdeps/unix/sysv/linux/sigsuspend.c: New file.
12385 * sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
12386 * sysdeps/unix/sysv/linux/sigwait.c: New file.
12387 * sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
12388 * sysdeps/unix/sysv/linux/system.c: New file.
12389 * sysdeps/unix/sysv/linux/tcdrain.c: New file.
12390 * sysdeps/unix/sysv/linux/wait.c: New file.
12391 * sysdeps/unix/sysv/linux/waitid.c: New file.
12392 * sysdeps/unix/sysv/linux/waitpid.c: New file.
12393 * sysdeps/unix/sysv/linux/writev.c: New file.
12394 * sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
12395
12396 * pt-readv.c: Fix comment.
12397
123982002-12-14 Jakub Jelinek <jakub@redhat.com>
12399
12400 * tst-cleanup1.c: Include stdlib.h.
12401
12402 * tst-cancel5.c: New test.
12403 * Makefile (tests): Add tst-cancel5.
12404 (tst-cancel5): Link against libc.so libpthread.so in that order.
12405
9ae0909b
UD
124062002-12-13 Ulrich Drepper <drepper@redhat.com>
12407
b7bdd9c4
UD
12408 * forward.c (test_loaded): Prevent recursive calls.
12409
9ae0909b
UD
12410 * Makefile (routines): Add libc-cancellation.
12411 * libc-cancellation.c: New file.
12412 * descr.h (struct pthread): Add multiple_threads field.
12413 * allocatestack.c (allocate_stack): Initialize multiple_header field of
12414 new thread descriptor to 1.
12415 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
12416 Initialize multiple_thread field after successful thread creation.
12417 * cancellation.c (__do_cancel): Move to pthreadP.h.
12418 (__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
12419 (__pthread_disable_asynccancel): Add internal_function attribute.
12420 * init.c (sigcancel_handler): Remove parameter from __do_cancel call.
12421 * pthread_setcancelstate.c: Likewise.
12422 * pthread_setcanceltype.c: Likewise.
12423 * pthread_exit.c: Likewise.
12424 * pthreadP.h (CANCELLATION_P): Likewise.
12425 (__do_cancel): Define as static inline.
12426 (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
12427 (__libc_enable_asynccancel, __libc_disable_asynccancel): New
12428 declarations.
12429 * sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
12430 fields. Define MULTIPLE_THREADS_OFFSET.
12431 * sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
12432 declaration.
12433 * sysdeps/unix/sysv/linux/accept.S: New file.
12434 * sysdeps/unix/sysv/linux/read.c: New file.
12435 * sysdeps/unix/sysv/linux/write.c: New file.
12436 * sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
12437 * sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
12438 initialization of __libc_locking_needed.
12439 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
12440 __libc_locking_needed, use multiple_threads field in TCB.
12441 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
12442
22f20674
UD
124432002-12-12 Ulrich Drepper <drepper@redhat.com>
12444
2ad2e1e7
UD
12445 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
12446 version.
12447 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
12448
22f20674
UD
12449 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
12450 access to __libc_locking_needed for PIC.
12451
aa80bf86
UD
124522002-12-12 Jakub Jelinek <jakub@redhat.com>
12453
12454 * sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
12455 declare for libc.so.
12456 (__libc_lock_init, __libc_lock_init_recursive): Change into comma
12457 expression.
12458 (__libc_lock_lock): Put into statement expression.
12459 (__libc_lock_unlock): Remove trailing semicolon.
12460 * sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
12461
24021373
RM
124622002-12-12 Roland McGrath <roland@redhat.com>
12463
12464 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
12465 "m" constraint to refer to __libc_locking_needed. Declare it here.
12466
14e7aece
UD
124672002-12-12 Ulrich Drepper <drepper@redhat.com>
12468
12469 * sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
12470 * sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
12471 Initialize __libc_locking_needed.
12472 * init.c (__pthread_initialize_minimal): Call __libc_pthread_init
12473 instead of __register_pthread_fork_handler.
12474 * sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
12475 * sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
12476 fork-gen with libc_pthread_init.
12477 * sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
12478 of __register_pthread_fork_handler.
12479 * sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
12480 of __register_pthread_fork_handler.
12481 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
12482 __libc_locking_needed to determine whether lock prefix can be avoided.
12483 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
12484
85631c8e
UD
124852002-12-11 Ulrich Drepper <drepper@redhat.com>
12486
da63009e
UD
12487 * Makefile (tests): Add tst-cleanup1.
12488 * tst-cleanup1.c: New file.
12489 * cancellation.c (__cleanup_thread): Removed.
12490 (__do_cancel): Remove call to __cleanup_thread.
12491 * pthreadP.h: Remove __cleanup_thread prorotype.
12492
000160a2
UD
12493 * sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
12494 Remember function and argument even if cancellation handler
12495 function is not available.
12496 (__libc_cleanup_region_end): Execute registered function directly if
12497 pthread functions are not available.
12498 (__libc_cleanup_end): Likewise.
12499
85631c8e
UD
12500 * init.c (__pthread_initialize_minimal): Fix initialization in
12501 static lib by preventing gcc from being too clever.
12502
dce8f2b6
UD
125032002-12-10 Ulrich Drepper <drepper@redhat.com>
12504
34a075be
UD
12505 * init.c (__pthread_initialize_minimal): Remove unneccesary
12506 sigaddset call.
12507
dce8f2b6
UD
12508 * Makefile (tests): We can run tst-locale2 now.
12509
e5e45b53
UD
125102002-12-09 Ulrich Drepper <drepper@redhat.com>
12511
12512 * Versions: Remove duplicated sigwait entry.
12513
bdb04f92
UD
125142002-12-08 Ulrich Drepper <drepper@redhat.com>
12515
1e506629
UD
12516 * pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
12517 inside libpthread.
12518
a3957dd5
UD
12519 * pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
12520
bdb04f92
UD
12521 * pthreadP.h: Declare __pthread_enable_asynccancel and
12522 __pthread_disable_asynccancel.
12523 (CANCEL_ASYNC): Use __pthread_enable_asynccancel.
12524 (CANCEL_RESET): Use __pthread_disable_asynccancel.
12525 * cancellation.c (__pthread_enable_asynccancel): New function.
12526 (__pthread_disable_asynccancel): New function.
12527 * pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
12528 * pt-close.c: Likewise.
12529 * pt-connect.c: Likewise.
12530 * pt-creat.c: Likewise.
12531 * pt-fcntl.c: Likewise.
12532 * pt-fsync.c: Likewise.
12533 * pt-lseek.c: Likewise.
12534 * pt-lseek64.c: Likewise.
12535 * pt-msgrcv.c: Likewise.
12536 * pt-msgsnd.c: Likewise.
12537 * pt-msync.c: Likewise.
12538 * pt-nanosleep.c: Likewise.
12539 * pt-open.c: Likewise.
12540 * pt-open64.c: Likewise.
12541 * pt-pause.c: Likewise.
12542 * pt-poll.c: Likewise.
12543 * pt-pread.c: Likewise.
12544 * pt-pread64.c: Likewise.
12545 * pt-pselect.c: Likewise.
12546 * pt-pwrite.c: Likewise.
12547 * pt-pwrite64.c: Likewise.
12548 * pt-read.c: Likewise.
12549 * pt-readv.c: Likewise.
12550 * pt-recv.c: Likewise.
12551 * pt-recvfrom.c: Likewise.
12552 * pt-recvmsg.c: Likewise.
12553 * pt-select.c: Likewise.
12554 * pt-send.c: Likewise.
12555 * pt-sendmsg.c: Likewise.
12556 * pt-sendto.c: Likewise.
12557 * pt-sigpause.c: Likewise.
12558 * pt-sigsuspend.c: Likewise.
12559 * pt-sigtimedwait.c: Likewise.
12560 * pt-sigwait.c: Likewise.
12561 * pt-sigwaitinfo.c: Likewise.
12562 * pt-system.c: Likewise.
12563 * pt-tcdrain.c: Likewise.
12564 * pt-wait.c: Likewise.
12565 * pt-waitid.c: Likewise.
12566 * pt-waitpid.c: Likewise.
12567 * pt-write.c: Likewise.
12568 * pt-writev.c: Likewise.
a3957dd5
UD
12569 * pthread_join.c: Likewise.
12570 * pthread_timedjoin.c: Likewise.
bdb04f92
UD
12571
12572 * pt-sigpause.c (sigsuspend): Call __sigsuspend.
12573 (__xpg_sigpause): New function.
12574 * Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
12575
6ccb3834
UD
125762002-12-07 Ulrich Drepper <drepper@redhat.com>
12577
09efc3ba
UD
12578 * Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
12579
12580 * cleanup.c: Move declarations of _GI_pthread_cleanup_push and
12581 _GI_pthread_cleanup_pop to pthreadP.h.
12582
12583 * ftrylockfile.c: Use _IO_lock_trylock instead of
12584 pthread_mutex_trylock.
12585
12586 * pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
12587 (CANCEL_RESET): Likewise.
12588 (__pthread_setcanceltype_): Declare.
12589 (__pthread_mutex_lock_internal): Declare.
12590 (__pthread_mutex_unlock_internal): Declare.
12591 (__pthread_once_internal): Declare.
12592 (pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
12593 (pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
12594
12595 * pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
12596 and pthread_mutex_unlock.
12597 * pthread_cond_wait.c: Likewise.
12598 * pthread_mutex_lock.c: Use INTDEF to define alias if needed.
12599 * pthread_mutex_unlock.c: Likewise.
12600
12601 * pthread_setcanceltype.c: Add additional alias
12602 __pthread_setcanceltype.
12603
12604 * sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
12605 * sem_open.c (sem_open): Likewise.
12606 Use __libc_open, __libc_write, and __libc_close instead of
12607 open, write, and close respectively.
12608
12609 * sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
12610 Rewrite as statement expression since it must return a value.
12611
12612 * pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
12613 * sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
12614 __pthread_kill.
12615
12616 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
12617 alias __pthread_once_internal.
12618
6ccb3834
UD
12619 * sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
12620
d3c9f895
UD
126212002-12-06 Ulrich Drepper <drepper@redhat.com>
12622
4614167a
UD
12623 * Makefile (tests): Add tst-stdio1 and tst-stdio2.
12624 * tst-stdio1.c: New file.
12625 * tst-stdio2.c: New file.
12626
a4548cea
UD
12627 * init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
12628
d3c9f895
UD
12629 * Makefile (tests): Comment out tst-locale2 for now.
12630 (CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
12631
12632 * sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
12633 -D_IO_MTSAFE_IO.
12634 * sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
12635 Use _IO_lock_init instead of explicit assignment.
12636
12637 * sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
12638 Define __libc_lock_* and __libc_lock_recursive macros with
12639 lowlevellock macros, not pthread mutexes.
12640
12641 * flockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_lock instead
12642 of pthread_mutex_lock.
12643 * funlockfile.c: Include <bits/stdio-lock.h>. Use _IO_lock_unlock
12644 instead of pthread_mutex_unlock.
12645
fde89ad0
RM
126462002-12-06 Roland McGrath <roland@redhat.com>
12647
12648 * allocatestack.c (__stack_user): Use uninitialized defn.
12649 * init.c (__pthread_initialize_minimal): Initialize it here.
12650
11767d47
RM
126512002-12-05 Roland McGrath <roland@redhat.com>
12652
fde89ad0
RM
12653 * sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
12654 string.
12655 * sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
12656
11767d47
RM
12657 * sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
12658 missing & here too.
12659
440d8bc2
UD
126602002-12-05 Ulrich Drepper <drepper@redhat.com>
12661
12662 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
12663 lowlevellock.
12664 * sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
12665 * sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
12666 * sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
12667 * sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
12668 for __libc_lock_* macros.
12669 * Makefile (routines): Add libc-lowlevellock.
12670
126712002-10-09 Roland McGrath <roland@redhat.com>
12672
12673 * sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
12674 Under [__PIC__], call the function via the pointer fetched for
12675 comparison rather than a call by name that uses the PLT.
12676 (__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
12677 (__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
12678 (__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
12679 (__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
12680 (__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
12681
d5ed0118
RM
126822002-12-04 Roland McGrath <roland@redhat.com>
12683
12684 * forward.c (pthread_self): Use FORWARD3 macro to correct return type.
12685
12686 * sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
12687 * sysdeps/generic/td_ta_map_lwp2thr.c: New file.
12688
12689 * pthread_create.c (start_thread): Add missing & on __nptl_last_event.
12690
eaa4099f
UD
126912002-12-04 Ulrich Drepper <drepper@redhat.com>
12692
12693 * sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
12694 a completely opaque, non-integer type.
12695 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
12696
33b5d0cc
UD
126972002-12-05 Jakub Jelinek <jakub@redhat.com>
12698
12699 * sysdeps/i386/tls.h: Include stdlib.h.
12700 * sysdeps/x86_64/tls.h: Likewise.
12701
7a5cdb30
UD
127022002-12-04 Ulrich Drepper <drepper@redhat.com>
12703
c4a6d859
UD
12704 * Makefile (tests): Add tst-locale2.
12705 (tests-static): Likewise.
12706 * tst-locale2.c: New file.
12707
7a5cdb30
UD
12708 * sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
12709 volatile and add memory clobbers to lock operations.
12710
d82d5d12
UD
127112002-12-03 Ulrich Drepper <drepper@redhat.com>
12712
69cae3cf
UD
12713 * sysdeps/i386/i686/bits/atomic.h: Use i486 version.
12714 * sysdeps/i386/i486/bits/atomic.h: New file.
12715 * sysdeps/i386/i586/bits/atomic.h: New file.
12716 * sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
12717 include i486 version.
12718 * sysdeps/i386/i486/pthread_spin_trylock.S: New file.
12719 * sysdeps/i386/i586/pthread_spin_trylock.S: New file.
c97c64de 12720 Patch by Marijn Ros <marijn@mad.scientist.com>.
69cae3cf 12721
e4044c01
UD
12722 * allocatestack.c (get_cached_stack): Don't crash if we first
12723 found a stack with a larger size then needed.
12724 Reported by Hui Huang <hui.huang@sun.com>.
12725
d82d5d12
UD
12726 * Makefile (tests): Add tst-sysconf.
12727 * tst-sysconf.c: New file.
12728
12729 * sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
12730 PTHREAD_THREADS_MAX.
12731
fa9a4ff0
RM
127322002-12-02 Roland McGrath <roland@redhat.com>
12733
12734 * pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
12735 Declare using hidden_proto instead of attribute_hidden, so there are
12736 non-.hidden static symbols for gdb to find.
12737 (__pthread_keys): Likewise.
12738 * events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
12739 * allocatestack.c (__stack_user): Likewise.
12740 * pthread_create.c (__pthread_keys): Likewise.
12741 (__nptl_threads_events, __nptl_last_event): Make these static instead
12742 of hidden.
12743 * pthread_key_create.c (__pthread_pthread_keys_max,
12744 __pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
12745
91949a33
UD
127462002-12-02 Ulrich Drepper <drepper@redhat.com>
12747
c22b52fa
UD
12748 * Makefile (tests): Add tst-locale1. If buid-static is yes link
12749 statically.
12750 * tst-locale1.c: New file.
12751
beb6aa41
UD
12752 * pthread_cond_timedwait.c: Include <stdlib.h>.
12753
91949a33
UD
12754 * Makefile (tests): Add tst-fork2 and tst-fork3.
12755 * tst-fork2.c: New file.
12756 * tst-fork3.c: New file.
12757
654dff90
UD
127582002-11-28 Ulrich Drepper <drepper@redhat.com>
12759
cb0e76b4
UD
12760 * sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
12761
12762 * sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
12763 require it to 200112L.
12764
12765 * sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
12766 instruction only if HAVE_CMOV is defined.
12767 * sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
12768
975aa229
UD
12769 * sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
12770
654dff90
UD
12771 * sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
12772
12773 * sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
12774
12775 * sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
12776
a3931336
UD
127772002-11-27 Ulrich Drepper <drepper@redhat.com>
12778
c10c099c
UD
12779 * sysdeps/x86_64/bits/atomic.h: New file.
12780
12781 * sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
12782 16-bit operations.
12783
dca99d27
UD
12784 * sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
12785 possible since gettid cannot fail.
12786
f78deea6
UD
12787 * sysdeps/x86_64/pthreaddef.h: New file.
12788
12789 * sysdeps/i386/pthreaddef.h (gettid): Removed.
12790
12791 * sysdeps/x86_64/pthread_spin_init.c: New file.
12792 * sysdeps/x86_64/pthread_spin_lock.c: New file.
12793 * sysdeps/x86_64/pthread_spin_trylock.c: New file.
12794 * sysdeps/x86_64/pthread_spin_unlock.c: New file.
12795
12796 * sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
12797 Add missing lock prefix. Minute optimization.
12798
12799 * tst-spin2.c (main): Also check successful trylock call.
12800
12801 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
12802 syscall. Fix typo in case INTERNAL_SYSCALL is not used.
12803
12804 * sysdeps/i386/pthread_spin_destroy.c: Moved to...
12805 * sysdeps/pthread/pthread_spin_destroy.c: ...here. New file.
12806
12807 * sysdeps/i386/pthread_sigmask.c: Removed. Use the generic code.
12808 * sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
12809 value in case of an error. Add support for INTERNAL_SYSCALL.
b54e18eb
UD
12810
12811 * sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
12812 value in case of an error.
12813
a3931336
UD
12814 * sysdeps/x86_64/tls.h: New file.
12815
76a50749
UD
128162002-11-26 Ulrich Drepper <drepper@redhat.com>
12817
117c452c
UD
12818 * sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface. It now
12819 takes the array member name and the index as parameters.
12820 (THREAD_SETMEM_NC): Likewise.
12821 * pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
12822 * pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
12823 interfaces.
12824
12825 * sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
12826 to decide which code to use.
12827 (THREAD_SETMEM_NC): Likewise.
12828
76a50749
UD
12829 * allocatestack.c (queue_stack): Don't remove stack from list here.
12830 Do it in the caller. Correct condition to prematurely terminate
12831 loop to free stacks.
12832 (__deallocate_stack): Remove stack from list here.
12833
128342002-11-26 Ulrich Drepper <drepper@redhat.com>
12835
12836 * Makefile (tests): Add tst-stack1.
12837 * tst-stack1.c: New file.
12838
12839 * allocatestack.c (allocate_stack): Initialize the TCB on a user
12840 provided stack.
12841
12842 * pthread_attr_getstack.c: Return bottom of the thread area.
12843
128442002-11-25 Ulrich Drepper <drepper@redhat.com>
12845
12846 * Makefile (libpthread-routines): Add pt-allocrtsig and
12847 pthread_kill_other_threads.
12848 * pt-allocrtsig.c: New file.
12849 * pthread_kill_other_threads.c: New file.
12850 * sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
12851 all three functions.
12852 * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
12853 allocrtsig.
12854 * sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
12855 __libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
12856 and __libc_allocate_rtsig_private.
12857 * Versions (libpthread): Export pthread_kill_other_threads_np,
12858 __libc_current_sigrtmin, and __libc_current_sigrtmax.
12859
128602002-11-24 Ulrich Drepper <drepper@redhat.com>
12861
12862 * allocatestack.c (allocate_stack): stackaddr in attribute points to
12863 the end of the stack. Adjust computations.
12864 When mprotect call fails dequeue stack and free it.
12865 * pthread_attr_setstack.c: Store top of the stack in stackaddr
12866 attribute.
12867 * pthread_getattr_np.c: Likewise.
12868
12869 * descr.h (IS_DETACHED): Add some more parenthesis to prevent
12870 surprises.
12871
128722002-11-23 Ulrich Drepper <drepper@redhat.com>
12873
12874 * sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
12875 attribute definitions. Patch by Luca Barbieri <ldb@ldb.ods.org>.
12876
128772002-11-22 Ulrich Drepper <drepper@redhat.com>
12878
12879 * pthread_getspecific.c: Optimize access to first 2nd-level array.
12880 * pthread_setspecific.c: Likewise.
12881
128822002-11-21 Ulrich Drepper <drepper@redhat.com>
12883
12884 * sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
12885 definitions. Get them from the official place.
12886 * sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
12887
12888 * sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
12889 Use new CLONE_ flags in clone() calls.
12890
12891 * sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
12892 * sysdeps/unix/sysv/linux/i386/fork.c: New file.
12893
12894 * Versions: Add pthread_* functions for libc.
12895 * forward.c: New file.
12896
12897 * sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
12898 errno-loc.
12899 * herrno.c: New file.
12900 * res.c: New file.
12901
12902 * Makefile (libpthread-routines): Remove sem_post, sem_wait,
12903 sem_trywait, and sem_timedwait. Add herrno and res.
12904 * sem_init.c: Don't initialize lock and waiters members.
12905 * sem_open.c: Likewise.
12906 * sem_post.c: Removed.
12907 * sem_wait.c: Removed.
12908 * sem_trywait.c: Removed.
12909 * sem_timedwait.c: Removed.
12910 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
12911 Includes full implementations of sem_post, sem_wait, sem_trywait,
12912 and sem_timedwait.
12913 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
12914 for new implementation.
12915 * sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
12916 and waiters fields.
12917
12918 * tst-sem3.c: Improve error message.
12919 * tst-signal3.c: Likewise.
12920
12921 * init.c (__pthread_initialize_minimal): Use set_tid_address syscall
12922 to tell the kernel about the termination futex and to initialize tid
12923 member. Don't initialize main_thread.
12924 * descr.h (struct pthread): Remove main_thread member.
12925 * cancelllation.c (__do_cancel): Remove code handling main thread.
12926 The main thread is not special anymore.
12927
12928 * allocatestack.c (__reclaim_stacks): Mark stacks as unused. Add
12929 size of the stacks to stack_cache_actsize.
12930
12931 * pt-readv.c: Add missing "defined".
12932 * pt-sigwait.c: Likewise.
12933 * pt-writev.c: Likewise.
12934
129352002-11-09 Ulrich Drepper <drepper@redhat.com>
12936
12937 * Versions: Export __connect from libpthread.
12938 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12939
12940 * Makefile (libpthread-routines): Add pt-raise.
12941 * sysdeps/unix/sysv/linux/raise.c: New file.
12942 * sysdeps/unix/sysv/linux/pt-raise.c: New file.
12943 * sysdeps/generic/pt-raise.c: New file.
12944
12945 * pthread_cond_init.c: Initialize all data elements of the condvar
12946 structure. Patch by Luca Barbieri <ldb@ldb.ods.org>.
12947
12948 * pthread_attr_init.c: Actually implement 2.0 compatibility version.
12949 * pthread_create.c: Likewise.
12950
12951 * Makefile (tests): Add tst-key1, tst-key2, tst-key3.
12952 * tst-key1.c: New file.
12953 * tst-key2.c: New file.
12954 * tst-key3.c: New file.
12955
12956 * Versions: Export pthread_detach for version GLIBC_2.0.
12957 Reported by Saurabh Desai <sdesai@austin.ibm.com>.
12958
129592002-11-08 Ulrich Drepper <drepper@redhat.com>
12960
12961 * pthread_key_create.c: Terminate search after an unused key was found.
12962 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12963
12964 * sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
12965 Patch by Luca Barbieri <ldb@ldb.ods.org>.
12966
129672002-10-10 Ulrich Drepper <drepper@redhat.com>
12968
12969 * sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
12970 dynamic lookup for errno in PIC.
12971
12972 * allocatestack.c (get_cached_stack): Rearrange code slightly to
12973 release the stack lock as soon as possible.
12974 Call _dl_allocate_tls_init for TCB from the cache to re-initialize
12975 the static TLS block.
12976 (allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
12977
12978 * cancellation.c: Renamed from cancelation.c.
12979 * Makefile: Adjust accordingly.
12980 * pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
12981 * cleanup_defer.c: Use CANCELLATION_P.
12982 * pthread_testcancel.c: Likewise.
12983 * descr.h: Fix spelling in comments.
12984 * init.c: Likewise.
12985 * pthread_getattr_np.c: Likewise.
12986 * pthread_getschedparam.c: Likewise.
12987 * pthread_setschedparam.c: Likewise.
12988 * Versions: Likewise.
12989
12990 * pt-pselect.c: New file.
12991 * Makefile (libpthread-routines): Add pt-pselect.
12992 * Versions: Add pselect.
12993
12994 * tst-cancel4.c: New file.
12995 * Makefile (tests): Add tst-cancel4.
12996
129972002-10-09 Ulrich Drepper <drepper@redhat.com>
12998
12999 * pthread_mutex_lock.c: Always record lock ownership.
13000 * pthread_mutex_timedlock.c: Likewise.
13001 * pthread_mutex_trylock.c: Likewise.
13002
13003 * pt-readv.c: New file.
13004 * pt-writev.c: New file.
13005 * pt-creat.c: New file.
13006 * pt-msgrcv.c: New file.
13007 * pt-msgsnd.c: New file.
13008 * pt-poll.c: New file.
13009 * pt-select.c: New file.
13010 * pt-sigpause.c: New file.
13011 * pt-sigsuspend.c: New file.
13012 * pt-sigwait.c: New file.
13013 * pt-sigwaitinfo.c: New file.
13014 * pt-waitid.c: New file.
13015 * Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
13016 pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
13017 pt-sigwait, pt-sigwaitinfo, and pt-waitid.
13018 * Versions: Add all the new functions.
13019
13020 * tst-exit1.c: New file.
13021 * Makefile (tests): Add tst-exit1.
13022
13023 * sem_timedwait.c: Minor optimization for more optimal fastpath.
13024
130252002-10-08 Ulrich Drepper <drepper@redhat.com>
13026
13027 * pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
13028
13029 * pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
13030 call. pthread_join is an official cancellation point.
13031 * pthread_timedjoin.c: Likewise.
13032
13033 * pthread_cond_wait.c: Revert order in which internal lock are dropped
13034 and the condvar's mutex are retrieved.
13035 * pthread_cond_timedwait.c: Likewise.
13036 Reported by dice@saros.East.Sun.COM.
13037
130382002-10-07 Ulrich Drepper <drepper@redhat.com>
13039
13040 * pthreadP.h: Cut out all type definitions and move them...
13041 * sysdeps/unix/sysv/linux/internaltypes.h: ...here. New file.
13042 * pthreadP.h: Include <internaltypes.h>.
13043
13044 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
13045 performance tweaks.
13046
13047 * sem_trywait.c: Shuffle #includes around to get right order.
13048 * sem_timedwait.c: Likewise.
13049 * sem_post.c: Likewise.
13050 * sem_wait.c: Likewise.
13051
13052 * nptl 0.3 released.
13053
13054 * Makefile (tests): Add tst-signal3.
13055 * tst-signal3.c: New file.
13056
130572002-10-05 Ulrich Drepper <drepper@redhat.com>
13058
13059 * sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
13060 the asms modify the sem object.
13061 (__lll_sem_timedwait): Now takes struct sem* as first parameter.
13062
13063 * sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
13064 the actual members.
13065 * pthreadP.h (struct sem): New type. Actual semaphore type.
13066 * semaphoreP.h: Include pthreadP.h.
13067 * sem_getvalue.c: Adjust to sem_t change.
13068 * sem_init.c: Likewise.
13069 * sem_open.c: Likewise.
13070 * sem_post.c: Likewise.
13071 * sem_timedwait.c: Likewise.
13072 * sem_trywait.c: Likewise.
13073 * sem_wait.c: Likewise.
13074
130752002-10-04 Ulrich Drepper <drepper@redhat.com>
13076
13077 * Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
13078 * tst-basic2.c: New file.
13079 * tst-exec1.c: New file.
13080 * tst-exec2.c: New file.
13081 * tst-exec3.c: New file.
13082
13083 * tst-fork1.c: Remove extra */.
13084
13085 * nptl 0.2 released. The API for IA-32 is complete.